SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
© 2009 VMware Inc. All rights reserved
Programmable Networking with Open vSwitch
Jesse Gross
LinuxCon
September, 2013
2
Background: The Evolution of Data Centers
Virtualization has created data center workloads that are large, rapidly
changing, and location independent.
§ Enabled by a layer of software indirection between logical unit (virtual
machine) and underlying hardware (physical machine).
§ The virtualization layer exposes a programmable API to what previously
required a human to reconfigure.
§ Current networking has many of the same problems as traditional servers,
limiting the benefits of virtualization.
Networking needs to be programmable
3
What is Open vSwitch?
Open vSwitch is an open source switching stack for virtualization.
The most powerful piece of real estate in a network is the edge and the
hypervisor is the new edge.
Two ways to view OVS:
• Gaining back visibility and control that usually comes from the features of a
hardware switch.
• An opportunity to exploit the flexibility that comes from software and
virtualization.
Open vSwitch allows you to write a program to control your network.
4
Sample of Contributors
5
openvswitch.ko
ovsdb-server
User
Kernel
Control & Management Cluster
ovs-vswitchd
Management Protocol (6632/TCP)
OpenFlow (6633/TCP)
Netlink
Off-box
Open vSwitch Architecture
6
Basic Features
Open vSwitch brings many features standard in hardware devices to
virtualized environments:
• VLANs
• LACP and other bonding modes
• STP
• QoS shaping and policing
• ACLs over a range of L2-L4 protocols
• NetFlow, sFlow, IPFIX, mirroring
• A variety of tunneling protocols
Plus remote programmability and management features:
• OpenFlow 1.0 and experimental support for versions 1.1-1.3.
• All features and status remotely configurable and viewable.
• Many extensions for supporting high availability control clusters.
7
Advanced Capabilities
Programmability requires primitives more similar to a CPU than a network
ASIC.
Over time, the flow table in Open vSwitch has slowly changed from a list of
policies to a nearly general purpose processing pipeline.
Examples:
§ Resubmit: Move between multiple independent flow tables, similar to
subroutines.
§ Registers: Storage for intermediate metadata, including manipulation
functions such as a stack.
§ Learning: Dynamically generate new flows based on packet traffic
patterns.
§ Hashing and Perform actions based on deterministic or probabilistic
Sampling: properties of the traffic.
8
A Simple Switch Pipeline
Admission Control
Input VLAN
Processing
Learn
Source
MAC/VLAN
Lookup
Output Port
Output
VLAN
Processing
Open vSwitch makes it possible to emulate a traditional pipeline or extend
for new models.
1. Flows to drop illegal packets (i.e. reserved addresses) and resubmit valid
packets to the next stage.
2. Classify packets on ingress port and add VLAN tag. Resubmit to next stage.
3. Learning action to generate new flows based on source MAC, VLAN, and
input port. Fields populate a template and placed in next stage. Resubmit.
4. Match flows generated by learning or use low priority flood flow. Resubmit.
5. Strip VLAN tag for access ports and output.
9
Performance
How does programmability impact forwarding rates?
0.1
1
10
100
1000
10000
0.001 0.01 0.1 1 10 100 1000 10000
Native
OVS
Bandwidth
(Mbps)
Message Size (KB)
10
Performance
Many aspects of performance:
Established Flows:
New flows are sent to userspace and exact match entries are installed in
the kernel. All classification happens in userspace, out of the fast path.
Most additional features do not affect performance.
Connection Setup:
Most challenging case for Open vSwitch. Optimizations are currently
under development to both reduce the number of unique flows and
increase the speed of setup.
Many Sustained Connections:
A large number of flows does not directly affect throughput but the
overhead of maintaining statistics increases. Heuristics are used to
balance the rate of updates with overhead.
11
Integration Points: libvirt and OpenStack
Quantum
Open vSwitch
Plugin
Nova Swift
OVS + libvirt
Hypervisors
Two main touch points between Open
vSwitch and the rest of the environment:
libvirt (0.9.11): VM lifecycle on hypervisors –
attach ports to bridges.
OpenStack/Quantum (Folsom): Manage
many Open vSwitch instances to create
network abstractions.
12
Physical Compute & Memory
Server Hypervisor
Requirement: x86
Virtual
Machine
Virtual
Machine
Virtual
Machine
Application Application Application
x86 Environment
Physical Network
Network Virtualization Platform
Requirement: IP Transport
Virtual
Network
Virtual
Network
Virtual
Network
Workload Workload Workload
L2, L3, L4-7 Network Services
Decoupled
Tying It All Together: Network Virtualization
13
Future Directions
Performance
• Wildcards in the kernel to reduce flow setups
• Userspace multi-threading
• General optimization
Increased Integration
• Tunnel upstreaming
• Further native support from both hypervisor and network management tools
• Additional use of Linux components, particularly for stateful features
Additional Features
• Production-ready support for OpenFlow 1.1+
• Additional protocols and networking functionality
• More programmability and controller assistance
Contribute: http://openvswitch.org
14
Q & A

Contenu connexe

Similaire à OVS-LinuxCon 2013.pdf

Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...Nagios
 
Network Virtualization: Delivering on the Promises of SDN
Network Virtualization: Delivering on the Promises of SDNNetwork Virtualization: Delivering on the Promises of SDN
Network Virtualization: Delivering on the Promises of SDNOpen Networking Summits
 
OpenFlow as a Service from research institute
OpenFlow as a Service from research instituteOpenFlow as a Service from research institute
OpenFlow as a Service from research instituteVijayaguru Jayaram
 
Virt july-2013-meetup
Virt july-2013-meetupVirt july-2013-meetup
Virt july-2013-meetupnvirters
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorialopenflow
 
VMworld 2013: Advanced VMware NSX Architecture
VMworld 2013: Advanced VMware NSX Architecture VMworld 2013: Advanced VMware NSX Architecture
VMworld 2013: Advanced VMware NSX Architecture VMworld
 
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...OpenStack Korea Community
 
Open VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needsOpen VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needsrranjithrajaram
 
Software Defined Networks
Software Defined NetworksSoftware Defined Networks
Software Defined NetworksShreeya Shah
 
L4-L7 Application Services with Avi Networks
L4-L7 Application Services with Avi NetworksL4-L7 Application Services with Avi Networks
L4-L7 Application Services with Avi NetworksAvi Networks
 
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 AccelerationNetronome
 
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 IntegrationLinaro
 
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...Radisys Corporation
 
OpenStack Networking
OpenStack NetworkingOpenStack Networking
OpenStack NetworkingIlya Shakhat
 

Similaire à OVS-LinuxCon 2013.pdf (20)

Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
 
Ons 2013-nv
Ons 2013-nvOns 2013-nv
Ons 2013-nv
 
Network Virtualization: Delivering on the Promises of SDN
Network Virtualization: Delivering on the Promises of SDNNetwork Virtualization: Delivering on the Promises of SDN
Network Virtualization: Delivering on the Promises of SDN
 
BuildingSDNmanageableswitch.pdf
BuildingSDNmanageableswitch.pdfBuildingSDNmanageableswitch.pdf
BuildingSDNmanageableswitch.pdf
 
OpenFlow Tutorial
OpenFlow TutorialOpenFlow Tutorial
OpenFlow Tutorial
 
OpenFlow as a Service from research institute
OpenFlow as a Service from research instituteOpenFlow as a Service from research institute
OpenFlow as a Service from research institute
 
Demystifying openvswitch
Demystifying openvswitchDemystifying openvswitch
Demystifying openvswitch
 
Virt july-2013-meetup
Virt july-2013-meetupVirt july-2013-meetup
Virt july-2013-meetup
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
VMworld 2013: Advanced VMware NSX Architecture
VMworld 2013: Advanced VMware NSX Architecture VMworld 2013: Advanced VMware NSX Architecture
VMworld 2013: Advanced VMware NSX Architecture
 
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
 
Open VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needsOpen VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needs
 
10 sdn-vir-6up
10 sdn-vir-6up10 sdn-vir-6up
10 sdn-vir-6up
 
Software Defined Networks
Software Defined NetworksSoftware Defined Networks
Software Defined Networks
 
CloudStack and SDN
CloudStack and SDNCloudStack and SDN
CloudStack and SDN
 
L4-L7 Application Services with Avi Networks
L4-L7 Application Services with Avi NetworksL4-L7 Application Services with Avi Networks
L4-L7 Application Services with Avi Networks
 
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
 
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
 
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
 
OpenStack Networking
OpenStack NetworkingOpenStack Networking
OpenStack Networking
 

Dernier

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Dernier (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

OVS-LinuxCon 2013.pdf

  • 1. © 2009 VMware Inc. All rights reserved Programmable Networking with Open vSwitch Jesse Gross LinuxCon September, 2013
  • 2. 2 Background: The Evolution of Data Centers Virtualization has created data center workloads that are large, rapidly changing, and location independent. § Enabled by a layer of software indirection between logical unit (virtual machine) and underlying hardware (physical machine). § The virtualization layer exposes a programmable API to what previously required a human to reconfigure. § Current networking has many of the same problems as traditional servers, limiting the benefits of virtualization. Networking needs to be programmable
  • 3. 3 What is Open vSwitch? Open vSwitch is an open source switching stack for virtualization. The most powerful piece of real estate in a network is the edge and the hypervisor is the new edge. Two ways to view OVS: • Gaining back visibility and control that usually comes from the features of a hardware switch. • An opportunity to exploit the flexibility that comes from software and virtualization. Open vSwitch allows you to write a program to control your network.
  • 5. 5 openvswitch.ko ovsdb-server User Kernel Control & Management Cluster ovs-vswitchd Management Protocol (6632/TCP) OpenFlow (6633/TCP) Netlink Off-box Open vSwitch Architecture
  • 6. 6 Basic Features Open vSwitch brings many features standard in hardware devices to virtualized environments: • VLANs • LACP and other bonding modes • STP • QoS shaping and policing • ACLs over a range of L2-L4 protocols • NetFlow, sFlow, IPFIX, mirroring • A variety of tunneling protocols Plus remote programmability and management features: • OpenFlow 1.0 and experimental support for versions 1.1-1.3. • All features and status remotely configurable and viewable. • Many extensions for supporting high availability control clusters.
  • 7. 7 Advanced Capabilities Programmability requires primitives more similar to a CPU than a network ASIC. Over time, the flow table in Open vSwitch has slowly changed from a list of policies to a nearly general purpose processing pipeline. Examples: § Resubmit: Move between multiple independent flow tables, similar to subroutines. § Registers: Storage for intermediate metadata, including manipulation functions such as a stack. § Learning: Dynamically generate new flows based on packet traffic patterns. § Hashing and Perform actions based on deterministic or probabilistic Sampling: properties of the traffic.
  • 8. 8 A Simple Switch Pipeline Admission Control Input VLAN Processing Learn Source MAC/VLAN Lookup Output Port Output VLAN Processing Open vSwitch makes it possible to emulate a traditional pipeline or extend for new models. 1. Flows to drop illegal packets (i.e. reserved addresses) and resubmit valid packets to the next stage. 2. Classify packets on ingress port and add VLAN tag. Resubmit to next stage. 3. Learning action to generate new flows based on source MAC, VLAN, and input port. Fields populate a template and placed in next stage. Resubmit. 4. Match flows generated by learning or use low priority flood flow. Resubmit. 5. Strip VLAN tag for access ports and output.
  • 9. 9 Performance How does programmability impact forwarding rates? 0.1 1 10 100 1000 10000 0.001 0.01 0.1 1 10 100 1000 10000 Native OVS Bandwidth (Mbps) Message Size (KB)
  • 10. 10 Performance Many aspects of performance: Established Flows: New flows are sent to userspace and exact match entries are installed in the kernel. All classification happens in userspace, out of the fast path. Most additional features do not affect performance. Connection Setup: Most challenging case for Open vSwitch. Optimizations are currently under development to both reduce the number of unique flows and increase the speed of setup. Many Sustained Connections: A large number of flows does not directly affect throughput but the overhead of maintaining statistics increases. Heuristics are used to balance the rate of updates with overhead.
  • 11. 11 Integration Points: libvirt and OpenStack Quantum Open vSwitch Plugin Nova Swift OVS + libvirt Hypervisors Two main touch points between Open vSwitch and the rest of the environment: libvirt (0.9.11): VM lifecycle on hypervisors – attach ports to bridges. OpenStack/Quantum (Folsom): Manage many Open vSwitch instances to create network abstractions.
  • 12. 12 Physical Compute & Memory Server Hypervisor Requirement: x86 Virtual Machine Virtual Machine Virtual Machine Application Application Application x86 Environment Physical Network Network Virtualization Platform Requirement: IP Transport Virtual Network Virtual Network Virtual Network Workload Workload Workload L2, L3, L4-7 Network Services Decoupled Tying It All Together: Network Virtualization
  • 13. 13 Future Directions Performance • Wildcards in the kernel to reduce flow setups • Userspace multi-threading • General optimization Increased Integration • Tunnel upstreaming • Further native support from both hypervisor and network management tools • Additional use of Linux components, particularly for stateful features Additional Features • Production-ready support for OpenFlow 1.1+ • Additional protocols and networking functionality • More programmability and controller assistance Contribute: http://openvswitch.org