== Programming the Network Data Plane in P4 == === Webinar Details === * Presented by: Changhoon Kim from Barefoot Networks * Date: Friday April 21st, 2017 * Time: 3:00 - 4:00 p.m. ET To receive information on how to join the webinar: {{{ #!html Click to Register }}} === Abstract === Software-Defined Networking (SDN) has been successful because it lets network owners and operators “program” network behavior. SDN’s programmability, however, is confined to the network control plane today. The forwarding plane is still largely dictated by fixed-function packet-processing hardware. Our goal is to change that, and to allow programmers to define how packets are to be processed all the way down to the wire. This is made possible by a new generation of high-performance forwarding chips. At the high-end, switching chips built with a new machine architecture -- namely PISA (Protocol-Independent Switch Architecture) -- promise multi-Tb/s of packet processing. At the mid- and low-end of the performance spectrum, CPUs, GPUs, FPGAs, and NPUs already offer great flexibility with performance of a few tens to hundreds of Gb/s. In addition to programmable forwarding chips, we also need a high-level language to dictate the forwarding behavior in a target independent fashion. "P4" (www.p4.org) is such a language. In P4, the programmer declares how packets are to be processed, and a compiler generates a configuration for a PISA chip, or a programmable target in general. In this talk, I will first give a quick overview of PISA and explain why it is inevitable; within the next couple of years I expect all switching chips to be programmable, with no performance, power or cost penalty. I will then give a brief primer on the P4 language, showing some example programs for a variety of different networks, demonstrating the power of writing portable and reusable P4 programs. Finally I will introduce a few exciting use cases that data-plane programmability can enable, along with new challenges and problems warranting further study. === Connection Information === Use the following URL to connect from PC, Mac, Linux, iOS or Android:[[BR]] https://zoom.us/j/882171344 [[BR]] Alternatively, use your phone and participate without video: [[BR]] Dial: +1 408 638 0968 (US Toll) or +1 646 558 8656 (US Toll) [[BR]] Meeting ID: 882 171 344 [[BR]] International numbers available: https://zoom.us/zoomconference?m=X-ZWuBaSF9yEg6Sw8sK8Kc6QJZABgcPF [[BR]] ''Zoom is a video conferencing system. Click on the link and follow the instructions to get connected. The first time you use Zoom you will likely need to install a small client application.'' ''Please join the meeting a few minutes before the start time.'' === Equipment Needed === 1. Computer with a good Internet connection and a browser (Firefox or Chrome preferred). 1. Microphone (preferably a headset microphone) or alternatively a telephone. 1. Webcam: Optional but recommended {{{ #!comment === Pre-work === If you wish to run the hands-on demo yourself, please complete the following pre-work: 1. Ensure you can login to portal.geni.net (instructions, step 1 [wiki:GENIExperimenter/Tutorials/NewToolsSetup here]) 1. Join a project. Use the project named OnTimeMeasure-GENI-Webinar unless you have access to another project which you prefer to use. 1. Ensure you have generated and can use a key pair. You must: * have your private key on your machine * know your passphrase * if using Windows, have an SSH client installed and tested. 1. Become familiar with GENI Portal. 1. Register and create an account on the OnTimeMeasure portal at: http://ontime.rnet.missouri.edu [wiki:GENIExperimenter/Tutorials/jacks/GettingStarted_PartI/Procedure This tutorial] will help you complete items 3 and 4 above, and is strongly recommended if you have never used GENI before, or have not used GENI for a while. [attachment:GettingStartedWithGENI-Lib.pdf (pdf)] }}} === Agenda === * Welcome - Ben Newton * Presentation and Demo - Changhoon Kim * Questions * Wrap-up - Ben Newton {{{ #!comment [attachment:GENIWirelessGosain.pdf (pdf)] === Recording === A video recording of the webinar is available [http://www.cs.unc.edu/Research/geni/geniEdu/v07-Lte.html here] }}} {{{ #!comment [http://www.cs.unc.edu/Research/geni/geniWebinars/DeployingNetworkAwareApplicationsInGeni-PrasadCalyam-2016September30.mp4 here] }}}