This document summarizes an introduction to OpenvSwitch presented by pichuang@sdnds-tw. It provides an overview of OpenvSwitch including that it is a production quality, multi-layer virtual switch that supports OpenFlow and is written in platform-independent C. It then describes some key OpenvSwitch features and components and how they interact, such as the datapath, ovs-vswitchd, and ovsdb-server. It concludes with suggestions for debugging and setting OpenvSwitch.
2. About me
❖ pichuang a.k.a. ⼩小⾶飛機!
❖ 救⽕火員型研究⽣生!
❖ NCTU CSCC TA!
❖ NCTU Wireless Internet Lab!
❖ http://roan.logdown.com!
❖ http://fbl.me/pichuang
3. OpenvSwitch Introduction
❖ Production Quality!
❖ Multi Layer virtual switch!
❖ L2 - L4!
❖ Support OpenFlow protocol!
❖ Written in platform-independent C
4. OpenvSwitch Features
❖ VLAN tagging and trunking (802.1q)!
❖ Standard Spanning Tree Protocol (802.1d)!
❖ Link Aggregation Control Protocol (802.3ad)!
❖ Port mirror!
❖ RSPAN!
❖ SPAN
5. ❖ Flow monitor!
❖ sFlow!
❖ NetFlow!
❖ IP Flow Information Export (IPFIX)!
❖ QoS Control!
❖ Tunneling Protocol!
❖ VXLAN!
❖ GRE!
❖ IPSEC!
❖ Support Intel® DPDK!
❖ Support Linux Kenrel 3.11 ~ 3.14
6. OpenvSwitch Overview
OpenFlow Controller
Remote
User space
OpenFlow protocol
ovs-vswitchd ovsdb-server
datapath!
ovs kernel module
Kernel space
unix socket
netlink
7. kmod_openvswitch
OpenFlow Controller
Remote
User space
OpenFlow protocol
ovs-vswitchd ovsdb-server
datapath!
ovs kernel module
Kernel space
unix socket
netlink
8. ❖ a.k.a “datapath"!
❖ Fast Path lookup!
❖ Strict match!
❖ Similar to linux bridge !
❖ Hook network device handle!
❖ Extract Flow key!
❖ jhash3!
❖ Implement tunneling
protocol!
❖ Megaflow (Wildcard table)
10. ovs-vswitchd
OpenFlow Controller
Remote
User space
OpenFlow protocol
ovs-vswitchd ovsdb-server
datapath!
ovs kernel module
Kernel space
unix socket
netlink
11. ❖ OpenvSwitch core component!
❖ Talk to datapath via netlink!
❖ Communicate with ovsdb-server via unix socket!
❖ Implement various protocols!
❖ like OpenFlow protocol!
❖ Include exactly table(Fast lookup) and wildcard table
(Slow lookup)