Beruflich Dokumente
Kultur Dokumente
of Open vSwitch
Ben Pfaff
Justin Pettit
Teemu Koponen
Ethan J. Jackson
Andy Zhou
Jarno Rajahalme
Jesse Gross
Alex Wang
Jonathan Stringer
Pravin Shelar
Keith Amidon
Martin Casado
VMware
Awake Networks
Broad support:
Widely used:
VS
DB
OVSDB
ovs-vswitchd
w
ovsdb-server
O
pe
nF
lo
Hypervisor
VM 2
Controller
...
Netlink
user
kernel
VM 1
VMs
VM n
kernel module
NICs
packet
ingress
Table 0
Table 1
Table 24
Flow 1
Flow 1
Flow 1
Flow 2
Flow 2
Flow 2
...
...
...
Physical
to Logical
L2
Lookup
...
...
OpenFlow Pipeline
Logical to
Physical
packet
egress
packet
ingress
Table 0
Table 1
Table 24
Flow 1
Flow 1
Flow 1
Flow 2
Flow 2
Flow 2
...
...
...
Physical to
Logical
L2
Lookup
...
Logical to
Physical
k1 hash
lookups
...
k24 hash
lookups
k0 hash
lookups
...
packet
egress
Non-solutions
Multithreading
Userspace RCU
Classifier optimizations
Microoptimizations
kernel
Microflow:
Complete set of packet
headers and metadata
Suitable for hash table
Shaded data below:
OpenFlow Tables
userspace
che
a
c
flow kup)
o
r
c
i
o
M
sh lo OpenFlow tables
a
h
(1
Table 0
packet
Flow 1
ingress
Flow 2
Table 1
Table 24
Flow 1
Flow 1
...
Flow 2
Flow 2
...
...
...
Physical to
Logical
L2
Lookup
...
Logical to
Physical
k1 hash
lookups
...
k24 hash
lookups
k0 hash
lookups
packet
egress
Port scans
Malicious
Accidental (!)
Using
a
More
Expensive
Cache
s)
ku p
o
o
l
ash
(k c h OpenFlow tables
e
Cach
packet
ingress
Table 0
Table 1
Table 24
Flow 1
Flow 1
Flow 1
Flow 2
Flow 2
Flow 2
...
...
...
Physical to
Logical
L2
Lookup
...
Logical to
Physical
k1 hash
lookups
...
k24 hash
lookups
k0 hash
lookups
...
packet
egress
eth_dst=i
ip_src=c
ip_dst=f eth_dst=j
eth_dst=k
ip_dst=g
ip_src=d
ip_dst=h
eth_dst=m
n1 flows
n2 flows
n24 flows
Table 0
Table 1
ip_src=a
ip_dst=e
ip_src=b
...
ip_src=d, ip_dst=h, , eth_dst=k
ip_src=d, ip_dst=h, , eth_dst=m
up to n1 n2 n24 flows
Crossproduct Problem
Table 0
Table 1
ip_src=a
ip_dst=e
ip_src=c
eth_dst=i
...
ip_dst=f eth_dst=j
...
eth_dst=k
ip_dst=g
ip_src=d
ip_dst=h
eth_dst=m
n1 flows
n2 flows
n24 flows
ip_src=b
Megaflow Cache
Table 24
...
miss
OpenFlow Tables
userspace
Megaflow Cache
kernel
hit
Requirements:
online
fast
Microflow cache:
Megaflow cache:
Megaflow Cache
miss
OpenFlow Tables
userspace
M hit
kernel
Microflow Cache
hit
Parting Thoughts