Information About onePK
One Platform Kit (onePK) is a cross platform API and software development kit that enables the user to develop applications that interact directly with Cisco networking devices, and provides the user with the ability to access networking services using a set of controlled APIs that share the same programming model and style.
You can deploy onePK applications on a server in the network, such as a multi-CPU or multi-core server running Linux or Windows, or even a mobile device running Android or iOS. This is referred to as end-node hosting. The other hosting models are also discussed, in the later sections.
The base service set comprises all those services that an application needs to interact with Cisco devices. There are optional service sets that the application can use if it needs a specific service. The goal of onePK is to keep a consistent set of APIs across platforms so that customers can freely use any platform to develop their applications.
OnePK supports the following programming languages:
-
C language API support
-
Java language API support (Data Path service set is not supported in Java)
-
Python API support
Understanding the OnePK system architecture
The onePK framework provides a client side application SDK to access the networking services running on Cisco devices. Enabling onePK on a Cisco platform requires that the platform be enabled to support the onePK abstraction side layer. The onePK enabled platforms make the onePK services accessible on that device when an application interacts with that device through the client side SDK.
This figure shows that applications can be built in multiple languages and can connect to different implementations.

Supported Platforms and Linecards
The onePK is supported on the following linecards on the Cisco ASR 9000 Series Router:
-
A9K-RSP440-SE RSP3 (for service edge)
-
A9K-RSP440-TR RSP3 (for transport)
-
A9K-2X100GE-SE= ASR 9000 2-port 100GE, Service Edge Optimized LC
-
A9K-2X100GE-TR= ASR 9000 2-port 100GE, Packet Transport Optimized LC
-
A9K-24X10GE-SE= ASR 9000 24-port 10GE, Service Edge Optimized LC
-
A9K-24X10GE-TR= ASR 9000 24-port 10GE, Packet Transport Optimized LC
-
A9K-MOD80-SE= ASR 9000 80G Modular LC, 2x Typhoon NPs, Service Edge Optimized
-
A9K-MOD80-TR= ASR 9000 80G Modular LC, 2x Typhoon NPs, Packet Transport Optimized
-
A9K-MOD160-SE= ASR 9000 160G Modular LC, 4x Typhoon NPs, Service Edge Optimized
-
A9K-MOD160-TR= ASR 9000 160G Modular LC, 4x Typhoon NPs, Packet Transport Optimized
-
A9K-MPA-2X10GE= ASR 9000 2-port 10GE Modular Port Adapter (XFP)
-
A9K-MPA-4X10GE= ASR 9000 4-port 10GE Modular Port Adapter (XFP)
-
A9K-MPA-20X1GE= ASR 9000 20-port 1GE Modular Port Adapter (SFP)
-
A9K-MPA-1X40GE= ASR 9000 1-port 40GE Modular Port Adapter (QSFP)
-
A9K-MPA-2X40GE= ASR 9000 2-port 40GE Modular Port Adapter (QSFP) (only supported in the MOD-160 line cards)
Supported Actions
These are the supported actions for onePK:
-
drop
-
offload
-
redirect (IPv4 only)
-
set next-hop(IPv4 only)
-
Forwarding class mapped to a TE tunnel
-
Rate limit
-
QoS Marking
-
Multiple actions per flow