https://github.com/Broadcom-Switch/OpenNSL
Open Network Switch Layer (OpenNSL) is a library of network switch APIs that is openly available for programming Broadcom network switch silicon based platforms. These open APIs enable development of networking application software based on Broadcom network switch architecture based platforms.
Open Network Switch Library (OpenNSL) is a library of Open Networking APIs that enable the development of innovative open source networking projects on widely deployed Broadcom network switch-based systems. It allows developers to customize, enhance, and deliver differentiated solutions, leveraging the capabilities of the feature-rich and industry-leading StrataXGS® architecture.
With the OpenNSL software platform, Broadcom is publishing APIs that map Broadcom's Software Development Kit (SDK) to an open, north-bound interface, enabling the integration of new applications and creating the ability to optimize switch hardware platforms. This gives users the freedom to control their technology, share their designs, and boost application innovation. Examples include network monitoring, load balancing, service chaining, workload optimization, and traffic engineering.
OpenNSL software is available in two packages:
• An OEM and ODM Development Package (ODP), which is a full-source code package distributed under the Broadcom SLA.
• A Community Development Package (CDP), which is an Open API library with Application Development Kit distributed on GitHub.
FEATURES
• Rich set of APIs for most commonly used switching and routing functions are as follows:
– L2/L3/VLAN management.
– Port and switch management.
– Link monitoring and error handling.
– Packet transmit and receive.
– Trunking.
– Buffer Statistics Tracking.
– Packet Tracing and Injection.
• Portable across StrataXGS® architecture today and StrataDNX™ in the future.
• Supported by growing number of OEM and ODM partners.
SUPPORTED OPEN PROJECTS
OpenNSL is used in multiple open projects driven by the community. A partial list of these projects is given below:
• FBOSS: OpenNSL provides foundational technology that allows the Facebook Open Switching System (FBOSS) to be open.
• Open Network Linux: A Linux distribution for bare metal switches that includes OpenNSL.
• BroadView: A software suite that provides programmable access to the internals of a switch in a fast and scalable manner.
• Open L3 Routing: NTT has developed a pluggable L3 routing agent built on OpenNSL that was demonstrated at the OCP workshop in Oct 2015.
• OpenSwitch: New open source, Linux based fully featured L2/L3 Network Operating System (NOS) platform. All the current OpenSwitch platforms are Broadcom based and built on top of OpenNSL.
### API Overview
Buffer Statistics Tracking (BST)
Class of Service Queue Configuration
Error Handling APIs
Field Processor APIs
Initialization APIs
Kernel Network (KNET) Configuration
Layer 2 Address Management
Layer 3 Management
Link Monitoring and Notification
Port Mirroring APIs
Multicast Management APIs
Packet Trace
Policer configuration APIs
Port Configuration
QoS
Statistics
Spanning Tree Groups
Switch Control APIs
Trunking
Tunneling
Packet Transmit and Receive
VLAN Configuration
Virtual Switching Instance
Vxlan
Warm Boot