# 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 (http://en.wikipedia.org/wiki/New_Age_Gaian): 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’s Blog: 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 onePK Developer 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
onep
transport socket
start


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:

import com.cisco.onep.core.exception.OnepException;
import com.cisco.onep.element.NetworkApplication;
import com.cisco.onep.element.NetworkElement;

public class OnePkVerySimpleApp {
public static void main( String args[] ) {
try {

System.out.print("CPU usage: ");
System.out.println(onep_device.getSystemCPUUtilization());

onep_device.disconnect();
}
catch (Exception e) {
e.printStackTrace();
}
}
}


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: 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 New Cisco Certification – CCNA ONE (Open Network Environment) – April Fools’ Day Prank – April Fools’ Day Prank”). It was a joke, but I’m not totally sure if it can became true, sooner or later.