Control and forwarding plane separation on an open source router. Linux Kongress 2010-10-23 in Nürnberg



Similar documents
Open-source routing at 10Gb/s

OpenFlow with Intel Voravit Tanyingyong, Markus Hidell, Peter Sjödin

Network Virtualization Based on Flows

Wireshark in a Multi-Core Environment Using Hardware Acceleration Presenter: Pete Sanders, Napatech Inc. Sharkfest 2009 Stanford University

D1.2 Network Load Balancing

Performance of Software Switching

Network Function Virtualization Packet Processing Performance of Virtualized Platforms with Linux* and Intel Architecture

PE310G4BPi40-T Quad port Copper 10 Gigabit Ethernet PCI Express Bypass Server Intel based

50. DFN Betriebstagung

Software Defined Networking What is it, how does it work, and what is it good for?

The Lagopus SDN Software Switch. 3.1 SDN and OpenFlow. 3. Cloud Computing Technology

Design considerations for efficient network applications with Intel multi-core processor-based systems on Linux*

Intel Ethernet Switch Load Balancing System Design Using Advanced Features in Intel Ethernet Switch Family

Securing Local Area Network with OpenFlow

High-Density Network Flow Monitoring

RouteBricks: A Fast, Software- Based, Distributed IP Router

High Performance Packet Processing

High-performance vswitch of the user, by the user, for the user

A way towards Lower Latency and Jitter

Performance Evaluation of VMXNET3 Virtual Network Device VMware vsphere 4 build

I3: Maximizing Packet Capture Performance. Andrew Brown

OpenFlow and Onix. OpenFlow: Enabling Innovation in Campus Networks. The Problem. We also want. How to run experiments in campus networks?

Cray Gemini Interconnect. Technical University of Munich Parallel Programming Class of SS14 Denys Sobchyshak

Evaluation Report: Emulex OCe GbE and OCe GbE Adapter Comparison with Intel X710 10GbE and XL710 40GbE Adapters

MoonGen. A Scriptable High-Speed Packet Generator Design and Implementation. Paul Emmerich. January 30th, 2016 FOSDEM 2016

Software Defined Networking What is it, how does it work, and what is it good for?

Introduction to Intel Ethernet Flow Director and Memcached Performance

HANIC 100G: Hardware accelerator for 100 Gbps network traffic monitoring

Intel Gigabit ET and EF Multi-Port Server Adapters

Evaluating the Suitability of Server Network Cards for Software Routers

GPU-Based Network Traffic Monitoring & Analysis Tools

Ethernet-based Software Defined Network (SDN) Cloud Computing Research Center for Mobile Applications (CCMA), ITRI 雲 端 運 算 行 動 應 用 研 究 中 心

Software Defined Networking

10GE NIC throughput measurements (Revised: ) S.Esenov

Network Traffic Monitoring and Analysis with GPUs

Chapter 2 Quality of Service (QoS)

OpenFlow Overview. Daniel Turull

How To Get 10Gbe (10Gbem) In Your Data Center

OpenFlow: Enabling Innovation in Campus Networks

SO_REUSEPORT Scaling Techniques for Servers with High Connection Rates. Ying Cai

VXLAN Performance Evaluation on VMware vsphere 5.1

Packet-based Network Traffic Monitoring and Analysis with GPUs

Network Function Virtualization: Virtualized BRAS with Linux* and Intel Architecture

ZEN LOAD BALANCER EE v3.02 DATASHEET The Load Balancing made easy

Vanguard Applications Ware IP and LAN Feature Protocols. Firewall

Autonomous NetFlow Probe

Alexander Paul IBM Certified Advanced Technical Expert (C.A.T.E.) for Power Systems Certified Cisco Systems Instructor CCSI #32044

QoS & Traffic Management

Evaluation of 40 Gigabit Ethernet technology for data servers

Creating a VPN with overlapping subnets

Intel Gigabit ET, ET2, and EF Multi-Port Server Adapters

Sockets vs. RDMA Interface over 10-Gigabit Networks: An In-depth Analysis of the Memory Traffic Bottleneck

MIDeA: A Multi-Parallel Intrusion Detection Architecture

The Bus (PCI and PCI-Express)

Cisco Integrated Services Routers Performance Overview

SUN DUAL PORT 10GBase-T ETHERNET NETWORKING CARDS

Linux NIC and iscsi Performance over 40GbE

Jun (Jim) Xu Principal Engineer, Futurewei Technologies, Inc.

Intel Ethernet Converged Network Adapters X GbE

Firewalls P+S Linux Router & Firewall 2013

Network Traffic Monitoring & Analysis with GPUs

Operating Systems Design 16. Networking: Sockets

Welcome to the Dawn of Open-Source Networking. Linux IP Routers Bob Gilligan

Ethernet Fabric Requirements for FCoE in the Data Center

Knut Omang Ifi/Oracle 19 Oct, 2015

ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy

Names & Addresses. Names & Addresses. Hop-by-Hop Packet Forwarding. Longest-Prefix-Match Forwarding. Longest-Prefix-Match Forwarding

Intel Ethernet Converged Network Adapters XL710 10/40 GbE

Benchmarking Virtual Switches in OPNFV draft-vsperf-bmwg-vswitch-opnfv-00. Maryam Tahhan Al Morton

Where IT perceptions are reality. Test Report. OCe14000 Performance. Featuring Emulex OCe14102 Network Adapters Emulex XE100 Offload Engine

10 Gbit Hardware Packet Filtering Using Commodity Network Adapters. Luca Deri Joseph Gasparakis

Intel Ethernet Converged Network Adapter X540-T2

Intel Ethernet Converged Network Adapter X520-QDA1

C-GEP 100 Monitoring application user manual

Tyche: An efficient Ethernet-based protocol for converged networked storage

NfSen Plugin Supporting The Virtual Network Monitoring

IP videoconferencing solution with ProCurve switches and Tandberg terminals

Oracle Quad 10Gb Ethernet Adapter

Advanced routing scenarios POLICY BASED ROUTING: CONCEPTS AND LINUX IMPLEMENTATION

Software Datapath Acceleration for Stateless Packet Processing

The new frontier of the DATA acquisition using 1 and 10 Gb/s Ethernet links. Filippo Costa on behalf of the ALICE DAQ group

Performance of Host Identity Protocol on Nokia Internet Tablet

Wire-Speed Hardware-Assisted Traffic Filtering with Mainstream Network Adapters

Datacenter Operating Systems

Creating Overlay Networks Using Intel Ethernet Converged Network Adapters

Application Note. Stateful Firewall, IPS or IDS Load- Balancing

Server Bandwidth Scenarios Signposts for 40G/100G Server Connections

Networking Driver Performance and Measurement - e1000 A Case Study

Intel Ethernet Converged Network Adapters X GbE

enetworks TM IP Quality of Service B.1 Overview of IP Prioritization

Introduction to OpenFlow:

Final for ECE374 05/06/13 Solution!!

Technical Note. vsphere Deployment Worksheet on page 2. Express Configuration on page 3. Single VLAN Configuration on page 5

Introduction to SFC91xx ASIC Family

Towards Software Defined Cellular Networks

Transcription:

Control and forwarding plane separation on an open source router Linux Kongress 2010-10-23 in Nürnberg Robert Olsson, Uppsala University Olof Hagsand, KTH Jens Låås, UU Bengt Görden, KTH SUMMARY VERSION

Control-plane separation on a multi-core Control traffic CE (core0) Control Element Incoming traffic FE1(core1) Outgoing traffic Classifier Forwarding traffic FE2(core2)... Forwarding Elements FEN(coreN) Router

Hardware - NIC Intel 10g board Chipset 82599 with SFP+ Open chip specs. Thanks Intel!

Classification in the Intel 82599 The classification in the Intel 82599 consists of several steps, each is programmable. This includes: - RSS (Receiver-side scaling): hashing of headers and load-balancing - N-tuples: explicit packet header matches - Flow-director: implicit matching of individual flows.

Experiment 1: flow separation external source - Bulk forwarding data from source to sink (10Gb/s mixed packet lengths) - Netperf's TCP transactions emulated control data from a separate host - Study latency of TCP transactions Bulk data source router sink TCP transactions host

N-tuple or Flowdirector ethtool K eth0 ntuple on ethtool U eth0 flow type tcp4 src ip 0x0a0a0a01 src ip mask 0xFFFFFFFF dst ip 0 dst ip mask 0 src port 0 src port mask 0 dst port 0 dst port mask 0 vlan 0 vlan mask 0 user def 0 user def mask 0 action 0 ethtool u eth0 N tuple is supported by SUN Niu and Intel ixgbe driver. Actions are: 1) queue 2) drop But we were lazy and patched ixgbe for ssh and BGP to use CPU0

N-tuple or Flowdirector Even more lazy... we found the flow director was implicitly programmed by outgoing flows. So both incoming and outgoing would use the same queue. So if we set affinity for BGP, sshd etc we could avoid the N tuple filters Example: taskset c 0 /usr/bin/sshd Neat...

RSS is still using CPU0 So we both got our selected traffic Plus the bulk traffic from RSS We just want RSS to use other CPU's

Patching RSS Just a one liner... diff git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 1b1419c..08bbd85 100644 a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c @@ 2379,10 +2379,10 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter) mrqc = ixgbe_setup_mrqc(adapter); if (adapter >flags & IXGBE_FLAG_RSS_ENABLED) { /* Fill out redirection table */ for (i = 0, j = 0; i < 128; i++, j++) { + /* Fill out redirection table but skip index 0 */ + for (i = 0, j = 1; i < 128; i++, j++) { if (j == adapter >ring_feature[ring_f_rss].indices) j = 0; + j = 1; /* reta = 4 byte sliding window of * 0x00..(indices 1)(indices 1)00..etc. */ reta = (reta << 8) (j * 0x11);

Patching RSS CPUcore 0 1 2 3 4 5 6 7 Number of packets 0 196830 200860 186922 191866 186876 190106 190412 No traffic to CPU core 0 still RSS gives fairness between other cores

Don't let forwarded packets program the flowdirector A new one-liner patch... @@ 5555,6 +5555,11 @@ static void ixgbe_atr(struct ixgbe_adapter *adapter, struct sk_buff *skb, u32 src_ipv4_addr, dst_ipv4_addr; u8 l4type = 0; + if(!skb >sk) { + /* ignore nonlocal traffic */ + return; + } + /* check if we're UDP or TCP */ if (iph >protocol == IPPROTO_TCP) { th = tcp_hdr(skb);

Flow-director stats/1 fdir_maxlen: 0 fdir_maxhash: 0 fdir_free: 8191 fdir_coll: 0 fdir_match: 195 fdir_miss: 573632813 fdir_ustat_add: 1 fdir_ustat_remove: 0 fdir_fstat_add: 6 fdir_fstat_remove: 0 fdir_maxlen: 0 <--- Bulk forwarded data from RSS <--- Old ssh session ustat fstat user stats failed stats

Transaction latency using flow separation

Experiment 2: Flow separation in-line traffic - Inline control within bulk data (on same incoming interface) - Study latency of TCP transactions TCP transactions Bulk data source router sink

Classifier issues/setup/1 6000 5000 4000 3000 2000 Vanilla With Separation 1000 0 Flow Mix 64 byte

Classifier issues/setup/2 (zoom in) 18 16 14 12 10 8 6 Vanilla With Separation 4 2 0 64 byte

Classifier small packet problem Seems we drop a lot packets before they are classified DCB (Data Center Bridging) has a lot of features to prioritize different type of traffic. But only for IEEE 802.1Q VMDq2 suggested by Peter Waskiewicz Jr at Intel

Experiment 3: Flow separation in-line traffic Investigate hardware limits by transmitting as much as possible from all cores simultaneously. DDR3 DDR3 CPU0 Quad-core QPI CPU1 Quad-core DDR3 DDR3 DDR3 DDR3 QPI QPI PCI-E Gen.2 x16 PCI-E Gen.2 x16 PCI-E Gen.2 x16 IOH Tylersburg QPI IOH Tylersburg PCI-E Gen.2 x16 PCI-E Gen.2 x4 PCI-E Gen.2 x8 ESI More I/O devices

Hi-End Hardware/Latency

pktgen/setup eth0 eth1 eth2 eth3 eth4 eth5 eth6 eth7 eth8 eth9 Interface CPUcore 0 1 2 3 4 5 6 7 12 13 Mem node 0 0 0 0 1 1 1 1 1 1 eth4, eth5 on x4 slot

Setup Memory node 0 CPU0 Quad-core QPI CPU1 Quad-core Memory node1 QPI QPI eth0 eth1 eth2 eth3 IOH Tylersburg QPI IOH Tylersburg eth6 eth7 eth8 eth9 eth4 eth5

TX w. 10 * 10g ports 93Gb/s Optimal

That's all Questions?