Cisco One and OnePK: a short introduction

Cisco Open Network Environment (ONE) is the Cisco Software Defined Network (SDN) strategy. Cisco ONE includes:

  • The Cisco One Platform Kit (onePK): a set of APIs that allow application to control Cisco devices without a CLI. Cisco onePK is available on Cisco IOS, IOS-XE, IOS-XR and NX-OS software. Currently onePK is available on CSR1000V and on few IOU/IOL images to develop and test onePK software in a safe environment. Cisco onePK libraries are currently available for C and Java compilers but they are not available outside Cisco.
  • The Cisco ONE Controller: is the Control Plane for a set of ONE enabled devices. Cisco supports OpenDaylight project: the first download is expected in Q4 of 2013.
  • An overlay network solutions that include the Cisco Nexus 1000V (Data Center), CSR1000V and other various IOS/IOS-XE/IOS-XR/NX-OS platforms.

SDN “should” helps network administrator because it aggregates a lot of network devices under one controller. NetApp started the same evolution few years ago with Cluster Mode over the 7-Mode:: each 7-Mode NetApp storage is independent, a Cluster Mode can aggregate many NetApp storage and present just one storage. Each single storage becomes transparent. I expect that SDN allows to manage many devices like a single ones: interactions within a single complex big network device can be enhanced because the same device spreads over a larger space. Managing and monitoring should be simpler too: rather than hundreds devices, just one controller is needed. And, of course, human error can be worse than ever: one error will spread over all devices.

In my mind a good parallel with Cisco ONE is Gaia ( single network devices are like single humans, a Cisco ONE implementation is like Gaia.

Cisco OnePk

Cisco OnePk (Cisco One Platform Kit) is a framework to develop Cisco ONE software. I liked the parallel made by Joel Knight: Wordpress is a blog framework written in PHP. A specific Blog is a Wordpress implementation. Cisco OnePK is a set of libraries written in C/Java, a specific Cisco ONE application is a Cisco OnePK implementation. The Cisco ONE Controller is a Cisco ONE implementation which uses the Cisco OnePk framework.

Today, Cisco OnePk is a set of libraries for Java and C programming languages. Currently Cisco OnePK is not available to the public. Only few enterprise or service provider customers can apply to OnePk program.

A very simple Cisco OnePk application

Each router used by a Cisco ONE application must enable onep:

username admin privilege 15 password 0 cisco
 transport socket

A privileged username is required by the ONE application. Also ONE session can use clear (socket) or encrypted communications (TLS).

Router#show onep status
Status: enabled
Version: 0.6.0
Transport: socket; Status: running; Port: 15001
Transport: tls; Status: disabled
Transport: tipc; Status: disabled

The following code will get the CPU usage value from a specific router using onep API:


public class OnePkVerySimpleApp {
	public static void main( String args[] ) {
		try {
			InetAddress device_address = InetAddress.getByName("");
			NetworkElement onep_device = NetworkApplication.getInstance().getNetworkElement(device_address);
			onep_device.connect("admin", "cisco");

			System.out.print("CPU usage: ");

		catch (Exception e) {

The code should be auto-explained:

  • a network device is defined;
  • a onep session is established using privileged credentials;
  • the CPU utilization value is get and printed;
  • the onep session is closed.

I think that the first use of Cisco OnePk is monitoring. Custom application can be easily developed to integrate Cisco devices within a single Java-enabled monitoring dashboard. Advanced Cisco ONE applications could be able to modify routing and maybe alter packets.

Cisco ONE Controller: the OpenDaylight project

The OpenDaylight project is a SDN platform supported by Cisco, Brocade, Citrix, Juniper, VMware Huawei and other vendors. OpenDaylight project supports Openflow, and ONE also, I suppose:

OpenDaylight Project So, the Cisco ONE Controller is one of the Cisco ONE software supported by Cisco itself. It should be the mind (the control-plane) for all devices available in your network. The first download from the project is expected in Q4 of 2013. ## Conclusions / My opinion How SDN will impact in out networks is not easy to predict. SDN can enhance network applications but complexity could limit SDN applications. Monitoring applications will be enhanced, but this is not the main purpose of SDN. The most effective SDN applications should regards routing process: SDN should be able to route packets using business decision process rather than BGP/EIGRP/OSPF protocols. SDN should be able to manipulate packets also, but the question is: is there anyone who can understand network and can develop C/Java softwares. My opinion is that SDN will require another specific engineer: a sort of Network DevOps, a CCIE with strong programming skills. I remember the 2013 1st April fool joke, the Cisco CCNA ONE desertification. It was a joke, but I'm not totally sure if it can became true, sooner or later. ## References - Cisco Open Network Environment - Cisco OnePk Developer Program - Cisco onePK Use Cases - Cisco onePK FAQ - Cisco ONE Tutorials for Java - Cisco ONE SDK and Docs - Cisco onePK: Now I Get It - Cisco onePK Screencast - Cisco ONE Technology Presentations and Demos - Cisco SDN Live Seminars - SDN: Software Defined Networks (book) - <a title="A response to Padma Warrior's "Limitations of a Software-Only Approach to Data Center Networking"" href="">A response to Padma Warrior's "Limitations of a Software-Only Approach to Data Center Networking"</a> - Cisco Automation with Puppet and onePK

en → it

Posted on 24 Sep 2013 by Andrea.
  • Gmail icon
  • Twitter icon
  • Facebook icon
  • LinkedIN icon
  • Google+ icon