Reprogrammable packet processing pipeline

Slides:



Advertisements
Similar presentations
Virtual Machine Queue Architecture Review Ali Dabagh Architect Windows Core Networking Don Stanwyck Sr. Program Manager NDIS Virtualization.
Advertisements

Programming Protocol-Independent Packet Processors
P4 demo: a basic L2/L3 switch in 170 LOC
How to tell your plumbing what to do Protocol Independent Forwarding
P4: specifying data planes
ENGINEERING WORKSHOP Compute Engineering Workshop P4: specifying data planes Mihai Budiu San Jose, March 11, 2015.
Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN Pat Bosshart, Glen Gibb, Hun-Seok Kim, George Varghese, Nick.
Transitioning to IPv6 April 15,2005 Presented By: Richard Moore PBS Enterprise Technology.
1 Internet Protocol Version 6 (IPv6) What the caterpillar calls the end of the world, nature calls a butterfly. - Anonymous.
OpenFlow overview Joint Techs Baton Rouge. Classic Ethernet Originally a true broadcast medium Each end-system network interface card (NIC) received every.
An Overview of Software-Defined Network Presenter: Xitao Wen.
OpenFlow : Enabling Innovation in Campus Networks SIGCOMM 2008 Nick McKeown, Tom Anderson, et el. Stanford University California, USA Presented.
Outlines Backgrounds Goals Implementation Performance Evaluation
1 Network Packet Generator Characterization presentation Supervisor: Mony Orbach Presenting: Eugeney Ryzhyk, Igor Brevdo.
ECE 526 – Network Processing Systems Design IXP XScale and Microengines Chapter 18 & 19: D. E. Comer.
An Overview of Software-Defined Network
An Overview of Software-Defined Network Presenter: Xitao Wen.
Jon Turner, John DeHart, Fred Kuhns Computer Science & Engineering Washington University Wide Area OpenFlow Demonstration.
Fast NetServ Data Path: OpenFlow integration Emanuele Maccherani Visitor PhD Student DIEI - University of Perugia, Italy IRT - Columbia University, USA.
Arbitrary Packet Matching in Openflow
Linux Operations and Administration Chapter Eight Network Communications.
Slide #1 CIT 380: Securing Computer Systems TCP/IP.
Introduction to Mininet, Open vSwitch, and POX
K. Salah1 Security Protocols in the Internet IPSec.
Fd.io is the future Ed Warnicke fd.io Foundation1.
T3: TCP-based High-Performance and Congestion-aware Tunneling Protocol for Cloud Networking Satoshi Ogawa† Kazuki Yamazaki† Ryota Kawashima† Hiroshi Matsuo†
PISCES: A Programmable, Protocol-Independent Software Switch
AVS Brazos : IPv6. Agenda AVS IPv6 background Packet flows TSO/TCO Configuration Demo Troubleshooting tips Appendix.
An open source user space fast path TCP/IP stack and more…
GRE.
Virtual Networking Performance
Honeycomb + fd.io Ed Warnicke. Fast Data Scope Fast Data Scope: IO Hardware/vHardware cores/threads Processing Classify Transform Prioritize Forward Terminate.
COS 561: Advanced Computer Networks
New Approach to OVS Datapath Performance
TLDK overview Konstantin Ananyev 05/08/2016.
Overlay Network Engine (ONE)
Muhammad Shahbaz Nick Feamster Jennifer Rexford Sean Choi Nick McKeown
Programmable Overlays with VPP
P4 (Programming Protocol-independent Packet Processors)
IT443 – Network Security Administration Instructor: Bo Sheng
DPDK API and Virtual Infrastructure
Network Data Plane Part 2
Reference Router on NetFPGA 1G
SDN Overview for UCAR IT meeting 19-March-2014
What’s “Inside” a Router?
Indigo Doyoung Lee Dept. of CSE, POSTECH
The Stanford Clean Slate Program
Network Virtualization
Network base Network base.
Network Core and QoS.
Virtio Keith Wiles July 11, 2016.
Open vSwitch HW offload over DPDK
rte_security: A new crypto-offload framework in DPDK
EVPN a very short introduction
All or Nothing The Challenge of Hardware Offload
Attilla de Groot | Sr. Systems Engineer, HCIE #3494 | Cumulus Networks
An Introduction to Software Defined Networking and OpenFlow
Empowering OVS with eBPF
Top #1 in China Top #3 in the world
Chapter 4 Network Layer Computer Networking: A Top Down Approach 5th edition. Jim Kurose, Keith Ross Addison-Wesley, April Network Layer.
P4C-XDP: Programming the Linux Kernel Forwarding Plane using P4
Reference Router on NetFPGA 1G
NetFPGA - an open network development platform
Review of Internet Protocols Network Layer
How OAM Identified in Overlay Protocols draft-mirsky-rtgwg-oam-identify Greg Mirsky IETF-104 March 2019, Prague.
Internet Protocol version 6 (IPv6)
Network Core and QoS.
An Introduction to Software Defined Networking and OpenFlow
Openstack Summit November 2017
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

Reprogrammable packet processing pipeline __________________________________ December 5, 2018 Debashis Chatterjee

Agenda Intro to Glaciers A network parse graph Need for programmable packet processing pipeline Intel’s reprogrammable parser Parser tools flow Intel’s reprogrammable modifier SDK and SW stack Q&A

Programmable vSwitch Pipeline Mt Kiska product family - Cascade Glacier PCI, SR-IOV 25GbE Ethernet vNIC VF Programmable vSwitch Pipeline DDR4 Memory Controller Cascade Glacier FPGA ARM Programmable vSwitch Offload Open vSwitch and other vSwitches High speed Internal Switch Fabric Millions of flows Connection tracking & other features Embedded CPU Cores vSwitch slow path & NIC management Virtio-net Hardware Offload Supports Existing Linux & DPDK VMs Multiple queues per device Live migration between HW & SW

Packet processing parse graph Packet Parser Packet Filters Packet Modifier Egress Scheduler host wire What packet is this? TCP or UDP or TCP in VXLAN? Table 2 Packet type Header Fields Actions P1 DIP, SIP, DPORT ENCRYPT, ENCAP P3 SIP, DPORT,SPORT ENCRYPT, ENCAP, NAT P7 SIP, DPORT,SPORT , SMAC ENCAP, SAMPLE 1 3 2 5 4 10 9 Ethernet IP VLAN IPv4 IPv6 TCP UDP 6 8 7 12 11 Forward = To VSI, Mirror Crypto = IPsec Tunnel mode, Transport, DTLS Encap = VXLAN, NVGRE, MPLS Update = IP TTL, Checksum, NAT Telemetry= packets, bytes Sample = To PF, remote system Table 1 Packet type Header Fields Actions P1 VLAN, SIP, DPORT VF(4), RATE LIMIT VF(14), RATE LIMIT, SAMPLE P2 VLAN, DIP, DPORT, SPORT DROP, SAMPLE P3 VF(112), MIRROR Packet type = 1->2->6->8->11 = Some number ‘P1’ Packet type = 1->2->6->8->12 = Some number ‘P2’

Need for programmable packet processing pipeline OpenFlow experience A packet classifier uses values of different header fields for state transitions A hardened ASIC implementation of an OpenFlow classifier would have to go through anywhere from a multi-layer change to just a metal fix to accommodate these. Cost of even a metal fix at 14 nm could be hundreds of thousands of dollars CSPs often experiment with pre-RFC protocols Overriding header fields with new interpretations is also not uncommon   Header Fields Version Date OF 1.0 Dec-09 12 fields (Ethernet, TCP/IPv4) OF 1.1 Feb-11 15 fields (MPLS, inter-table metadata) OF 1.2 Dec-11 36 fields (ARP, ICMP, IPv6, etc.) OF 1.3 Jun-12 40 fields OF 1.4 Oct-13 41 fields

Intel’s reprogrammable parser TCP Protocol = 0x6? IPv4 Ethtype = 0x800? UDP hdrOffset cmpFldType cmpFldEn[0] cmdFldOffset[0] cmpFldEn[1] cmdFldOffset[1] CMP_VLAN 1 36 cmpFldIdx cmpFld[0] cmpFldMask[0] cmpFld[1] 0x800(ipv4) 0xFFFF 0x86dd(ipv6) 2 0x806(arp) 3 Protocol = 0x11? Eth IPv6 Ethtype = 0x86DD? @protocol_id("IPV4") @name("parse_ipv4") state parse_ipv4 { packet.extract(hdr.ipv4[0]); transition select(hdr.ipv4[0].protocol) { 8w0x11: parse_udp; 8w0x6: parse_tcp; 8w0x1: parse_icmp; 8w0x2f: parse_gre; default: accept; }

Parser tools flow Cascade Glacier Binary Table Customer P4 source Optional Virtual platform to test and debug P4 to parser binary generator

Intel’s reprogrammable modifier General Designed like a programmable CPU, with opcodes representing actions such as DEC_TTL, ENCAP, DECAP, CKSUM etc A modifier action template has the action to be taken along with associated data Modifier templates are downloaded to modifier memory by a tool similar to parser tool Decap Driven by a ‘template’ provided by the classifier Removes some number of bytes from header Mod Pulls data from DDR4 and small on-die tables Driven by a ‘template’ provided by the classifier Updates some number of bytes in the header Provides checksums, length adjustments for IP/L4 Encap Pulls data from DDR4 & small on-die tables Adds some number of bytes to the header Provides checksums, length adjustments for new IP/L4 Intel Confidential - Presented Under CNDA

Cascade Glacier SDK and SW stack OpenStack CG SDK PF driver Mgmt. driver Firmware binaries Open vSwitch or Custom OpenStack Agent or Custom API library Flow APIs NIC Tools iproute2 ethtool SDK APIs Pipeline reconfigurator Mgmt driver Setup scripts Standard Virtio-net driver Diagnostic tools Linux Sample code