SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
mSwitch:	
  A	
  Highly-­‐Scalable,	
  Modular	
  
Software	
  Switch
Michio	
  Honda	
  (NetApp)	
  *	
  
Felipe	
  Huici	
  (NEC),	
  Giuseppe	
  Lettieri	
  and	
  Luigi	
  Rizzo	
  (Università	
  di	
  Pisa)	
  
ACM	
  SOSR’15	
  June	
  17
*	
  this	
  work	
  was	
  mostly	
  done	
  at	
  NEC
Motivation
• Software	
  switches	
  are	
  important	
  
–Interconnection	
  between	
  VMs/containers	
  and	
  NICs	
  
–Middleboxes,	
  SDN,	
  NFV	
  
• Requirements	
  
–Throughput	
  (e.g.,	
  10	
  Gbps)	
  
–Scalability	
  (e.g.,	
  100	
  ports)	
  
–Flexibility	
  (e.g.,	
  forwarding	
  decision,	
  packet	
  modification)	
  
–CPU	
  efficiency	
  (e.g.,	
  allocate	
  as	
  many	
  CPU	
  resources	
  to	
  VMs	
  as	
  possible)	
  
Are	
  existing	
  software	
  switches	
  able	
  to	
  meet	
  these	
  requirements?
Software Switch
VM VM VM
NIC NIC
Existing	
  Software	
  Switches
• OS-­‐standard	
  ones	
  don’t	
  provide	
  
high	
  throughput
1
2
4
6
8
10
60 124 252 508 1020 1514
Throughput(Gbps)
Packet size (bytes, excluding CRC)
FreeBSD bridge
Linux OVS
DPDK vSwitch
VALE
• High	
  throughput	
  ones	
  lack	
  port	
  
scalability	
  and/or	
  flexibility
Finally, CuckooSwitch targets physical NICs (i.e., no virtual
ports), so the experiments presented in that paper are limited
to 8 ports total.
Flexibility: Most of the software switches currently avail-
able do not expressly target a flexible forwarding plane, lim-
iting themselves to L2 forwarding. This is the case for the
standard FreeBSD and Linux bridges, but also for newer
systems such as VALE and CuckooSwitch. Instead, Open
vSwitch supports the OpenFlow protocol, and as such pro-
vides the ability to match packets against a fairly compre-
hensive number of packet headers, and to apply actions to
matching packets. However, as shown in figure 1 and in [19],
Open vSwitch does not yield high throughput.
Throughput CPU Usage Density Flexibility
FreeBSD switch ⇥
p p
⇥
Linux switch ⇥
p p
⇥
Open vSwitch ⇥
p p p
Hyper-Switch ⇥
p
⇥
p
DPDK vSwitch
p
⇥ ⇥
p
CuckooSwitch
p
⇥ ⇥ ⇥
VALE
p p
⇥ ⇥
Table 1. Characteristics of software switches with respect
to throughput, CPU usage, port density and flexibility.
DPDK vSwitch takes the Open vSwitch code base and ac-
celerates it through the use of the DPDK packet framework.
• Separation	
  into	
  fabric	
  and	
  logic	
  
• Fabric:	
  switches	
  packets	
  between	
  ports	
  
• Logic:	
  modular	
  forwarding	
  decisions
mSwitch	
  Design	
  Decisions
4
Switching	
  fabric
Switching	
  logic
OS	
  stack
Sock.	
  API
Apps
Virtual	
  Ports
App/VMApp/VM
netmap	
  
API
netmap	
  
API
User
Kernel
NIC
• Interrupt	
  model	
  
• Efficient,	
  flexible	
  CPU	
  utilization
• Runs	
  in	
  the	
  kernel	
  
• To	
  efficiently	
  handle	
  interrupts	
  
• Integration	
  with	
  OS	
  subsystems	
  
• network	
  stack,	
  device	
  drivers	
  etc
• Separate,	
  per-­‐port	
  packet	
  buffers	
  
• Isolation	
  
• Copy	
  is	
  anyways	
  inexpensive
• Output	
  queue:	
  reserve	
  destination	
  
buffers	
  w/	
  lock	
  and	
  copy	
  packets	
  
w/o	
  lock	
  
• concurrent	
  senders	
  can	
  perform	
  
copy
Scalable	
  Packet	
  Switching	
  Algorithms
• Input	
  queue:	
  group	
  packets	
  for	
  
each	
  destination	
  port	
  before	
  
forwarding	
  
• For	
  a	
  batch	
  of	
  input	
  packets,	
  lock	
  
each	
  destination	
  port	
  and	
  access	
  
its	
  device	
  register	
  only	
  once
5
sender1
sender2
Output	
  queue
Modular	
  Switching	
  Logic
• Switching	
  logics	
  are	
  implemented	
  as	
  separate	
  kernel	
  modules	
  that	
  
implement	
  a	
  lookup	
  function:	
  
• Return	
  value	
  indicates	
  a	
  destination	
  switch	
  port	
  index,	
  drop	
  or	
  broadcast	
  
• L2	
  learning	
  is	
  default	
  but	
  we	
  can	
  change	
  it	
  at	
  anytime	
  while	
  the	
  switch	
  is	
  
running
A	
  Full	
  mSwitch	
  Module
u_int
my_lookup(u_char *buf, const struct net_device *dev)
{
struct ether_hdr *eh;
eh = (struct ether_hdr *)buf;
/* least significant byte */
return eh->ether_dst[0];
}
CPU	
  Utilization
• mSwitch	
  efficiently	
  utilizes	
  CPUs
1
2
3
4
5
6
7
1 2 3 4 5 6 7 8 9
100
200
300
400
500
600
700
800
900
1000
Throughput(Gbps)
CumulativeCPUutilization(%)
# of destination virtual ports (# of CPU cores - 1)
mSwitch
DPDK vSwitch
mSwitch (% CPU)
DPDK vSwitch (% CPU)
NIC
AppApp AppApp
virtual
ports
One	
  CPU	
  core	
  for	
  the	
  NIC	
  and	
  per	
  virtual	
  port
Ports	
  Scalability
• mSwitch	
  scales	
  to	
  many	
  ports
1
2
3
4
5
6
7
1 10 20 30 40 50 60 70 80 90 100 110 120
10
20
30
40
50
60
70
80
90
100
Throughput(Gbps)
CPUutilization(%)
# of destination virtual ports
mSwitch (Throughput)
VALE (Throughput)
mSwitch (NIC-CPU)
VALE (NIC-CPU)
mSwitch (App-CPU)
VALE (App-CPU)
NIC
AppApp AppApp
virtual
ports
One	
  CPU	
  core	
  for	
  the	
  NIC	
  
Another	
  one	
  for	
  all	
  virtual	
  ports
mSwitch	
  Module	
  Use	
  Cases
10
VPVP VPkernel
NIC
Open vSwitch
datapath
VM
user
VM VM
NIC
VPVPkernel
NIC
UDP/TCP port
filter
App/VM
user
App/VM
NIC
(middlebox for
TCP 80 and 443)
(middlebox for
UDP/TCP 5004)
Mux/Demux
(3 tuple)
VPVP
App+
stack
Sock. API
OS stack
App+
stack
kernel
user
(TCP 22)
(TCP 80) (TCP 53) App
NIC
• Accelerated	
  Open	
  
vSwitch	
  datapath	
  
• 3x	
  speedup
• Filtering	
  for	
  virtualized	
  
middleboxes	
  
• Efficiently	
  directs	
  relevant	
  
packets	
  to	
  middleboxes	
  
on	
  virtual	
  ports
• Support	
  for	
  user-­‐space	
  
protocols:	
  
• With	
  isolation	
  
• Can	
  still	
  use	
  OS’s	
  stack
Conclusion
• A	
  highly-­‐scalable,	
  modular	
  software	
  switch	
  
• Higher	
  scalability	
  and	
  flexibility	
  compared	
  to	
  DPDK	
  vSwitch	
  and	
  VALE	
  
• Already	
  integrated	
  into	
  netmap/VALE	
  implementation	
  
• https://code.google.com/p/netmap/	
  
• Upstreamed	
  into	
  FreeBSD,	
  works	
  in	
  Linux	
  
• All	
  the	
  modules	
  (e.g.,	
  Open	
  vSwitch	
  acceleration)	
  are	
  publicly	
  available	
  
• https://github.com/cnplab	
  
• The	
  paper	
  is	
  open	
  access:

http://web.sfc.wide.ad.jp/~micchie/papers/a1-­‐honda-­‐sosr15.pdf	
  
• Other	
  papers	
  using	
  mSwitch:	
  
• Martins	
  et	
  al.	
  “ClickOS	
  and	
  the	
  art	
  of	
  network	
  function	
  virtualization”,	
  USENIX	
  NSDI’14	
  
• Honda	
  et	
  al.	
  “Rekindling	
  network	
  protocol	
  innovation	
  with	
  user-­‐level	
  stacks”,	
  ACM	
  CCR	
  201411
Module	
  complexity	
  and	
  performance
12
the
ces
an-
re-
ons
S
S
2
4
6
8
10
12
14
1.2 1.5 2.1 2.4 3.2
Throughput(Mpps)
CPU Clock Frequency (Ghz)
Baseline
Filter
L2 learn
3-tuple
mSwitch-OVS
Figure 16: Throughput comparison between di↵er-
ent mSwitch modules for 60 Byte packets.
Measurement	
  results	
  for	
  minimum-­‐sized	
  packet	
  forwarding	
  between	
  two	
  NICs

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

DPDK KNI interface
DPDK KNI interfaceDPDK KNI interface
DPDK KNI interface
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
 
VLANs in the Linux Kernel
VLANs in the Linux KernelVLANs in the Linux Kernel
VLANs in the Linux Kernel
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
 
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
 
How to Speak Intel DPDK KNI for Web Services.
How to Speak Intel DPDK KNI for Web Services.How to Speak Intel DPDK KNI for Web Services.
How to Speak Intel DPDK KNI for Web Services.
 
Playing BBR with a userspace network stack
Playing BBR with a userspace network stackPlaying BBR with a userspace network stack
Playing BBR with a userspace network stack
 
Dpdk applications
Dpdk applicationsDpdk applications
Dpdk applications
 
mTCP使ってみた
mTCP使ってみたmTCP使ってみた
mTCP使ってみた
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 
Introduction to eBPF
Introduction to eBPFIntroduction to eBPF
Introduction to eBPF
 
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
 
DPDK Summit 2015 - RIFT.io - Tim Mortsolf
DPDK Summit 2015 - RIFT.io - Tim MortsolfDPDK Summit 2015 - RIFT.io - Tim Mortsolf
DPDK Summit 2015 - RIFT.io - Tim Mortsolf
 
DPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al SandersDPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al Sanders
 
Accelerate Service Function Chaining Vertical Solution with DPDK
Accelerate Service Function Chaining Vertical Solution with DPDKAccelerate Service Function Chaining Vertical Solution with DPDK
Accelerate Service Function Chaining Vertical Solution with DPDK
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
 
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics WorkshopLagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
 
Dpdk performance
Dpdk performanceDpdk performance
Dpdk performance
 
High Performance Networking Leveraging the DPDK and Growing Community
High Performance Networking Leveraging the DPDK and Growing CommunityHigh Performance Networking Leveraging the DPDK and Growing Community
High Performance Networking Leveraging the DPDK and Growing Community
 

Ähnlich wie mSwitch: A Highly-Scalable, Modular Software Switch

FlowER Erlang Openflow Controller
FlowER Erlang Openflow ControllerFlowER Erlang Openflow Controller
FlowER Erlang Openflow Controller
Holger Winkelmann
 
SDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center NetworkingSDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center Networking
Thomas Graf
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
OpenSourceIndia
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
suniltomar04
 
Nvp deep dive_session_cee-day
Nvp deep dive_session_cee-dayNvp deep dive_session_cee-day
Nvp deep dive_session_cee-day
yfauser
 

Ähnlich wie mSwitch: A Highly-Scalable, Modular Software Switch (20)

FlowER Erlang Openflow Controller
FlowER Erlang Openflow ControllerFlowER Erlang Openflow Controller
FlowER Erlang Openflow Controller
 
OpenFlow Tutorial
OpenFlow TutorialOpenFlow Tutorial
OpenFlow Tutorial
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
 
Software Defined Networking: Primer
Software Defined Networking: Primer Software Defined Networking: Primer
Software Defined Networking: Primer
 
Решения NFV в контексте операторов связи
Решения NFV в контексте операторов связиРешения NFV в контексте операторов связи
Решения NFV в контексте операторов связи
 
Using Agilio SmartNICs for OpenStack Networking Acceleration
Using Agilio SmartNICs for OpenStack Networking AccelerationUsing Agilio SmartNICs for OpenStack Networking Acceleration
Using Agilio SmartNICs for OpenStack Networking Acceleration
 
FD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingFD.IO Vector Packet Processing
FD.IO Vector Packet Processing
 
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP IntegrationBKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
 
Understanding network and service virtualization
Understanding network and service virtualizationUnderstanding network and service virtualization
Understanding network and service virtualization
 
10 sdn-vir-6up
10 sdn-vir-6up10 sdn-vir-6up
10 sdn-vir-6up
 
Cisco nx os
Cisco nx os Cisco nx os
Cisco nx os
 
SDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center NetworkingSDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center Networking
 
Network Virtualization & Software-defined Networking
Network Virtualization & Software-defined NetworkingNetwork Virtualization & Software-defined Networking
Network Virtualization & Software-defined Networking
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
 
Nvp deep dive_session_cee-day
Nvp deep dive_session_cee-dayNvp deep dive_session_cee-day
Nvp deep dive_session_cee-day
 
Tech Talk by Ben Pfaff: Open vSwitch - Part 2
Tech Talk by Ben Pfaff: Open vSwitch - Part 2Tech Talk by Ben Pfaff: Open vSwitch - Part 2
Tech Talk by Ben Pfaff: Open vSwitch - Part 2
 
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitchDPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
 

Kürzlich hochgeladen

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Kürzlich hochgeladen (20)

WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 

mSwitch: A Highly-Scalable, Modular Software Switch

  • 1. mSwitch:  A  Highly-­‐Scalable,  Modular   Software  Switch Michio  Honda  (NetApp)  *   Felipe  Huici  (NEC),  Giuseppe  Lettieri  and  Luigi  Rizzo  (Università  di  Pisa)   ACM  SOSR’15  June  17 *  this  work  was  mostly  done  at  NEC
  • 2. Motivation • Software  switches  are  important   –Interconnection  between  VMs/containers  and  NICs   –Middleboxes,  SDN,  NFV   • Requirements   –Throughput  (e.g.,  10  Gbps)   –Scalability  (e.g.,  100  ports)   –Flexibility  (e.g.,  forwarding  decision,  packet  modification)   –CPU  efficiency  (e.g.,  allocate  as  many  CPU  resources  to  VMs  as  possible)   Are  existing  software  switches  able  to  meet  these  requirements? Software Switch VM VM VM NIC NIC
  • 3. Existing  Software  Switches • OS-­‐standard  ones  don’t  provide   high  throughput 1 2 4 6 8 10 60 124 252 508 1020 1514 Throughput(Gbps) Packet size (bytes, excluding CRC) FreeBSD bridge Linux OVS DPDK vSwitch VALE • High  throughput  ones  lack  port   scalability  and/or  flexibility Finally, CuckooSwitch targets physical NICs (i.e., no virtual ports), so the experiments presented in that paper are limited to 8 ports total. Flexibility: Most of the software switches currently avail- able do not expressly target a flexible forwarding plane, lim- iting themselves to L2 forwarding. This is the case for the standard FreeBSD and Linux bridges, but also for newer systems such as VALE and CuckooSwitch. Instead, Open vSwitch supports the OpenFlow protocol, and as such pro- vides the ability to match packets against a fairly compre- hensive number of packet headers, and to apply actions to matching packets. However, as shown in figure 1 and in [19], Open vSwitch does not yield high throughput. Throughput CPU Usage Density Flexibility FreeBSD switch ⇥ p p ⇥ Linux switch ⇥ p p ⇥ Open vSwitch ⇥ p p p Hyper-Switch ⇥ p ⇥ p DPDK vSwitch p ⇥ ⇥ p CuckooSwitch p ⇥ ⇥ ⇥ VALE p p ⇥ ⇥ Table 1. Characteristics of software switches with respect to throughput, CPU usage, port density and flexibility. DPDK vSwitch takes the Open vSwitch code base and ac- celerates it through the use of the DPDK packet framework.
  • 4. • Separation  into  fabric  and  logic   • Fabric:  switches  packets  between  ports   • Logic:  modular  forwarding  decisions mSwitch  Design  Decisions 4 Switching  fabric Switching  logic OS  stack Sock.  API Apps Virtual  Ports App/VMApp/VM netmap   API netmap   API User Kernel NIC • Interrupt  model   • Efficient,  flexible  CPU  utilization • Runs  in  the  kernel   • To  efficiently  handle  interrupts   • Integration  with  OS  subsystems   • network  stack,  device  drivers  etc • Separate,  per-­‐port  packet  buffers   • Isolation   • Copy  is  anyways  inexpensive
  • 5. • Output  queue:  reserve  destination   buffers  w/  lock  and  copy  packets   w/o  lock   • concurrent  senders  can  perform   copy Scalable  Packet  Switching  Algorithms • Input  queue:  group  packets  for   each  destination  port  before   forwarding   • For  a  batch  of  input  packets,  lock   each  destination  port  and  access   its  device  register  only  once 5 sender1 sender2 Output  queue
  • 6. Modular  Switching  Logic • Switching  logics  are  implemented  as  separate  kernel  modules  that   implement  a  lookup  function:   • Return  value  indicates  a  destination  switch  port  index,  drop  or  broadcast   • L2  learning  is  default  but  we  can  change  it  at  anytime  while  the  switch  is   running
  • 7. A  Full  mSwitch  Module u_int my_lookup(u_char *buf, const struct net_device *dev) { struct ether_hdr *eh; eh = (struct ether_hdr *)buf; /* least significant byte */ return eh->ether_dst[0]; }
  • 8. CPU  Utilization • mSwitch  efficiently  utilizes  CPUs 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 100 200 300 400 500 600 700 800 900 1000 Throughput(Gbps) CumulativeCPUutilization(%) # of destination virtual ports (# of CPU cores - 1) mSwitch DPDK vSwitch mSwitch (% CPU) DPDK vSwitch (% CPU) NIC AppApp AppApp virtual ports One  CPU  core  for  the  NIC  and  per  virtual  port
  • 9. Ports  Scalability • mSwitch  scales  to  many  ports 1 2 3 4 5 6 7 1 10 20 30 40 50 60 70 80 90 100 110 120 10 20 30 40 50 60 70 80 90 100 Throughput(Gbps) CPUutilization(%) # of destination virtual ports mSwitch (Throughput) VALE (Throughput) mSwitch (NIC-CPU) VALE (NIC-CPU) mSwitch (App-CPU) VALE (App-CPU) NIC AppApp AppApp virtual ports One  CPU  core  for  the  NIC   Another  one  for  all  virtual  ports
  • 10. mSwitch  Module  Use  Cases 10 VPVP VPkernel NIC Open vSwitch datapath VM user VM VM NIC VPVPkernel NIC UDP/TCP port filter App/VM user App/VM NIC (middlebox for TCP 80 and 443) (middlebox for UDP/TCP 5004) Mux/Demux (3 tuple) VPVP App+ stack Sock. API OS stack App+ stack kernel user (TCP 22) (TCP 80) (TCP 53) App NIC • Accelerated  Open   vSwitch  datapath   • 3x  speedup • Filtering  for  virtualized   middleboxes   • Efficiently  directs  relevant   packets  to  middleboxes   on  virtual  ports • Support  for  user-­‐space   protocols:   • With  isolation   • Can  still  use  OS’s  stack
  • 11. Conclusion • A  highly-­‐scalable,  modular  software  switch   • Higher  scalability  and  flexibility  compared  to  DPDK  vSwitch  and  VALE   • Already  integrated  into  netmap/VALE  implementation   • https://code.google.com/p/netmap/   • Upstreamed  into  FreeBSD,  works  in  Linux   • All  the  modules  (e.g.,  Open  vSwitch  acceleration)  are  publicly  available   • https://github.com/cnplab   • The  paper  is  open  access:
 http://web.sfc.wide.ad.jp/~micchie/papers/a1-­‐honda-­‐sosr15.pdf   • Other  papers  using  mSwitch:   • Martins  et  al.  “ClickOS  and  the  art  of  network  function  virtualization”,  USENIX  NSDI’14   • Honda  et  al.  “Rekindling  network  protocol  innovation  with  user-­‐level  stacks”,  ACM  CCR  201411
  • 12. Module  complexity  and  performance 12 the ces an- re- ons S S 2 4 6 8 10 12 14 1.2 1.5 2.1 2.4 3.2 Throughput(Mpps) CPU Clock Frequency (Ghz) Baseline Filter L2 learn 3-tuple mSwitch-OVS Figure 16: Throughput comparison between di↵er- ent mSwitch modules for 60 Byte packets. Measurement  results  for  minimum-­‐sized  packet  forwarding  between  two  NICs