Open Network Linux For Developers
Open Network Linux For Developers
A Programmer’s View
• General discussion
– Pro's and Con's of different hardware platforms
– Other discussion
http://opennetlinux.org
3 © 2015 BIG SWITCH NETWORKS, INC.
ONL: EXAMPLE USE-CASES
– Shared platform code ensures consistency and test coverage in areas like cable/optics compatibility,
operational statistics, front panel LED behavior, SNMP behavior, environmental sensors, fan drivers, etc.
1G/10G/40G 10G/40G
(Trident-II)
Alternative to NPB:
SWITCH LIGHT™ OS
ONIE Installer Alternative to ACI:
• Distribution or ‘A La Carte’?
– ONL supports both
– This talk focuses on the ‘A La Carte’ pieces of ONL
Indigo
Microsoft Facebook
OpenFlow
SONiC FBOSS
Agent
FORWARDING AGENT PROGRAMMING APIS
SAI
Interface
OF-DPA
Open Network Linux Platform Abstraction Layer Open NSL
PLATFORM
• General discussion
– Pro's and Con's of different hardware platforms
– Other discussion
• $ONL/packages/base/$arch
– $arch = ‘any’ à “common” across multiple architectures
– $arch = ‘all’à really no arch dependence (e.g., python code)
• $ONL/packages/platforms/$vendor/$arch/$ONIE_ID
– packages/platforms/accton/x86-64/x86-64-accton-as7712-32x
– ./onlp – the ONLP sub-driver for this platform
– ./platform-config/r$version/ – installation, booting, initialization
– More info in $ONL/docs/PortingGuide.md
• $ONL/packages/platforms-closed
– For switch vendors who have not yet open sourced their code
– E.g., Dell S4048-ON, Dell S6000-ON
12 © 2015 BIG SWITCH NETWORKS, INC.
ONL DISTRIBUTION INFORMATION
ONL
1. uBoot/grub POSTs Loader
2. $nos_boot_cmd is read from ENVs
ONL
3. run $nos_boot_cmd SWI #1
~64MB • If $nos_boot_cmd returns, run ONIE (cached)
• General discussion
– Pro's and Con's of different hardware platforms
– Other discussion
• Initialize platform:
– int onls_init();
– Same for all platforms
• General discussion
– Pro's and Con's of different hardware platforms
– Other discussion
24 Partial; Full Support in Progress ©2016 BIG SWITCH NETWORKS, INC. WWW.BIGSWITCH.COM PROPRIETARY AND
CONFIDENTIAL
DISCUSSION TOPICS
• ONLS_PORT_EVENT_PLATFORM_PORT_SFP_REMOVED, • ONLS_PORT_EVENT_PLATFORM_PORT_ACTION_SFP_ALWAYS_ENABLED_DISABLE,
• ONLS_PORT_EVENT_PLATFORM_PORT_SFP_IDENTIFIED, • ONLS_PORT_EVENT_SWITCH_PORT_ACTION_ADD
• ONLS_PORT_EVENT_SWITCH_PORT_ACTION_REMOVE,
• ONLS_PORT_EVENT_PLATFORM_PORT_SFP_SUPPORTED,
• ONLS_PORT_EVENT_SWITCH_PORT_REMOVED,
• ONLS_PORT_EVENT_PLATFORM_PORT_SFP_UNSUPPORTED,
• ONLS_PORT_EVENT_SWITCH_PORT_ACTION_CONFIGURE,
• ONLS_PORT_EVENT_PLATFORM_PORT_ACTION_SFP_QUALIFY,
• ONLS_PORT_EVENT_SWITCH_PORT_ACTION_ADMIN_ENABLE,
• ONLS_PORT_EVENT_PLATFORM_PORT_ACTION_SFP_UNKNOWN,
• ONLS_PORT_EVENT_SWITCH_PORT_ADMIN_ENABLED,
• ONLS_PORT_EVENT_PLATFORM_PORT_ACTION_POLL,
• ONLS_PORT_EVENT_SWITCH_PORT_ACTION_ADMIN_DISABLE,
• ONLS_PORT_EVENT_PLATFORM_PORT_ACTION_AUTO_BREAKOUT_CONFIGURE, • ONLS_PORT_EVENT_SWITCH_PORT_ADMIN_DISABLED,
• ONLS_PORT_EVENT_PLATFORM_PORT_ACTION_BREAKOUT_MODE_1X40, • ONLS_PORT_EVENT_SWITCH_PORT_ACTION_PLATFORM_ENABLE,
• ONLS_PORT_EVENT_PLATFORM_PORT_MODE_1X40_ENABLED, • ONLS_PORT_EVENT_SWITCH_PORT_ACTION_PLATFORM_DISABLE,
• ONLS_PORT_EVENT_PLATFORM_PORT_ACTION_BREAKOUT_MODE_4X10, • ONLS_PORT_EVENT_SWITCH_PORT_ACTION_LINKSCAN
• ONLS_PORT_EVENT_SWITCH_PORT_ACTION_LINK_UP,
• ONLS_PORT_EVENT_PLATFORM_PORT_MODE_4X10_ENABLED,
• ONLS_PORT_EVENT_SWITCH_PORT_LINK_UP,
• ONLS_PORT_EVENT_PLATFORM_PORT_ACTION_BREAKOUT_MODE_1X100,
• ONLS_PORT_EVENT_SWITCH_PORT_ACTION_LINK_DOWN,
• ONLS_PORT_EVENT_PLATFORM_PORT_MODE_1X100_ENABLED,
• ONLS_PORT_EVENT_SWITCH_PORT_LINK_DOWN,
• ONLS_PORT_EVENT_PLATFORM_PORT_ACTION_AUTO_BREAKOUT_ENABLE,
• ONLS_PORT_EVENT_SWITCH_PORT_ACTION_LINK_REMOTE_FAULT,
• ONLS_PORT_EVENT_SWITCH_PORT_REMOTE_FAULT,
OCP: Open Compute Project; ONL: Open Network Linux; ONIE: Open Network Install Env;
BRCM: Broadcom Merchant Silicon ASICs; OF-DPA: OpenFlow Datapath AbstracPon
FACEBOOK FBOSS SUPPORT ONL IN ALPHA
Demo From
FBOSS
OCP
40G OpenNSL
Workshop
Breakout ONL
10/9 in
Cable
Wedge Switch
Boston
1 1
1 2 40G 5 6
Interfaces
Vlan Vlan
#1 #2 10G
SFP+
Cables
Hosts 1 2 3 4
NTT’S EVPN USE CASE
ospfd GoBGP
zapi
ORC
zebra driver
netlink
Linux Networking
OpenNSL
Subsystem
ONL
ONIE
Adds
Forwarding
Agents
Open
Network
Linux
Provides
Platform
Drivers
40 © 2015 BIG SWITCH NETWORKS, INC.
Early Adoption: REANNZ
???
This talk
Indigo
open
driver OF-DPA API
OF-DPA
SDK closed
Chip
SWITCH SCALING: UNDERSTANDING TABLES
Classical OpenFlow versus Modern: ProacPve and MulP-table OpenFlow
Processing Pipeline
Early OpenFlow Modern OpenFlow
implementaPons only used implementaPon leverages
the most flexible table. all tables
• Didn’t scale well • Scales like tradiPonal
L2 L3 • Scale forced reacPve • Allows proacPve
Table: Table: populaPon populaPon
~100K+ ~100K+ • ReacPve caused • ProacPve reduces
Entries Entries controller load and controller load and
addiPon scale problems allows for headless
control