OpenNSL API Guide and Reference Manual
Software Overview

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. Because of the wide variety of switch devices the OpenNSL APIs run on, not all functions are available on all underlying devices. The API exports silicon features in an independent manner as much as possible, but does not implement in software those functions that the underlying devices do not support.

From the OpenNSL point of view, the system is a collection of interconnected devices, each controlling ports. Operations are carried out on a particular device and ports on that device are often specified as a bitmap. After devices, the most important object is the port. This is illustrated by the fact that the OpenNSL Port API is the largest set of functions by far. The OpenNSL API uses small integers to refer to ports. These are generally the physical port numbers on the device. Thus, it is necessary to know the particulars of the device being updated to address the ports on that device.

OpenNSL software contains the files needed for development of switch applications: C header files, libraries and documentation.

Software Architecture

This section describes fundamental concepts needed for understanding the OpenNSL API calls. It describes the basic types and function calls for manipulating those types. Figure 1 is a block diagram representation of the various components of OpenNSL.

OpenNSLComponentLayers.jpg
Figure 1

The following is a list of fundamental aspects of switching which are all managed by the OpenNSL API.