Open Ethernet Networking (OpEN) API Guide and Reference Manual  3.6.0.3
OpEN ADK Overview

The Application Development Kit contains the files needed for development of OpEN Applications: C header files, libraries, documentation, and example applications.

Quick Start

The ADK contains many example applications in C, Ruby and Python that can be used as the starting point for an application.

C Applications

Each example C application comes with a Makefile that can be copied and adjusted to suit your custom application. You can also use the main function as a template for setting up and tearing down the OpEN API. Once your application is compiled, see Downloading and Executing OpEN Applications for information on how to download and execute them on the switch.

ADK Directory Structure

The ADK directory structure is as follows:

Caution

Note that it is possible for OpEN applications to cause the switch to fail. This could be due to excessive memory/CPU usage or errors invoking the APIs. Care should be taken, and testing should be performed to ensure that applications are well behaved in this respect.

Versioning and Deprecation Policy

Once the APIs are published in the ADK, there will be no changes in the name, definition or operation of the released APIs. This is to ensure that applications built using the APIs continue to work across releases without the need for recompilation. New APIs will be added if there is a need to change the operation or definition of existing functionality. The versioning scheme is release.version[.maint_level[.build_num]] where release and version are incremented as they correspond to new developments. A release increment indicates significant improvements or functionality, whereas version increments generally show new feature APIs.

The current OpEN API version as of this release is 1.20.
The current version can also be retrieved programmatically via the openapiApiVersionGet() API.
Please review the following revision history table for more information.

Revision History Table

release.version History Summary
1.1 Initial release.
1.2 New APIs introduced.
Access Control Lists (ACL)
Border Gateway Protocol (BGP)
Fibre Channel over Ethernet (FCoE) Initialization Protocol (FIP) snooping
Open Shortest Path First (OSPF)
Overlay API (L2 over L3 tunnels)
Simple Network Management Protocol (SNMP)
Ternary CAMs (TCAM)
1.3 New APIs introduced.
Global OSPF APIs in support of Virtual Routing and Forwarding (VRF)
Routing Protocol Process Interface (RPPI) in support of VRF
Multiprotocol Label Switching (MPLS)
L2ol3 Overlay API (DCVPN)
1.4 New APIs introduced.
Hash Prediction
CLI Text Based Configuration
1.5 New APIs introduced.
CLI Text Based Configuration for Non-Disruptive Configuration Management
Instrumentation - Buffer Statistics Tracking
1.6 New APIs introduced.
Monitor BGP status and statistics
1.7 New APIs introduced.
Various common utility type APIs
Additional support for Interfaces
DOT1S Filters
DOT3AD Active Members
DOT1D Bridging
DOT1AD (QinQ) Protocol
Multicast/Forwarding DataBase (MFDB/FDB)
IP Address Table
Port Mirroring
L2 Multicast Snooping
RFC1213
1.8 New APIs introduced.
Added additional System APIs
Stacking Configuration and Status
DNS Hostname Resolution
Logging APIs
Password Decryption and Encryption
DHCP Client Information
System MAC Address API
Code Image Management
POE
Application control APIs
Cloud Managed
Search the next valid ID of SSH session
Closes the session by ID
Get the DHCP Options returned by the DHCP Server
1.9 New APIs introduced.
Service Client registration
__APIs deprecated.__
Internal Client registration and teardown
1.10 New APIs introduced.
Synchronization Database
Additional Stacking Configuration and Status
File Transfer
1.11 New APIs introduced.
Get next userAppConfigDb entry
1.12 New APIs introduced.
Switchport Configuration
Protocol-Based VLAN Configuration
Enhanced OpEN API Client Registration
IP Route Table
Enhanced OpEN API ACL External Agent
Modified APIs (see API headers for functions introduced at 1.12)
openapi_acl.h
openapi_common.h
1.13 New APIs introduced.
Report TCAM Utilization
1.14 New APIs introduced.
COSQ configuation and status
DOT1x support
RADIUS support
Time functions (TZ, clock)
Voice VLAN
COSQ Statistics
Data Center Bridging (DCBX)
Dynamic ARP Inspection
Enhanced Transmission Selection (ETS)
Priority-based Flow Control (PFC)
IP Routing Statistics
ARP Table Routing Statistics
General Routing Statistics
SDM Templates
Sflow
Modified APIs (see API headers for functions introduced at 1.14)
openapi_acl.h
openapi_boxs.h
openapi_cable_status.h
openapi_config.h
openapi_image.h
openapi_instru_bst.h
openapi_instru_nos.h
openapi_instru_packet_trace.h (deprecations only)
openapi_lldp.h
openapi_logging.h
openapi_poe.h
openapi_tcam.h
openapi_vlan.h
1.15 New APIs introduced.
Sflow ACL Sampling
VRF Address and Status for BGP
In Service Software Upgrades (ISSU)
Fiber Ports, Fan and Power Supply Status and Temperature
Expandable and Disable Reason Codes for Interfaces
Additional BST Instrumentation Support
Several new Routing APIs
1.17 New APIs introduced.
Modified APIs (see API headers for functions introduced at 1.17)
openapi_dot1s.h
openapi_dynamic_arp_inspection.h
openapi_if.h
openapi_routing.h
openapi_stats.h
openapi_system.h
1.18 New APIs introduced.
CPU utilization
Port MAC Locking
Private VLANs
APIs in support of Ping
APIs in support of TraceRoute
Modified APIs (see API headers for functions introduced and deprecated at 1.18)
openapi_dhcp_server.h
openapi_dot1s.h
openapi_dynamic_arp_inspection.h
openapi_if.h
1.19 New APIs introduced.
Copy Configurations
Common image name size API
Debian Rootfs Management APIs
File transfer API in a stackPort and System LED APIs
Hardware version API
Cloud configuration APIs
DNS mode APIs
APIs in support of STP
APIs in support of DOT1X
API to get interface operational status
API to get boot code information
APIs in support of LAG
APIs in support of PoE
API to get the switch software version
APIs in support of SNMP
APIs in support of Auto-Video
APIs to get SNTP statistics
API to get ARP information
APIs in support of Time Ranges
APIs in support of Private VLAN
APIs in support of Auto-VoIP
openapi_image.h
openapi_common.h
openapi_stacking.h
openapi_boxs.h
openapi_cloud_managed.h
openapi_dns.h
openapi_dot1s.h
openapi_dot1x.h
openapi_if.h
openapi_image.h
openapi_lag.h
openapi_poe.h
openapi_registry.h
openapi_snmp.h
openapi_snooping.h
openapi_sntp.h
openapi_system.h
openapi_timeranges.h
openapi_vlan.h
openapi_voip.h
IP Device Tracking APIs
openapi_ipv4_device_tracking.h
Modified APIs (see API headers for functions introduced and deprecated at 1.19)
openapi_poe.h
openapi_tcam.h
openapi_instru_nos.h
1.20 New APIs introduced.
IEEE DOT1CB Standard
MAC Static Filter APIs in support of DOT1CB
Modified APIs (see API headers for functions introduced at 1.20)
openapi_ssh.h