ENGINEERING WORKSHOP Compute Engineering Workshop P4: specifying data planes Mihai Budiu San Jose, March 11, 2015.

Slides:



Advertisements
Similar presentations
IP Router Architectures. Outline Basic IP Router Functionalities IP Router Architectures.
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
Evolution Series Edge Release R3A00 Bridging Societies.
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.
Introduction to IPv6 Presented by: Minal Mishra. Agenda IP Network Addressing IP Network Addressing Classful IP addressing Classful IP addressing Techniques.
Introduction into VXLAN Russian IPv6 day June 6 th, 2012 Frank Laforsch Systems Engineer, EMEA
CS 457 – Lecture 16 Global Internet - BGP Spring 2012.
OpenFlow overview Joint Techs Baton Rouge. Classic Ethernet Originally a true broadcast medium Each end-system network interface card (NIC) received every.
OpenFlow Switch Specification-v part1 Speaker: Hsuan-Ling Weng Date: 2014/12/02.
Introducing MPLS Labels and Label Stacks
ECE 526 – Network Processing Systems Design Packet Processing II: algorithms and data structures Chapter 5: D. E. Comer.
Chapter 9 Classification And Forwarding. Outline.
Chapter 4 Queuing, Datagrams, and Addressing
© 2006 Cisco Systems, Inc. All rights reserved. MPLS v2.2—1-1 MPLS Concepts Introducing Basic MPLS Concepts.
Paper Review Building a Robust Software-based Router Using Network Processors.
Jon Turner, John DeHart, Fred Kuhns Computer Science & Engineering Washington University Wide Area OpenFlow Demonstration.
IP Forwarding.
Router Architecture Overview
Two Dimensional IP Routing Architecture draft-xu-rtgwg-twod-ip-routing-00 Mingwei Xu, Jianping Wu, Shu Yang CERNET Dan Wang Hong Kong Polytechnic University.
EECB 473 DATA NETWORK ARCHITECTURE AND ELECTRONICS PREPARED BY JEHANA ERMY JAMALUDDIN Basic Packet Processing: Algorithms and Data Structures.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
Michael Wilson Block Design Review: Line Card Key Extract (Ingress and Egress)
MPLS Concepts Introducing Basic MPLS Concepts. Outline Overview What Are the Foundations of Traditional IP Routing? Basic MPLS Features Benefits of MPLS.
Arbitrary Packet Matching in Openflow
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.
OpenFlow MPLS and the Open Source Label Switched Router Department of Computer Science and Information Engineering, National Cheng Kung University, Tainan,
Introduction to Mininet, Open vSwitch, and POX
David M. Zar Block Design Review: PlanetLab Line Card Header Format.
Why Fabric? 1 Complicated technology/vendor/device specific provisioning for networks, especially heterogeneous network DC Network – STP, TRILL, SPB, VXLAN,
PISCES: A Programmable, Protocol-Independent Software Switch
Multi-protocol Label Switching (MPLS) RFC 3031 MPLS provides new capabilities: QoS support Traffic engineering VPN Multiprotocol support.
Network Layer session 1 TELE3118: Network Technologies Week 5: Network Layer Forwarding, Features Some slides have been taken from: r Computer.
Graciela Perera Department of Computer Science and Information Systems Slide 1 of 18 INTRODUCTION NETWORKING CONCEPTS AND ADMINISTRATION CSIS 3723 Graciela.
P4: Programming Protocol-Independent Packet Processors
COS 561: Advanced Computer Networks
P4: specifying data planes
Programmable switches
Chapter 4 Network Layer Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 CPSC 335 Data Communication.
Some slides have been adapted from:
The architecture of the P416 compiler
P4 (Programming Protocol-independent Packet Processors)
Data Center Networks and Fast and Programmable Switching Technologies
Network Data Plane Part 2
April 28, 2017 SUMIT MAHESHWARI INES UGALDE
SDN Overview for UCAR IT meeting 19-March-2014
Design of a Diversified Router: TCAM Usage
Design of a Diversified Router: Packet Formats
Programmable Networks
DC.p4: Programming the forwarding plane of a datacenter switch
Some slides have been taken from:
Layered Protocol Wrappers Design and Interface review
Design of a Diversified Router: November 2006 Demonstration Plans
Code Review for IPv4 Metarouter Header Format
Code Review for IPv4 Metarouter Header Format
Debugging P4 Programs with Vera
Reprogrammable packet processing pipeline
P4FPGA : A Rapid Prototyping Framework for P4
Programmable Networks
Chapter 4 Network Layer Computer Networking: A Top Down Approach 5th edition. Jim Kurose, Keith Ross Addison-Wesley, April Network Layer.
Network Layer: Control/data plane, addressing, routers
Programmable Switches
Project proposal: Questions to answer
Packet processing with P4 and eBPF
P4C-XDP: Programming the Linux Kernel Forwarding Plane using P4
Design principles for packet parsers
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

ENGINEERING WORKSHOP Compute Engineering Workshop P4: specifying data planes Mihai Budiu San Jose, March 11, 2015

ENGINEERING WORKSHOP P4 Language Consortium “Open for participation by any individual or corporation” No membership fees. Language spec v1.0.2 Coming soon (3/2015): FOSS release of a reference P4 implementation

ENGINEERING WORKSHOP What do we want to achieve? Switch Your own protocols Standard protocols Datacenter Currently most useful if you have your own network playground

ENGINEERING WORKSHOP Benefits Implement (new) protocols VxLAN: 175 lines SAI: 543 lines Low overhead (high speed) Flexible forwarding policies Improved signaling, monitoring, and troubleshooting Change functionality with software upgrades Use only what you need

ENGINEERING WORKSHOP P4 Scope Control plane Data plane Control traffic Packets Table mgmt. Traditional switch Control plane Data plane P4 Program P4-defined switch P4 table mgmt.

ENGINEERING WORKSHOP Q: Which data plane? A: Any data plane! Control plane Data plane Programmable switches FPGA switches Programmable NICs Software switches You name it…

ENGINEERING WORKSHOP Data plane programmability P4 Programmable blocks Fixed function

ENGINEERING WORKSHOP How does it work? Programmable parser Packet (byte[]) Headers ethvlanipv4 Programmable match-action units Metadata eth mtag ipv4 Programmable reassembly Packet Payload errbcast port Queuing eth mtag ipv4 Headers

ENGINEERING WORKSHOP P4 language Programmable parser Programmable match-action units Programmable reassembly State-machine; bitfield extraction Table lookup and update; bitfield manipulation; control flow Bitfield assembly No: memory (pointers), loops, recursion, floating point

ENGINEERING WORKSHOP Parsing = State machines header_type ethernet_t { fields { dstAddr : 48; srcAddr : 48; etherType : 16; } parser parse_ethernet { extract(ethernet); return select(latest.etherType) { 0x8100 : parse_vlan; 0x800 : parse_ipv4; 0x86DD : parse_ipv6; } TCP New IPv4 IPv6 VLAN Eth

ENGINEERING WORKSHOP Match table ipv4_lpm { reads { ipv4.dstAddr : lpm; } actions { set_next_hop; drop; } dstAddraction 0.*drop *set_next_hop 224.*drop *drop *set_next_hop Lookup key

ENGINEERING WORKSHOP Actions action set_nhop(nhop_ipv4_addr, port) { modify_field(metadata.nhop_ipv4_addr, nhop_ipv4_addr); modify_field(standard_metadata.egress_port, port); add_to_field(ipv4.ttl, -1); } nhop_ipv4_addrport dstAddraction 0.*drop *set_next_hop 224.*drop *drop *set_next_hop

ENGINEERING WORKSHOP Control-Flow control ingress { apply(port); if (valid(vlan_tag[0])) { apply(port_vlan); } apply (bridge_domain); if (valid(mpls_bos)) { apply(mpls_label); } retrieve_tunnel_vni(); if (valid(vxlan) or valid(genv) or valid(nvgre)) { apply(dest_vtep); apply(src_vtep); } M/A

ENGINEERING WORKSHOP Reassembly Driven by header types add_header(ipv6); remove_header(vlan);

ENGINEERING WORKSHOP Table contents management Control plane Data plane Manage tables contents (Tied to P4 program)

ENGINEERING WORKSHOP P4 Summary Simple language Parsing, bit-field manipulation, table lookup, control flow, packet reassembly Efficient execution (high speed switching) Simple cost model Abstract resources Portable Expressive: New protocols, forwarding policies, monitoring and instrumentation

ENGINEERING WORKSHOP Control plane Data plane The P4 Programming- Language Interface