Communications and Network, 2013, 5, 434-437
http://dx.doi.org/10.4236/cn.2013.53B2080 Published Online September 2013 (http://www.scirp.org/journal/cn)
Copyright © 2013 SciRes. CN
SDN-Based Switch Implementation
on Network Processors
Yunchun Li, Guodong Wang
School of Computer Science and Engineering, BeiHang University, Beijing, China
Email: wangguodong2350@126.com
Received June 2013
ABSTRACT
Virtualization is the key technology of cloud co mputing. Network virtualization plays an important role in this field. Its
performance is very relevant to network virtualizing. Nowadays its implementations are mainly based on the idea of
Software Define Network (SDN). Open vSwitch is a sort of software virtual switch, which conforms to the OpenFlow
protocol standard. It is basically deployed in the Linux kernel hypervisor. This leads to its performance relatively poo r
because of the limited system resource. In turn, the packet process throughput is very low. In this paper, we present a
Cavium-based Open vSwitch implementation. The Cavium platform features with multi cores and couples of hard ac-
celerators. It supports zero-copy of packets and handles packet more quickly. We also carry some experiments on the
platform. It indicates that we can use it in the enterprise network or campus network as convergence layer and core
layer device.
Keywords: SDN; Open vSwitch; Network Processors; OpenFlow
1. Introduction
Software Defined Network (SDN) is the main approach
to achieve network virtualization. The idea was origi-
nated at Stanford University Ethane items. The Open
Flow [1] protocol is a new standard that provides pro-
gramming interface on switch or routers. With the new
protocol, the control and data planes are decoupled, net-
work intelligence and state are logically centralized, and
underlying network infrastructure is abstracted from the
applications. This enables enterprises to build highly scal-
able, flexible networks that readily adapt to changing
business ne eds.
Open vSwitch [2] is developed by Nicira Network and
has been widely used because of its great scalability and
programmability. Enterprises and carriers can gain un-
precedented programmability, automation, and network
control. Open vSwitch is deployed in the linux kernel.
The kernel bridge is replaced by the kernel module of
Open vSwitch. It supports a variety of standard manage-
ment interfaces, such as NetFlow, sFlow, CLI and so on.
And there has been the optimization on the PC platform
[4]. But its performance is relatively slo w because of the
cpu overload. In fact, the performance experiments have
been done in [5]. Stanford implements the switching ref-
erenc e on NetFPGA by offloading packet processing from
host CPU to NIC [6].
The Cavium [3] network processor provides two run-
time modes: SE-S and SE-UM. SE-S mode can achieve
better performance based on data plane hardware units,
without context switching overhead.
In thi s pape r, we pr opo se to i mplem ent the O pen vSwitch
based on Cavium network processor. We port the kernel
module to network processor platform and improve the
throughput significan tly.
The paper is organized as follows. F irs t, Network Pro-
cessor platform and Open vSwitch are introduced, fol-
lowed by the Cavium switch design and implementation.
After experiments, t he design finally reaches the goal.
2. Open vSwitch Principle of Work
Open vSwitch supports the OpenFlow protocol, which
forms the bridge between controller and switch. The com-
munication model is shown in Figure 1.
While Open vSwitch can be used as stand-alone switch-
ing equipment for packet forwarding, the main mode of
operation is switching packets by the command of re-
mote controller. It configures and manages the switch
through OpenFlow, and it also provides programming
interface to users for enforcing flow rules, modifying
flow table and so on. The basic infrastructure is shown in
Figure 2.
Open vSwitch can run in user space, after loading the