Virtual Labs on SDN and P4 Programmable Switches

 
Jorge Crichigno, Elie Kfoury, Jose Gomez, Ali AlSabeh
University of South Carolina
 
V
i
r
t
u
a
l
 
L
a
b
s
 
o
n
 
S
D
N
 
a
n
d
 
P
4
P
r
o
g
r
a
m
m
a
b
l
e
 
S
w
i
t
c
h
e
s
 
2022 Winter ICT Educators Conference
January 6-7, 2021
Online
 
Agenda
 
Motivation
Software-Defined Networking (SDN) motivation
Lab environment
SDN lab series
P4 motivation
P4 lab series
 
 
 
2
 
Motivation
 
Since the explosive growth of the Internet in the 1990s, the networking industry has
been dominated by closed and proprietary hardware and software
There has been a lack of flexibility to design protocols
Standardized requirements cannot be easily removed to enable changes, leading to a 
protocol
ossification
 
 
 
3
 
Traditional (Legacy) Networking
 
The interface between the control plane and data plane has been historically
proprietary
A router is a monolithic unit built and internally accessed by the manufacturer only
There is a vendor dependence: slow product cycles of vendor equipment,
standardization, no room for innovation from network owners
 
4
 
SDN
 
Protocol ossification has been challenged first by SDN
SDN explicitly separates the control and data planes, and implements the control
plane intelligence as a software outside the switches
 
 
5
 
SDN
 
The function of populating the forwarding table is now performed by the controller
The controller is responsible for programming packet-matching and forwarding rules
 
6
 
SDN
 
SDN also provides a framework for a more general way to forward packets
match plus action
” abstraction: match bits in arriving packet header(s) in any layers, then take action
local actions: drop, forward, modify, or send matched packet to controller
Possibility of experimentation and innovation (custom policies, apps can be deployed)
Packets can be forwarded based on other fields, such as TCP port number
 
7
 
Environment: Mininet
 
8
 
Mininet
 
9
 
Mininet is a virtual testbed for developing and testing network tools and protocols
Nodes are sometimes called containers, or more accurately, 
network namespaces
Features
Fast prototyping for new protocols
Simplified testing for complex topologies without the need of buying expensive hardware
It runs real code on Unix/Linux kernels (realistic emulation)
Open source
Containers consume few resources; complex networks can be created (100s or 1,000s of nodes)
 
MiniEdit
 
10
 
To build a topology, we use MiniEdit
MiniEdit is a simple GUI editor for Mininet
Example:
 
Host Configuration
 
11
 
Configure the IP addresses at host h1 and host h2
A host can be configured by holding the right click and selecting properties on the
device
 
Executing Commands on Hosts
 
12
 
Open a terminal on host by holding the right click and selecting 
Terminal
 
SDN Lab Series
 
13
 
SDN Lab Series
 
The labs provide learning experiences on essential SDN topics
Legacy networks, Border Gateway Protocol (BGP)
MPLS and FRR (an open-source router)
SDN fundamentals – controllers, switches
ONOS controller
Open vSwitch (OVS)
Traffic isolation with VXLAN
OpenFlow
Interconnection between SDN and legacy networks
 
OpenFlow Specification
 
14
 
SDN Lab Series
 
The labs provide learning experiences on essential SDN topics
 
 
 
 
 
 
 
 
 
 
 
15
 
Lab 1: 
 
Introduction to Mininet
Lab 2: 
 
Legacy Networks: BGP Example as a distributed system and autonomous forwarding decisions
Lab 3: 
 
Early efforts of SDN: MPLS example of a control plane that establishes semi-static forwarding paths
Lab 4: 
 
Introduction to SDN
Lab 5: 
 
Configuring VXLAN to provide network traffic isolation
Lab 6: 
 
Introduction to OpenFlow
Lab 7: SDN-routing within an SDN network
Lab 8: Interconnection between legacy networks and SDN networks
Lab 9: Configuring Virtual Private LAN Services (VPLS) with SDN networks
Lab 10: Appling Equal-Cost Multi-Path (ECMP) within SDN networks
 
Organization of Lab Manuals
 
 
Each lab starts with a section 
Overview
Objectives
Lab settings: passwords, device names
Roadmap: organization of the lab
 
Section 1
Background information (theory) of the topic being covered (e.g., fundamentals of SDN)
Section 1 is optional (i.e., the reader can skip this section and move to lab directions)
 
Section 2… n
Step-by-step directions
 
 
 
 
 
 
 
 
 
 
 
16
 
Examples
 
 
Legacy networks
 
 
 
 
 
 
 
 
 
 
 
17
 
BGP scenario
 
MPLS scenario
 
 
Examples
 
 
SDN networks
 
 
 
 
 
 
 
 
 
 
 
18
 
Examples
 
 
Interconnection of SDN
 
and legacy networks
 
 
 
 
 
 
 
 
 
 
 
19
 
Overview SDN Exercises
 
 
20
 
SDN Exercises
 
Exercise set
 
 
 
 
 
 
 
 
 
 
 
21
 
Exercise 1: 
 
SDN Network Configuration
Exercise 2: 
 
Configuring VXLAN
Exercise 3: 
 
OpenFlow Protocol Management
Exercise 4: 
 
Incremental Deployment of SDN Networks within Legacy Networks
 
SDN Exercises
 
 
22
 
Configure the SDN network
M
anage the OpenFlow switches
using the ONOS controller
Navigate through the ONOS
terminal to enable applications,
inspect links, devices, flow tables,
etc.
Establish connectivity between the
two hosts
 
SDN network
 
SDN Exercises
 
 
23
 
Configure OSPF within the IP
network
Isolate the traffic in each server
Provide an end-to-end
connectivity between hosts with
the same VXLAN identifier (VNID)
 
VXLAN network
 
 
24
 
SDN network
 
Configure the SDN network
Manage the switches manually using the
OpenFlow protocol
Manage the switches using the ONOS
controller
Inspect the OpenFlow messages exchanged
between the control plane and the data plane
Inspect the flow rules on the switches that
forward traffic between the hosts
 
 
SDN Exercises
 
 
25
 
SDN and legacy networks
 
Configure BGP within the legacy
routers
Configure the SDN switches to
interconnect with the legacy
networks
Emulate virtual gateways and
routing within the SDN network
Establish connectivity between
hosts in different legacy networks,
as well as between hosts within the
SDN network
 
 
 
SDN Exercises
 
Overview P4 Labs
 
 
26
 
SDN Limitation
 
 
27
 
SDN does not allow the programmer to create a new protocol and parse the protocol
header in the data plane
SDN is limited to the OpenFlow specifications and the fixed-function data plane
 
 
SDN Limitation
 
 
28
 
SDN does not allow the programmer to create a new protocol and parse the protocol
header in the data plane
SDN is limited to the OpenFlow specifications and the fixed-function data plane
 
 
P4 Programmable Switches
 
29
 
The programmable forwarding can be viewed as a natural evolution of SDN
P4 programmable switches permit a programmer to program the data plane
Defining and parsing new protocols
Customizing packet processing functions
Measuring events occurring in the data plane at nanosecond resolution
Inspecting and analyzing each packet (per-packet analysis)
P4 stands for stands for Programming Protocol-independent Packet Processors
 
P4 Programmable Switches
 
 
30
 
Analogy between networks and other computing domains
 
P4 Programmable Switches
 
 
31
 
Programmable chip
Parser parses header fields, written by the programmer
Stages contain memory and Arithmetic Logic Units (ALUs)
Memory are used for tables, 
match
 bits
ALUs are simple, suitable for header field operations,
actions
Stages are sequentially arranged (1, 2, …, n), for
sequential computation
Deparser assembles packet headers back
 
 
 
 
 
Examples of P4 Programmable Switches
 
 
 
32
 
Behavioral Model Version 2 (BMv2)
Open source
Software switch used for teaching, researching ideas
Good to validate ideas
Commercial physical devices
E.g., Edgecore Wedge 100BF-65X (based on Intel’s Tofino chip)
65x100G switch ports
Used in production networks and research
 
 
Introduction to P4 and BMv2 Lab Series
 
 
 
33
 
Lab 1: 
 
Introduction to Mininet
Lab 2: 
 
Introduction to P4 and BMv2
Lab 3: 
 
P4 Program Building Blocks
Lab 4: 
 
Parser Implementation
Lab 5: 
 
Introduction to Match-action Tables (Part 1)
Lab 6: 
 
Introduction to Match-action Tables (Part 2)
Lab 7: Populating and Managing Match-action Tables
Lab 8: Checksum Recalculation and Packet Deparsing
 
Exercise 1: Building a Basic Topology
Exercise 2: 
 
Compiling and Testing a P4 Program
Exercise 3: Parsing UDP and RTP
Exercise 4: 
 
Building a Simplified NAT
Exercise 5: 
 
Configuring Tables at Runtime
Exercise 6: Building a Packet Reflector
 
Lab experiments
 
Exercises
 
Workflow of a P4 Program
 
 
34
 
Workflow used in the lab series
 
Workflow used to program the BMv2 switch
 
Development Environment
 
 
35
 
Topology constructed with a modified version of the MiniEdit editor
P4 software switches (BMv2) running inside Docker containers (through Containernet)
Code written in Visual Studio Code with P4 syntax highlighting and a built-in terminal
 
P4 switches
 
Development Environment
 
 
36
 
Programmer has the flexibility of
designing complex networks
P4 programmable switches use BMv2
Legacy/OpenFlow switches are Open
vSwitch (OVS)
Routers use a real routing stack
(FRR)
Hosts use Linux’s network stack
 
Overview P4 Labs
 
 
37
 
Examples
 
 
38
 
Compiling a P4 program and pushing the output to the data plane
Starting the switch daemon and allocating interfaces
 
Examples
 
 
39
 
Defining headers and programming a parser for Ethernet, IPv4, and IPv6
 
Examples
 
 
40
 
Programming match-action tables:
Exact
Longest Prefix Matching (LPM)
Forwarding using port information:
Packets arriving at port 0 are sent through port 1
Packets arriving at port 1 are sent through port 0
Routing using layer-3 information:
Matching on the destination IP address
Modifying the source and destination MACs
Decrementing the Time-to-live (TTL)
Assigning the output port
 
Examples
 
 
41
 
Populating and managing match-action tables
Dumping table entries
Adding/removing/modifying table entries
Obtaining switch information
Checking 
tables
 
Overview P4 Exercises
 
 
42
 
Exercises
 
 
43
 
Parse UDP and Real-time Transport Protocol (RTP)
UDP is identified by the “protocol field = 17,” in the IPv4 header
Within UDP, if the destination port = 5004, then the packet is RTP
 
 
UDP header
 
RTP header
 
Packet headers
 
Exercises
 
 
44
 
Implement a simplified version of the source and destination Network Address
Translation (NAT)
Modify the source IP address of the packet when leaving the network
Modify the destination IP address of the packet when entering the network
 
 
Exercises
 
 
45
 
Push the table entries to the switches so that a packet sent from h1 to h2
traverses switches s1-s2
Modify the path so that the packet traverses the switches s1-s3-s4-s2
Write the rules that create a loop in the switches s1-s2-s4-s3-s1-s2-s4-s3…
 
 
Exercises
 
 
46
 
Combining all concepts into a single program
Define headers and parsing IPv4, IPv6
Implement tables for reflecting IPv4 and IPv6 packets
Populate the tables from the control plane
Update the checksum of the IPv4 header
 
 
Additional Information
 
 
47
 
Jorge Crichigno:
jcrichigno@cec.sc.edu
Cyberinfrastructure lab at the University of South Carolina:
http://ce.sc.edu/cyberinfra/
Slide Note
Embed
Share

Explore the motivation behind Software-Defined Networking (SDN) and P4 programmable switches, highlighting the shift from traditional networking to more flexible and innovative approaches. Understand how SDN challenges protocol ossification, separates control and data planes, and enables packet-forwarding through controller programming. Discover the possibilities for experimentation and innovation in forwarding packets based on custom policies and applications.

  • Virtual Labs
  • SDN
  • P4
  • Networking
  • Innovation

Uploaded on Apr 02, 2024 | 2 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Virtual Labs on SDN and P4 Programmable Switches Jorge Crichigno, Elie Kfoury, Jose Gomez, Ali AlSabeh University of South Carolina 2022 Winter ICT Educators Conference January 6-7, 2021 Online

  2. Agenda Motivation Software-Defined Networking (SDN) motivation Lab environment SDN lab series P4 motivation P4 lab series 2

  3. Motivation Since the explosive growth of the Internet in the 1990s, the networking industry has been dominated by closed and proprietary hardware and software There has been a lack of flexibility to design protocols Standardized requirements cannot be easily removed to enable changes, leading to a protocol ossification 3

  4. Traditional (Legacy) Networking The interface between the control plane and data plane has been historically proprietary A router is a monolithic unit built and internally accessed by the manufacturer only There is a vendor dependence: slow product cycles of vendor equipment, standardization, no room for innovation from network owners 4

  5. SDN Protocol ossification has been challenged first by SDN SDN explicitly separates the control and data planes, and implements the control plane intelligence as a software outside the switches 5

  6. SDN The function of populating the forwarding table is now performed by the controller The controller is responsible for programming packet-matching and forwarding rules 6

  7. SDN SDN also provides a framework for a more general way to forward packets match plus action abstraction: match bits in arriving packet header(s) in any layers, then take action local actions: drop, forward, modify, or send matched packet to controller Possibility of experimentation and innovation (custom policies, apps can be deployed) Packets can be forwarded based on other fields, such as TCP port number 7

  8. Environment: Mininet 8

  9. Mininet Mininet is a virtual testbed for developing and testing network tools and protocols Nodes are sometimes called containers, or more accurately, network namespaces Features Fast prototyping for new protocols Simplified testing for complex topologies without the need of buying expensive hardware It runs real code on Unix/Linux kernels (realistic emulation) Open source Containers consume few resources; complex networks can be created (100s or 1,000s of nodes) 9

  10. MiniEdit To build a topology, we use MiniEdit MiniEdit is a simple GUI editor for Mininet Example: 10

  11. Host Configuration Configure the IP addresses at host h1 and host h2 A host can be configured by holding the right click and selecting properties on the device 11

  12. Executing Commands on Hosts Open a terminal on host by holding the right click and selecting Terminal 12

  13. SDN Lab Series 13

  14. SDN Lab Series The labs provide learning experiences on essential SDN topics Legacy networks, Border Gateway Protocol (BGP) MPLS and FRR (an open-source router) SDN fundamentals controllers, switches ONOS controller Open vSwitch (OVS) Traffic isolation with VXLAN OpenFlow Interconnection between SDN and legacy networks 14 OpenFlow Specification

  15. SDN Lab Series The labs provide learning experiences on essential SDN topics Lab 1: Introduction to Mininet Lab 2: Legacy Networks: BGP Example as a distributed system and autonomous forwarding decisions Lab 3: Early efforts of SDN: MPLS example of a control plane that establishes semi-static forwarding paths Lab 4: Introduction to SDN Lab 5: Configuring VXLAN to provide network traffic isolation Lab 6: Introduction to OpenFlow Lab 7: SDN-routing within an SDN network Lab 8: Interconnection between legacy networks and SDN networks Lab 9: Configuring Virtual Private LAN Services (VPLS) with SDN networks Lab 10: Appling Equal-Cost Multi-Path (ECMP) within SDN networks 15

  16. Organization of Lab Manuals Each lab starts with a section Overview Objectives Lab settings: passwords, device names Roadmap: organization of the lab Section 1 Background information (theory) of the topic being covered (e.g., fundamentals of SDN) Section 1 is optional (i.e., the reader can skip this section and move to lab directions) Section 2 n Step-by-step directions 16

  17. Examples 192.168.12.0/30 .1 r1-eth1 r2-eth1 .2 EBGP r1 Legacy networks r2 .1 .1 r2-eth0 r1-eth0 BGP scenario 192.168.1.0/24 192.168.2.0/24 s2-eth2 s1-eth2 s1 s2 Network 1 Network 2 s2-eth1 s1-eth1 AS 100 AS 200 .10 h2-eth0 .10 h1-eth0 h1 h2 MPLS scenario IP packet P IP packet LAN 1 LAN 2 CE PE PE CE 17

  18. Examples c0 SDN networks s1-eth1 s1-eth2 s1 10.0.0.0/8 h1-eth0 h2-eth0 .1 .2 h2 h1 Out-of-band connection 18

  19. Examples c0 10.0.0.3/24 Interconnection of SDN and legacy networks s1-eth3 s1-eth2 s1 s1-eth1 s2-eth1 s3-eth1 s2-eth2 s3-eth2 s2 s3 192.168.12.1/30 192.168.13.1/30 r1-eth0 r2-eth1 r3-eth1 192.168.12.2/30 192.168.13.2/30 r1-eth1 r2 r3 10.0.0.1/24 .1 r2-eth0 .1 r3-eth0 r1 s4-eth2 s5-eth2 AS 100 192.168.2.0/24 192.168.3.0/24 s4 s5 s4-eth1 s5-eth1 .10 h1-eth0 .10 h2-eth0 h1 h2 AS 200 AS 300 Out-of-band connection 19

  20. Overview SDN Exercises 20

  21. SDN Exercises Exercise set Exercise 1: SDN Network Configuration Exercise 2: Configuring VXLAN Exercise 3: OpenFlow Protocol Management Exercise 4: Incremental Deployment of SDN Networks within Legacy Networks 21

  22. SDN Exercises SDN network c0 Configure the SDN network Manage the OpenFlow switches using the ONOS controller Navigate through terminal to enable inspect links, devices, flow tables, etc. Establish connectivity between the two hosts the applications, ONOS s1-eth2 s2-eth2 s1 s2 s1-eth1 s2-eth1 15.0.0.0/8 h1-eth0 h2-eth0 .1 .2 h1 h2 Out-of-band connection 22

  23. SDN Exercises VXLAN network Configure OSPF within the IP network Isolate the traffic in each server Provide an connectivity between hosts with the same VXLAN identifier (VNID) IP Network Server 1 Server 2 r3 r3-eth0 r3-eth1 173.0.13.0/30 173.0.23.0/30 .2 .1 .1 h4 .2 h1 end-to-end d1-eth0 d3-eth0 r1-eth1 .1 r2-eth1 .2 h2-eth0 s1-eth2 h5-eth0 s1-eth0 r1-eth0 s2-eth0 r2-eth0 .1 s2-eth2 .10 .1 .10 .1 s2 s1 .2 r1 h2 r2 h5 192.168.10.0/24 192.168.20.0/24 20.0.0.0/24 20.0.0.0/24 .1 .2 h3 h6 Container d1 Container d2 VNID 10 VNID 20 VNID 30 23

  24. SDN Exercises SDN network c0 Configure the SDN network Manage the switches manually using the OpenFlow protocol Manage the switches controller Inspect the OpenFlow messages exchanged between the control plane and the data plane Inspect the flow rules on the switches that forward traffic between the hosts using the ONOS s1-eth2 s2-eth2 s1 s2 s1-eth1 s2-eth1 15.0.0.0/8 h1-eth0 h2-eth0 .1 .2 h1 h2 Out-of-band connection 24

  25. SDN Exercises SDN and legacy networks Configure BGP within the legacy routers Configure the SDN switches to interconnect with networks Emulate virtual routing within the SDN network Establish connectivity hosts in different legacy networks, as well as between hosts within the SDN network c0 10.0.0.3/24 the legacy s1-eth3 s1-eth2 s1 gateways and s1-eth1 s2-eth1 s3-eth1 s2-eth2 s3-eth2 s3 s2 s3-eth3 .1 s2-eth3 .1 173.17.12.1/30 173.17.13.1/30 192.168.1.1/24 192.168.2.1/24 r1-eth0 r2-eth1 r3-eth1 173.17.12.2/30 173.17.13.2/30 r1-eth1 r2 r3 between 10.0.0.1/24 .1 h4-eth0 .10 h3-eth0 .10 r2-eth0 .1 r3-eth0 r1 s4-eth2 s5-eth2 173.17.2.0/24 173.17.3.0/24 s4 s5 h4 h3 AS 10 192.168.2.0/24 192.168.1.0/24 s4-eth1 s5-eth1 .10 h1-eth0 .10 h2-eth0 h1 h2 AS 20 AS 30 Out-of-band connection 25

  26. Overview P4 Labs 26

  27. SDN Limitation SDN does not allow the programmer to create a new protocol and parse the protocol header in the data plane SDN is limited to the OpenFlow specifications and the fixed-function data plane 27

  28. SDN Limitation SDN does not allow the programmer to create a new protocol and parse the protocol header in the data plane SDN is limited to the OpenFlow specifications and the fixed-function data plane 28

  29. P4 Programmable Switches The programmable forwarding can be viewed as a natural evolution of SDN P4 programmable switches permit a programmer to program the data plane Defining and parsing new protocols Customizing packet processing functions Measuring events occurring in the data plane at nanosecond resolution Inspecting and analyzing each packet (per-packet analysis) P4 stands for stands for Programming Protocol-independent Packet Processors 29

  30. P4 Programmable Switches Analogy between networks and other computing domains Domain Year Processing Unit Main Language/s General computing 1971 Central Processing Unit (CPU) C, Java, Phyton, etc. Signal processing 1979 Digital Signal Processor (DSP) Matlab Graphics 1994 Graphics Processing Unit (GPU) Open Computing Language Machine learning 2015 Tensor Processing Unit (TPU) Tensor Flow Computer networks 2016 Protocol Independent Switch Architecture (PISA) P4 30

  31. P4 Programmable Switches Programmable chip Parser parses header fields, written by the programmer Stages contain memory and Arithmetic Logic Units (ALUs) Memory are used for tables, match bits ALUs are simple, suitable for header field operations, actions Stages are sequentially arranged (1, 2, , n), for sequential computation Deparser assembles packet headers back 31

  32. Examples of P4 Programmable Switches Behavioral Model Version 2 (BMv2) Open source Software switch used for teaching, researching ideas Good to validate ideas Commercial physical devices E.g., Edgecore Wedge 100BF-65X (based on Intel s Tofino chip) 65x100G switch ports Used in production networks and research 32

  33. Introduction to P4 and BMv2 Lab Series Lab experiments Exercises Lab 1: Introduction to Mininet Lab 2: Introduction to P4 and BMv2 Lab 3: P4 Program Building Blocks Lab 4: Parser Implementation Lab 5: Introduction to Match-action Tables (Part 1) Lab 6: Introduction to Match-action Tables (Part 2) Lab 7: Populating and Managing Match-action Tables Lab 8: Checksum Recalculation and Packet Deparsing Exercise 1: Building a Basic Topology Exercise 2: Compiling and Testing a P4 Program Exercise 3: Parsing UDP and RTP Exercise 4: Building a Simplified NAT Exercise 5: Configuring Tables at Runtime Exercise 6: Building a Packet Reflector 33

  34. Workflow of a P4 Program Workflow used to program the BMv2 switch Workflow used in the lab series 34

  35. Development Environment Topology constructed with a modified version of the MiniEdit editor P4 software switches (BMv2) running inside Docker containers (through Containernet) Code written in Visual Studio Code with P4 syntax highlighting and a built-in terminal P4 switches 35

  36. Development Environment Programmer designing complex networks P4 programmable switches use BMv2 Legacy/OpenFlow switches are Open vSwitch (OVS) Routers use a real routing stack (FRR) Hosts use Linux s network stack has the flexibility of 36

  37. Overview P4 Labs 37

  38. Examples Compiling a P4 program and pushing the output to the data plane Starting the switch daemon and allocating interfaces s1-eth1 s1-eth0 0 1 38

  39. Examples Defining headers and programming a parser for Ethernet, IPv4, and IPv6 Bit 0 0 1 2 3 4 5 IHL 6 7 8 9 10 11 12 13 14 15 16 17 DSCP 18 19 20 21 22 23 24 25 26 Total Length 27 28 29 30 31 Version ECN 32 Identifier Flags Fragment Offset 64 Time To Live Header Checksum Protocol 96 Source IP Address 128 Destination IP Address 160 Options (if IHL > 5) 39

  40. Examples Programming match-action tables: Exact Longest Prefix Matching (LPM) Forwarding using port information: Packets arriving at port 0 are sent through port 1 Packets arriving at port 1 are sent through port 0 Routing using layer-3 information: Matching on the destination IP address Modifying the source and destination MACs Decrementing the Time-to-live (TTL) Assigning the output port h1 s1 h3 h1-eth0 s1-eth0 s1-eth2 h3-eth0 s1-eth1 10.0.0.1 30.0.0.1 h2-eth0 h2 20.0.0.1 40

  41. Examples Populating and managing match-action tables Dumping table entries Adding/removing/modifying table entries Obtaining switch information Checking tables 41

  42. Overview P4 Exercises 42

  43. Exercises Parse UDP and Real-time Transport Protocol (RTP) UDP is identified by the protocol field = 17, in the IPv4 header Within UDP, if the destination port = 5004, then the packet is RTP UDP header Packet headers RTP UDP RTP header IPv4 Ethernet 43

  44. Exercises Implement a simplified version of the source and destination Network Address Translation (NAT) Modify the source IP address of the packet when leaving the network Modify the destination IP address of the packet when entering the network Source IP Destination IP Source IP Destination IP h1 h2 s1 10.0.0.1 172.32.0.10 172.32.0.1 172.32.0.10 0 1 Destination IP Destination IP Source IP Source IP 10.0.0.1 172.32.0.10 172.32.0.10 10.0.0.1 172.32.0.10 172.32.0.1 44

  45. Exercises Push the table entries to the switches so that a packet sent from h1 to h2 traverses switches s1-s2 Modify the path so that the packet traverses the switches s1-s3-s4-s2 Write the rules that create a loop in the switches s1-s2-s4-s3-s1-s2-s4-s3 h1 s1 s2 h2 10.0.0.1 10.0.0.2 s3 s4 45

  46. Exercises Combining all concepts into a single program Define headers and parsing IPv4, IPv6 Implement tables for reflecting IPv4 and IPv6 packets Populate the tables from the control plane Update the checksum of the IPv4 header reflect_ipv4 Source IP New source IP Source IP Destination IP 10.0.0.0/8 15.0.0.1 h1 s1 10.0.0.1 172.32.0.10 20.0.0.0/8 30.0.0.1 simple_switch_CLI ... ... reflect_ipv6 Source IP New source IP Source IP Destination IP aaaa::/64 bbbb::1 10.0.0.1 10.0.0.1 15.0.0.1 bbbb::/64 cccc::1 ... ... 46

  47. Additional Information Jorge Crichigno: jcrichigno@cec.sc.edu Cyberinfrastructure lab at the University of South Carolina: http://ce.sc.edu/cyberinfra/ 47

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#