SlideShare a Scribd company logo
1©2017 Open-NFP
OpenContrail, Real Speed: Offloading vRouter
Chris Telfer, Distinguished Engineer, Netronome
Ted Drapas, Sr Director Software Engineering, Netronome
2©2017 Open-NFP
Agenda
▪ Introduction to OpenContrail & OpenContrail vRouter
▪ NFP Acceleration Strategy
▪ Software Architecture
▪ Results and Conclusions
▪ Questions
3©2017 Open-NFP
Introduction to OpenContrail and
vRouter
OpenContrail, Real Speed: Offloading vRouter
4©2017 Open-NFP
What is Contrail?
Copyright and Courtesy of our partners Juniper Networks
5©2017 Open-NFP
What is Contrail?
OpenContrail consists of two main components
▪ OpenContrail Controller - Software Defined Networking (SDN) controller
that is responsible for providing the management, control, and analytics
functions of the virtual network
▪ OpenContrail vRouter - Programmable (by controller) datapath for
managing data center networks
6©2017 Open-NFP
What is vRouter?
vRouter is the programmable datapath of OpenContrail
▪ Connects to an underlay network and manages overlay networks
▪ Similar in purpose to OVS, but designed specifically for datacenters
• Assumes / optimizes the use of point-to-point tunnels over the underlay
• UDP/MPLS (L2/L3), GRE/MPLS (L2/L3), VXLAN (L2 only)
▪ Is a “distributed device”
• Acts as an L2 switch or L3 router on the overlay
• Software sees one device, but it is spread across all compute nodes
• Runs in the hypervisor
▪ Has both a kernel module and DPDK implementation
7©2017 Open-NFP
vRouter in a Compute Node
8©2017 Open-NFP
Problem Statement
Why the need for the NFP?
…..performance & overhead…..
▪ vRouter evolution without NFP
• kernel vRouter - pkt delivery to VMs via kernel TAP interfaces - slow
• ….so go to user space ….DPDK vRouter - significantly improves PPS
compared to kernel vRouter, but at a significant price
• DPDK vRouter achieves ~1.5 Mpps per core
▪ For the vRouter datapath to meet the needs of high-performance
VNFs on compute nodes it must use significant CPU resources
▪ These resources therefore are not available for the VMs running on
the compute node
9©2017 Open-NFP
Problem Solution
▪ Incorporating the NFP to offload the vRouter datapath (or any similar
data path) on the host allows recovery of CPU resources
▪ Direct packet delivery from NFP into VMs can achieve higher
performance than host-only software even with many dedicated
cores
10©2017 Open-NFP
NFP Acceleration Strategy
OpenContrail, Real Speed: Offloading vRouter
11©2017 Open-NFP
Acceleration Requirements
Two key goals: performance and transparency
▪ Main codebase should function regardless of acceleration
▪ End user ideally only sees a perf boost
Key Idea: NFP is an "ultra fastpath" parallel to vRouter
▪ BUT: NFP can't offload the full contrail logic
▪ Falls back to vRouter datapath if it can't handle a packet
12©2017 Open-NFP
Review: Compute Node
13©2017 Open-NFP
Integration Points
Our solution touches the vRouter codebase at 3 points:
1. Hardware offload API in the vRouter datapath
○ Intercepts and mirrors configuration changes to the NFP
○ Proxies stats requests to add in NFP counters
2. Representative Interfaces (RIs) in the Linux kernel
○ “Fake” netdevs that map to physical and virtual interfaces
○ Xmit on an RI sends the packet out the real interface via NFP
○ Arriving packet on an RI looks like it came from the
corresponding interface
3. Port control changes for interface allocation/teardown
○ This was a script run by OpenStack but provided by JNPR
14©2017 Open-NFP
NFP Acceleration Approach
15©2017 Open-NFP
Day in the Life of a Packet
16©2017 Open-NFP
Day in the Life of a Packet (cont)
17©2017 Open-NFP
Software Architecture
OpenContrail, Real Speed: Offloading vRouter
18©2017 Open-NFP
Offload Module
19©2017 Open-NFP
Kernel Module Design
nfp-vrouter.ko module registers with vRouter offload API
Separate kernel thread to perform trie building ops
▪ Expensive operation: can’t hold up packets
▪ Fortunately also infrequent
▪ Accumulate and double-buffer routing tables
Stats manager updates vRouter and kernel statistics
Control channel carries both control messages and packets
▪ Both encapsulated in a common format
▪ RI packets muxed/demuxed over the control channel
20©2017 Open-NFP
NFP Firmware
21©2017 Open-NFP
Firmware Design
Main ME islands have a pool of run-to-completion workers
Workers access tables primarily read-only
▪ except for per-flow statistics
vRouter's update rate is less than 100,000 ops/sec
▪ Can do this on 1 or 2 NFP cores
▪ Preserves code store in the workers
Control messages demuxed to management subsystems
Several MEs to periodically poll, and push statistics
Separate mirroring MEs for copying, fragmentation and xmit
22©2017 Open-NFP
Results and Lessons Learned
OpenContrail, Real Speed: Offloading vRouter
23©2017 Open-NFP
Performance Results
Demonstrated moving over 20 Mpps w/ imix
distribution no-drop through VNFs utilizing 1
(mostly idle) core*
Sustained >27 Mpps in DPDK pktgen tests
Upcoming webinar will discuss methodology
*SR-IOV delivery to a service chain configured VNF
24©2017 Open-NFP
Conclusions
Programmable hardware enables transparent offload
▪ The impact to the dataplane is mirroring state updates to the NFP
▪ One can easily abstract this to be hardware-neutral
Acceleration is feasible even without offloading 100% of the
dataplane
▪ Sophisticated fast paths follow the 90/10 rule as with most software:
90% of the work is done in 10% of the code
▪ With transparent offload you can pick and choose what gets
offloaded and what falls back to the main datapath
25©2017 Open-NFP
Future Work
We plan to continue on this work as OpenContrail evolves
as well
▪ Support full 4.0 Contrail feature set and OpenStack Newton
▪ Add QoS offload in the NFP
▪ Support for multi-card servers
▪ Accelerate container based SDN deployments
▪ Accelerate VMWare deployments
▪ Add support for custom VNFs offloaded within the dataplane
▪ Offload flow classification within the NFP
26©2017 Open-NFP
Questions
OpenContrail, Real Speed: Offloading vRouter

More Related Content

PDF
Accelerating Networked Applications with Flexible Packet Processing
PDF
Measuring a 25 and 40Gb/s Data Plane
PDF
Transparent eBPF Offload: Playing Nice with the Linux Kernel
PDF
Protecting the Privacy of the Network – Using P4 to Prototype and Extend Netw...
PDF
Network Measurement with P4 and C on Netronome Agilio
PDF
Stacks and Layers: Integrating P4, C, OVS and OpenStack
PDF
P4-based VNF and Micro-VNF Chaining for Servers With Intelligent Server Adapters
PDF
Consensus as a Network Service
Accelerating Networked Applications with Flexible Packet Processing
Measuring a 25 and 40Gb/s Data Plane
Transparent eBPF Offload: Playing Nice with the Linux Kernel
Protecting the Privacy of the Network – Using P4 to Prototype and Extend Netw...
Network Measurement with P4 and C on Netronome Agilio
Stacks and Layers: Integrating P4, C, OVS and OpenStack
P4-based VNF and Micro-VNF Chaining for Servers With Intelligent Server Adapters
Consensus as a Network Service

What's hot (20)

PDF
Whitebox Switches Deployment Experience
PDF
Data Plane and VNF Acceleration Mini Summit
PDF
P4 for Custom Identification, Flow Tagging, Monitoring and Control
PDF
TC Flower Offload
PDF
LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...
PDF
LinuxCon 2015 Stateful NAT with OVS
PDF
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
PDF
Cilium - Fast IPv6 Container Networking with BPF and XDP
PPTX
Design, Verification and Emulation of an Island-Based Network Flow Processor
PDF
DPDK Support for New HW Offloads
PDF
TRex Traffic Generator - Hanoch Haim
PDF
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
PDF
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
PDF
OVS Hardware Offload with TC Flower
PDF
Comprehensive XDP Off‌load-handling the Edge Cases
PDF
Using Network Acceleration for an Optimized Edge Cloud Server Architecture
PDF
Layer 3 Tunnel Support for Open vSwitch
PDF
Accelerate Service Function Chaining Vertical Solution with DPDK
PDF
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
PPTX
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Whitebox Switches Deployment Experience
Data Plane and VNF Acceleration Mini Summit
P4 for Custom Identification, Flow Tagging, Monitoring and Control
TC Flower Offload
LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...
LinuxCon 2015 Stateful NAT with OVS
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
Cilium - Fast IPv6 Container Networking with BPF and XDP
Design, Verification and Emulation of an Island-Based Network Flow Processor
DPDK Support for New HW Offloads
TRex Traffic Generator - Hanoch Haim
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
OVS Hardware Offload with TC Flower
Comprehensive XDP Off‌load-handling the Edge Cases
Using Network Acceleration for an Optimized Edge Cloud Server Architecture
Layer 3 Tunnel Support for Open vSwitch
Accelerate Service Function Chaining Vertical Solution with DPDK
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Ad

Viewers also liked (20)

PDF
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
PDF
Nokia Web-Runtime Presentation (Phong Vu)
PPTX
ISCA final presentation - Runtime
PPTX
Intel and Amazon - Powering your innovation together.
PPTX
Microsoft Really Loves Linux – a Virtual Love Story
PDF
Valgrind overview: runtime memory checker and a bit more aka использование #v...
PDF
Using GPUs to Achieve Massive Parallelism in Java 8
PDF
Markus Tessmann, InnoGames
PPTX
Java garbage collection & GC friendly coding
PDF
Cilium - BPF & XDP for containers
PDF
20170329 container technight-第一回勉強会
PDF
Serverless Application - Who the heck needs a Server?
PDF
Containers - Portable, repeatable user-oriented application delivery. Build, ...
PPTX
Serverless Architecture
PDF
Cilium - Container Networking with BPF & XDP
PDF
Accelerating Hadoop, Spark, and Memcached with HPC Technologies
PDF
BPF: Next Generation of Programmable Datapath
PDF
Introduction to OpenCV 3.x (with Java)
PPTX
Google ART (Android RunTime)
PDF
SOC Processors Used in SOC
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Nokia Web-Runtime Presentation (Phong Vu)
ISCA final presentation - Runtime
Intel and Amazon - Powering your innovation together.
Microsoft Really Loves Linux – a Virtual Love Story
Valgrind overview: runtime memory checker and a bit more aka использование #v...
Using GPUs to Achieve Massive Parallelism in Java 8
Markus Tessmann, InnoGames
Java garbage collection & GC friendly coding
Cilium - BPF & XDP for containers
20170329 container technight-第一回勉強会
Serverless Application - Who the heck needs a Server?
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Serverless Architecture
Cilium - Container Networking with BPF & XDP
Accelerating Hadoop, Spark, and Memcached with HPC Technologies
BPF: Next Generation of Programmable Datapath
Introduction to OpenCV 3.x (with Java)
Google ART (Android RunTime)
SOC Processors Used in SOC
Ad

Similar to OpenContrail, Real Speed: Offloading vRouter (20)

PDF
SDN & NFV Introduction - Open Source Data Center Networking
PDF
Network Virtualization & Software-defined Networking
PDF
Host Data Plane Acceleration: SmartNIC Deployment Models
PDF
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summit
PPSX
FD.IO Vector Packet Processing
PPSX
FD.io Vector Packet Processing (VPP)
PDF
Open vSwitch Implementation Options
PDF
Row #9: An architecture overview of APNIC's RDAP deployment to the cloud
PDF
Understanding network and service virtualization
PDF
OpenStack Paris Meetup on Nfv 2014/10/07
PPTX
Monitoring federation open stack infrastructure
PPTX
P4+ONOS SRv6 tutorial.pptx
PDF
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
PDF
The Challenges of SDN/OpenFlow in an Operational and Large-scale Network
PDF
DPDK Summit 2015 - HP - Al Sanders
PPTX
High Performance Networking Leveraging the DPDK and Growing Community
PDF
Using Kubernetes to make cellular data plans cheaper for 50M users
ODP
What's new in Neutron Juno
PDF
The Open vSwitch and OVN Projects
PDF
Asterisk as a Virtual Network Function Part 1
SDN & NFV Introduction - Open Source Data Center Networking
Network Virtualization & Software-defined Networking
Host Data Plane Acceleration: SmartNIC Deployment Models
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summit
FD.IO Vector Packet Processing
FD.io Vector Packet Processing (VPP)
Open vSwitch Implementation Options
Row #9: An architecture overview of APNIC's RDAP deployment to the cloud
Understanding network and service virtualization
OpenStack Paris Meetup on Nfv 2014/10/07
Monitoring federation open stack infrastructure
P4+ONOS SRv6 tutorial.pptx
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
The Challenges of SDN/OpenFlow in an Operational and Large-scale Network
DPDK Summit 2015 - HP - Al Sanders
High Performance Networking Leveraging the DPDK and Growing Community
Using Kubernetes to make cellular data plans cheaper for 50M users
What's new in Neutron Juno
The Open vSwitch and OVN Projects
Asterisk as a Virtual Network Function Part 1

Recently uploaded (20)

PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
Cell Structure & Organelles in detailed.
PDF
RMMM.pdf make it easy to upload and study
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
Pharma ospi slides which help in ospi learning
PDF
Business Ethics Teaching Materials for college
PDF
Classroom Observation Tools for Teachers
PDF
Insiders guide to clinical Medicine.pdf
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Institutional Correction lecture only . . .
PDF
O7-L3 Supply Chain Operations - ICLT Program
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
master seminar digital applications in india
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
Week 4 Term 3 Study Techniques revisited.pptx
Abdominal Access Techniques with Prof. Dr. R K Mishra
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPH.pptx obstetrics and gynecology in nursing
Cell Structure & Organelles in detailed.
RMMM.pdf make it easy to upload and study
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Pharma ospi slides which help in ospi learning
Business Ethics Teaching Materials for college
Classroom Observation Tools for Teachers
Insiders guide to clinical Medicine.pdf
Supply Chain Operations Speaking Notes -ICLT Program
Institutional Correction lecture only . . .
O7-L3 Supply Chain Operations - ICLT Program
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Module 4: Burden of Disease Tutorial Slides S2 2025
Anesthesia in Laparoscopic Surgery in India
master seminar digital applications in india
STATICS OF THE RIGID BODIES Hibbelers.pdf

OpenContrail, Real Speed: Offloading vRouter

  • 1. 1©2017 Open-NFP OpenContrail, Real Speed: Offloading vRouter Chris Telfer, Distinguished Engineer, Netronome Ted Drapas, Sr Director Software Engineering, Netronome
  • 2. 2©2017 Open-NFP Agenda ▪ Introduction to OpenContrail & OpenContrail vRouter ▪ NFP Acceleration Strategy ▪ Software Architecture ▪ Results and Conclusions ▪ Questions
  • 3. 3©2017 Open-NFP Introduction to OpenContrail and vRouter OpenContrail, Real Speed: Offloading vRouter
  • 4. 4©2017 Open-NFP What is Contrail? Copyright and Courtesy of our partners Juniper Networks
  • 5. 5©2017 Open-NFP What is Contrail? OpenContrail consists of two main components ▪ OpenContrail Controller - Software Defined Networking (SDN) controller that is responsible for providing the management, control, and analytics functions of the virtual network ▪ OpenContrail vRouter - Programmable (by controller) datapath for managing data center networks
  • 6. 6©2017 Open-NFP What is vRouter? vRouter is the programmable datapath of OpenContrail ▪ Connects to an underlay network and manages overlay networks ▪ Similar in purpose to OVS, but designed specifically for datacenters • Assumes / optimizes the use of point-to-point tunnels over the underlay • UDP/MPLS (L2/L3), GRE/MPLS (L2/L3), VXLAN (L2 only) ▪ Is a “distributed device” • Acts as an L2 switch or L3 router on the overlay • Software sees one device, but it is spread across all compute nodes • Runs in the hypervisor ▪ Has both a kernel module and DPDK implementation
  • 8. 8©2017 Open-NFP Problem Statement Why the need for the NFP? …..performance & overhead….. ▪ vRouter evolution without NFP • kernel vRouter - pkt delivery to VMs via kernel TAP interfaces - slow • ….so go to user space ….DPDK vRouter - significantly improves PPS compared to kernel vRouter, but at a significant price • DPDK vRouter achieves ~1.5 Mpps per core ▪ For the vRouter datapath to meet the needs of high-performance VNFs on compute nodes it must use significant CPU resources ▪ These resources therefore are not available for the VMs running on the compute node
  • 9. 9©2017 Open-NFP Problem Solution ▪ Incorporating the NFP to offload the vRouter datapath (or any similar data path) on the host allows recovery of CPU resources ▪ Direct packet delivery from NFP into VMs can achieve higher performance than host-only software even with many dedicated cores
  • 10. 10©2017 Open-NFP NFP Acceleration Strategy OpenContrail, Real Speed: Offloading vRouter
  • 11. 11©2017 Open-NFP Acceleration Requirements Two key goals: performance and transparency ▪ Main codebase should function regardless of acceleration ▪ End user ideally only sees a perf boost Key Idea: NFP is an "ultra fastpath" parallel to vRouter ▪ BUT: NFP can't offload the full contrail logic ▪ Falls back to vRouter datapath if it can't handle a packet
  • 13. 13©2017 Open-NFP Integration Points Our solution touches the vRouter codebase at 3 points: 1. Hardware offload API in the vRouter datapath ○ Intercepts and mirrors configuration changes to the NFP ○ Proxies stats requests to add in NFP counters 2. Representative Interfaces (RIs) in the Linux kernel ○ “Fake” netdevs that map to physical and virtual interfaces ○ Xmit on an RI sends the packet out the real interface via NFP ○ Arriving packet on an RI looks like it came from the corresponding interface 3. Port control changes for interface allocation/teardown ○ This was a script run by OpenStack but provided by JNPR
  • 15. 15©2017 Open-NFP Day in the Life of a Packet
  • 16. 16©2017 Open-NFP Day in the Life of a Packet (cont)
  • 19. 19©2017 Open-NFP Kernel Module Design nfp-vrouter.ko module registers with vRouter offload API Separate kernel thread to perform trie building ops ▪ Expensive operation: can’t hold up packets ▪ Fortunately also infrequent ▪ Accumulate and double-buffer routing tables Stats manager updates vRouter and kernel statistics Control channel carries both control messages and packets ▪ Both encapsulated in a common format ▪ RI packets muxed/demuxed over the control channel
  • 21. 21©2017 Open-NFP Firmware Design Main ME islands have a pool of run-to-completion workers Workers access tables primarily read-only ▪ except for per-flow statistics vRouter's update rate is less than 100,000 ops/sec ▪ Can do this on 1 or 2 NFP cores ▪ Preserves code store in the workers Control messages demuxed to management subsystems Several MEs to periodically poll, and push statistics Separate mirroring MEs for copying, fragmentation and xmit
  • 22. 22©2017 Open-NFP Results and Lessons Learned OpenContrail, Real Speed: Offloading vRouter
  • 23. 23©2017 Open-NFP Performance Results Demonstrated moving over 20 Mpps w/ imix distribution no-drop through VNFs utilizing 1 (mostly idle) core* Sustained >27 Mpps in DPDK pktgen tests Upcoming webinar will discuss methodology *SR-IOV delivery to a service chain configured VNF
  • 24. 24©2017 Open-NFP Conclusions Programmable hardware enables transparent offload ▪ The impact to the dataplane is mirroring state updates to the NFP ▪ One can easily abstract this to be hardware-neutral Acceleration is feasible even without offloading 100% of the dataplane ▪ Sophisticated fast paths follow the 90/10 rule as with most software: 90% of the work is done in 10% of the code ▪ With transparent offload you can pick and choose what gets offloaded and what falls back to the main datapath
  • 25. 25©2017 Open-NFP Future Work We plan to continue on this work as OpenContrail evolves as well ▪ Support full 4.0 Contrail feature set and OpenStack Newton ▪ Add QoS offload in the NFP ▪ Support for multi-card servers ▪ Accelerate container based SDN deployments ▪ Accelerate VMWare deployments ▪ Add support for custom VNFs offloaded within the dataplane ▪ Offload flow classification within the NFP