Showing results for 
Search instead for 
Did you mean: 
Joe Clarke
Cisco Employee
Cisco Employee

If you missed Cisco Live London, you’re in luck! Cisco Distinguished Engineer Joe Clarke talks about his Cisco onePK presentation and attendee lab sessions.

I had the pleasure of attending CiscoLive! London in January where I presented on and talked to attendees about Cisco’s Open Network Environment (ONE). Specifically, I focused on the Open Network Environment Platform Kit or onePK. OnePK is a device-level application programmer’s interface (API) for Cisco routers and switches. Together with a few other colleagues, we provided a lab for attendees to get their hands dirty with onePK, and I pulled booth duty in the World of Solutions to show off some of onePK’s power. Needless to say there was a lot of buzz and excitement around what Cisco is doing with network programmability.

Our lab session wasn’t new this year. We have given it before, but focusing only on embedded automation capabilities like Tcl programming and the Embedded Event Manager (EEM). This year, we spiced things up by adding onePK. The attendees were very excited about doing the new exercises and stimulating their creativity with what onePK could do. At the same time, another group of colleagues were giving their own ONE-centric lab, and I heard the same story from them: customers and partners are excited about ONE.

In the World of Solutions, I showed off some of the great demos the Technical Marketing Engineers have put together for onePK. I demonstrated how with onePK, one can change the routing algorithm from simply looking at path metrics to being able to look at other business elements like link dollar cost (see Figure 1). I demonstrated apps that can transparently encrypt traffic across insecure links without the client and server realizing. And I demonstrated our capability to dynamically shape traffic on the fly based on user service level using a representational state transfer (REST) API (see Figure 2). Attendees’ eyes lit up to see how they could gain more control over their network operations and apply their business logic in the network.


Figure One (click to enlarge)


Figure Two (click to enlarge)

There were some other questions, too; one in particular we heard a lot. People want to know what the difference is between our onePK and other network programmability or Software Defined Networking (SDN) technologies like OpenFlow.

OpenFlow, and traditional SDN provide a way to separate the control plane from one or more data planes. This allows you, amongst other things, to have one centralized controller that can communicate with a number of distributed data plane switches. OpenFlow focuses primarily on programming those data plane devices with the necessary forwarding information to move traffic from one interface to another. Cisco’s Open Network Environment includes OpenFlow and OpenFlow controller and agents, but also provides our devices with a rich API in onePK. Unlike OpenFlow, onePK allows a developer access to the device’s control and management planes in addition to the data plane. This means a programmer can leverage the myriad of features in Cisco’s operating systems, such as topology information, policy and access control, dynamic events, and management statistics all with a common API. By common, I mean that the same API functions and methods work across Cisco IOS, IOS-XR, IOS-XE, and NX-OS. Using onePK, customers and partners can start to apply their business intelligence into the network dynamically, thus making the network more scalable and more attuned to an individual organization’s needs.

Currently, onePK is in early field trial, but we will soon be moving to a controlled availability release. Check out our

Cisco Developer Network portal for more details, and check out for more on Cisco’s Open Network Environment and the new age of the programmable network.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: