Experiences with Programmable Dataplanes Ronald van der Pol SURFnet TNC 2016, 12-16 June, Prague (CZ)

Slides:



Advertisements
Similar presentations
A Search Memory Substrate for High Throughput and Low Power Packet Processing Sangyeun Cho, Michel Hanna and Rami Melhem Dept. of Computer Science University.
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.
NetFPGA Project: 4-Port Layer 2/3 Switch Ankur Singla Gene Juknevicius
Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN Pat Bosshart, Glen Gibb, Hun-Seok Kim, George Varghese, Nick.
A Scalable and Reconfigurable Search Memory Substrate for High Throughput Packet Processing Sangyeun Cho and Rami Melhem Dept. of Computer Science University.
OpenFlow overview Joint Techs Baton Rouge. Classic Ethernet Originally a true broadcast medium Each end-system network interface card (NIC) received every.
© 2009 Cisco Systems, Inc. All rights reserved. SWITCH v1.0—4-1 Implementing Inter-VLAN Routing Deploying Multilayer Switching with Cisco Express Forwarding.
An Overview of Software-Defined Network Presenter: Xitao Wen.
OpenFlow Costin Raiciu Using slides from Brandon Heller and Nick McKeown.
Professor Yashar Ganjali Department of Computer Science University of Toronto
An Overview of Software-Defined Network
Building Compilers for Reconfigurable Switches Lavanya Jose, Lisa Yan, Nick McKeown, and George Varghese 1 Research funded by AT&T, Intel, Open Networking.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Professor Yashar Ganjali Department of Computer Science University of Toronto
Jennifer Rexford Princeton University MW 11:00am-12:20pm Programmable Data Planes COS 597E: Software Defined Networking.
How SDN will shape networking
ECE 526 – Network Processing Systems Design Network Processor Architecture and Scalability Chapter 13,14: D. E. Comer.
OpenFlow: Enabling Technology Transfer to Networking Industry Nikhil Handigol Nikhil Handigol Cisco Nerd.
Aditya Akella (Based on slides from Aaron Gember and Nick McKeown)
Software Defined Networking Mike Freedman COS 461: Computer Networks
ORange: Multi Field OpenFlow based Range Classifier Liron Schiff Tel Aviv University Yehuda Afek Tel Aviv University Anat Bremler-Barr Inter Disciplinary.
Networks and Protocols CE Week 7b. Routing an Overview.
Arbitrary Packet Matching in Openflow
Customizing OVS using P4 Muhammad Shahbaz with Sean Choi, Ben Pfaff, Chaitanya Kodeboyina, Changhoon Kim, Nick McKeown, Nick Feamster, and Jen Rexford.
Closed2Open Networking Linux Day 2015 Napoli, October Antonio Pescapè,
P4 Amore! ( Or, How I Learned to Stop Worrying and Love P4) Jennifer Rexford Princeton University.
Research on TCAM-based OpenFlow Switch Author: Fei Long, Zhigang Sun, Ziwen Zhang, Hui Chen, Longgen Liao Conference: 2012 International Conference on.
P. Bosshart, D. Daly, G. Gibb, M. Izzard, N. McKeown, J. Rexford, C. Schlesinger, D. Talayco, A. Vahdat, G. Varghese, D. Walker SIGCOMM CCR, 2014 Presented.
Forwarding Programming in Protocol- Oblivious Instruction Set Author : Jingzhou Yu, Xiaozhong Wang, Jian Song, Yuanming Zheng, Haoyu Song Conference: 2014.
2014 Redefining the Data Center: White-Box Networking Jennifer Casella October 9, 2014 #GHC
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
PISCES: A Programmable, Protocol-Independent Software Switch
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
Nick McKeown (Many thanks to Lisa and Lavanya) CS244 Programmable Switches Forwarding metamorphosis: fast programmable match-action processing … Pat Bosshart,
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
P4: Programming Protocol-Independent Packet Processors
COS 561: Advanced Computer Networks
Chapter 4 Network Layer: The Data Plane
Programmable switches
Overlay Network Engine (ONE)
Jehandad Khan and Peter Athanas Virginia Tech
Muhammad Shahbaz Nick Feamster Jennifer Rexford Sean Choi Nick McKeown
P4 (Programming Protocol-independent Packet Processors)
PISCES: A Programmable, Protocol-Independent Software Switch
Data Center Networks and Fast and Programmable Switching Technologies
NOX: Towards an Operating System for Networks
April 28, 2017 SUMIT MAHESHWARI INES UGALDE
PISCES: A Programmable, Protocol-Independent Software Switch
SDN Overview for UCAR IT meeting 19-March-2014
Software Defined Networking (SDN)
Software Defined Networking
Programmable Networks
Chapter 5 Network Layer: The Control Plane
The Stanford Clean Slate Program
DC.p4: Programming the forwarding plane of a datacenter switch
Software Defined Networking (SDN)
Software Defined Networking
Handout # 18: Software-Defined Networking
Azure Accelerated Networking: SmartNICs in the Public Cloud
Implementing an OpenFlow Switch on the NetFPGA platform
P4FPGA : A Rapid Prototyping Framework for P4
Programmable Switches
Project proposal: Questions to answer
Software Defined Networking
Chapter 5 Network Layer: The Control Plane
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

Experiences with Programmable Dataplanes Ronald van der Pol SURFnet TNC 2016, June, Prague (CZ)

Overview Motivation for Programmable Dataplanes OpenFlow and Pipelines Various Network Silicon Table Type Pattterns (TTPs) and P4 Summary TNC 2016, June, Prague (CZ)

Vertically integrated Closed, proprietary Slow innovation Small industry Specialized Operating System Specialized Operating System Specialized Hardware Specialized Hardware App Specialized Applications Specialized Applications Horizontal Open interfaces Rapid innovation Huge industry Microprocessor Open Interface Linux Mac OS Mac OS Windows (OS) Windows (OS) or Open Interface (slide by Nick (slide by Nick McKeown, Stanford University)

Vertically integrated Closed, proprietary Slow innovation App Horizontal Open interfaces Rapid innovation Control Plane Control Plane Control Plane Control Plane Control Plane Control Plane or Open Interface Specialized Control Plane Specialized Control Plane Specialized Hardware Specialized Hardware Specialized Features Specialized Features Merchant Switching Chips Merchant Switching Chips Open Interface (slide by Nick McKeown, Stanford University)

Network Disaggregation Best of breed in hardware and software Open APIs Open Hardware User/operator in control – Not (or less) dependent of vendor roadmaps – Implement and experiment with new protocols

Network Disaggregation Ecosystem TNC 2016, June, Prague (CZ)

OpenFlow OpenFlow gives user/operator direct access to flow forwarding tables OpenFlow provides Match/Action semantics Supported on many hardware switches – Pure OpenFlow switches – Hybrid switches (conventional switch add-on) Many (open source) controller platforms OpenFlow started the network disaggregation efforts TNC 2016, June, Prague (CZ)

SoC ASIC based OpenFlow Switches Many based on Broadcom ASICs (e.g. Trident) Only a small fixed amount of lookup tables – TCAM (wildcard entries, ACLs) – MAC Forwarding Database – L3 longest prefix match table – L3 host routes TNC 2016, June, Prague (CZ)

OpenFlow 1.3 Multiple Tables Prevent flow entry explosion Multi-table pipeline TNC 2016, June, Prague (CZ)

Mapping of Flow Tables TNC 2016, June, Prague (CZ)

Broadcom Trident II There is very little public technical information because of Broadcom’s NDA Several TCAMs, L2, L3, LPM tables Unified Forwarding Table (UFT) memory banks can be allocated to: – L2 entries – ARP entries – L3 LPM entries – Exact match ACL entries TNC 2016, June, Prague (CZ)

Broadcom Trident II UFT BANKSIZE 04K x 420 bits 1 216K x 420 bits K x 420 bits TNC 2016, June, Prague (CZ) } Dedicated L2 MAC (32K x 105 bits) } Shared Entries (256K x 105 bits) } Dedicated L3 host entries (16K x 105 bits)

Trident II UFT Combinations ModeL2L3 hostsLPM 0288K16K0 1224K56K0 2160K88K0 396K120K0 432K16K128K (77K – IPv6) TNC 2016, June, Prague (CZ)

Limitations of SoC ASICs Fixed semantics tables (L2, L3, LPM, TCAM) Fixed size tables (or limited resizing) No recirculation of packets (one pass through pipeline) TNC 2016, June, Prague (CZ)

ASIC/OpenFlow Limitation Examples Limitation of SoC ASICs – OpenDaylight Service Function Chaining (SFC) project configures multiple tables – These end up in 1 TCAM and does not work – Result: generic applications like ODL SFC cannot be used; application needs to be adapted to ASIC Limitation of OpenFlow – Still dependence on SDOs and vendors for new encapsulations/protocols – We want to experiment with Network Services Header (NSH), but no support in OpenFlow TNC 2016, June, Prague (CZ)

Programmable Network Silicon FPGAs (Field Programmable Gate Arrays) + TCAM + DDR – Corsa DP6410 *) Network Processors (NPUs) + TCAM + DDR – NoviFlow NS2128 *) Flow Processor – Netronome NFP-4000 **) Programmable Switch Silicon – Cavium Xpliant **) *) present in SURFnet testbed **) soon in SURFnet testbed TNC 2016, June, Prague (CZ)

Corsa (FPGA/TCAM/DDR3) TNC 2016, June, Prague (CZ)

NoviFlow NS2128 TNC 2016, June, Prague (CZ) Mellanox EZchip NP-5

NoviFlow Pipeline Configuration Set config pipeline – is exact (DDR) or wildcard (TCAM) – Default 28 wildcard + 28 exact tables 4096 rows 40 byte wide TNC 2016, June, Prague (CZ)

Pipeline Abstractions Flexible programmable pipelines need an abstraction to describe them Two popular approaches: – Table Type Patterns (TTP) – OpenFlow pipelines – P4 (Programming Protocol-Independent Packet Processors) Both can be used to – Let the switch advertise its supported pipeline(s) – Tell the switch what pipeline to construct TNC 2016, June, Prague (CZ)

Table Type Patterns (TTPs) A TTP is an abstract model that describes (in JSON syntax) the forwarding behaviour – Description of flow tables – Description of valid flow_mods, group_mods and meter_mods Switch and controller may support multiple TTPs At startup there is a negotiation between switch and controller about which TTP to use TNC 2016, June, Prague (CZ)

P4 Language P4: Programming Protocol-Independent Packet Processors Domain Specific Language for programmable dataplanes P4 program  P4 compiler  target code Target code is loaded on P4 switch Consists of packet parser and lookup tables TNC 2016, June, Prague (CZ)

P4 Switch TNC 2016, June, Prague (CZ)

Example P4 Header Definitions header_type ethernet_t { fields { dstAddr : 48; srcAddr : 48; etherType : 16; } header_type ipv4_t { fields { version : 4; ihl : 4; diffserv : 8; totalLen : 16; identification : 16; flags : 3; fragOffset : 13; ttl : 8; protocol : 8; hdrChecksum : 16; srcAddr : 32; dstAddr: 32; } TNC 2016, June, Prague (CZ)

Example P4 Parser parser start { return parse_ethernet; } parser parse_ethernet { extract(ethernet); return select(latest.etherType) { ETHERTYPE_IPV4 : parse_ipv4; default: ingress; } parser parse_ipv4 { extract(ipv4); return ingress; } TNC 2016, June, Prague (CZ)

P4 Supported Table Types Exact: value == table entry – E.g. IPv4 host route Ternary: value AND mask == table entry – Wildcard LPM: Longest Prefix Match – Special case of ternary (1111… ) Range: low entry <= value <= high entry Valid: table entry = {true, false} – True: header field is valid – False: header field is not valid TNC 2016, June, Prague (CZ)

P4 Supported Checksum Algorithms XOR16 CSUM16 CRC16 CRC32 Programmable_CRC – Arbitrary CRC polynomial TNC 2016, June, Prague (CZ)

Additional P4 Features Counters – Type: bytes or packets – Min-width – Saturating: stop counting; default is wrap Meters Registers Resubmit (original packet + metadata) Recirculate (packet after egress modifications) TNC 2016, June, Prague (CZ)

P4 Control Flow If/else +, *, -, >, &, |, ^ ~, - OR, AND >, >=, ==, <=, <, != TNC 2016, June, Prague (CZ)

Work Flow Write P4 program, typically these source files: – foo.p4 – headers.p4 – parser.p4 Convert P4 program to JSON configuration Load JSON configuration on P4 switch TNC 2016, June, Prague (CZ)

Network Abstraction Layers TNC 2016, June, Prague (CZ)

Summary OpenFlow started the networking disaggregation Many companies have joined the networking disaggregation efforts Many open hardware vendors Several open source network operating systems and related ecosystems Various new programmable network silicon is emerging, TO DO: – fit this silicon in the open NOS ecosystems – work on design of open APIs and network abstractions TNC 2016, June, Prague (CZ)

Thank You TNC 2016, June, Prague (CZ)