SlideShare a Scribd company logo
1 of 31
Programming	
  
The	
  Network	
  Data	
  Plane	
  in	
  P4	
  
	
  
Changhoon	
  Kim	
  (chang@barefootnetworks.com)	
  
P4	
  Language	
  Consor9um	
  –	
  www.p4.org	
  
Status	
  quo	
  
2	
  
Switch	
  OS	
  
Run-­‐<me	
  API	
  
Driver	
  “This	
  is	
  roughly	
  how	
  I	
  process	
  
packets	
  …”	
  	
  
Fixed-­‐func<on	
  ASIC	
  
in	
  English	
  
•  Prone	
  to	
  bugs	
  
•  Very	
  long	
  and	
  unpredictable	
  lead	
  9me	
  
Protocols	
  evolve	
  …	
  
more	
  rapidly	
  than	
  we	
  wish	
  they	
  would	
  	
  
•  Encapsula<on	
  protocols	
  for	
  network	
  virtualiza<on	
  
–  1st	
  gen	
  (~2010):	
  VXLAN,	
  NVGRE	
  
–  2nd	
  gen	
  (~2012):	
  STT,	
  VXLAN-­‐GPE	
  
–  3rd	
  gen	
  (~2014):	
  NSH,	
  Geneve	
  
•  OpenFlow	
  
–  OF	
  1.0	
  (Dec	
  2009):	
  12	
  fields	
  (Ethernet,	
  TCP,	
  IPv4)	
  
–  OF	
  1.1	
  (Feb	
  2011):	
  15	
  fields	
  (MPLS,	
  inter-­‐table	
  metadata)	
  
–  OF	
  1.2	
  (Dec	
  2011):	
  36	
  fields	
  (ARP,	
  ICMP,	
  IPv6)	
  
–  OF	
  1.3	
  (Jun	
  2012):	
  40	
  fields	
  
–  OF	
  1.4	
  (Oct	
  2013):	
  41	
  fields	
  
–  OF	
  1.5	
  (Dec	
  2014):	
  44	
  fields	
  
3	
  
Everybody	
  has	
  opinions!	
  
Can’t	
  we	
  just	
  let	
  them	
  build	
  their	
  own	
  protocols?	
  
Programmable	
  network	
  devices	
  
•  Some	
  devices	
  are	
  or	
  will	
  be	
  more	
  programmable	
  than	
  
fixed-­‐func<on	
  ASICs	
  
•  CPUs:	
  10s	
  of	
  Gb/s	
  
•  FPGAs,	
  NPUs:	
  100s	
  of	
  Gb/s	
  
•  Protocol-­‐independent	
  switch	
  ASICs:	
  a	
  few	
  Tb/s	
  
–  RMT	
  [SIGCOMM’13]	
  and	
  a	
  few	
  emerging	
  solu<ons	
  
–  Merchant	
  silicon	
  with	
  fully	
  programmable	
  parser	
  and	
  
generic	
  match-­‐ac<on	
  logic	
  
–  In	
  next	
  few	
  years	
  this	
  kind	
  of	
  silicon	
  will	
  dominate	
  
4	
  
Turning	
  the	
  tables	
  
5	
  
Switch	
  OS	
  
Run-­‐<me	
  API	
  
Driver	
  
PISA	
  device	
  
(Protocol-­‐Independent	
  Switch	
  Architecture)	
  
“This	
  is	
  precisely	
  how	
  you	
  
must	
  process	
  packets”	
  
in	
  P4	
  
What	
  does	
  this	
  mean?	
  
•  To	
  network	
  device	
  vendors	
  
–  S/W	
  programming	
  prac<ces	
  and	
  tools	
  used	
  in	
  every	
  phase	
  
–  Extremely	
  fast	
  itera<on	
  and	
  feature	
  release	
  
–  Differen<a<on	
  in	
  capabili<es	
  and	
  performance	
  
–  Can	
  fix	
  even	
  data-­‐plane	
  bugs	
  in	
  the	
  field	
  
•  To	
  large	
  on-­‐line	
  service	
  providers	
  
–  No	
  more	
  “black	
  boxes”	
  in	
  the	
  “white	
  boxes”	
  
–  Your	
  devs	
  can	
  program,	
  test,	
  and	
  debug	
  your	
  network	
  devices	
  
all	
  the	
  way	
  down	
  
–  You	
  keep	
  your	
  own	
  ideas	
  
6	
  
7	
  
Why	
  we	
  call	
  it	
  
protocol-­‐independent	
  packet	
  
processing	
  
Logical	
  Data-­‐plane	
  View	
  
(your	
  P4	
  program)	
  
Switch	
  Pipeline	
  
Device	
  does	
  not	
  understand	
  any	
  protocols	
  un9l	
  
it	
  gets	
  programmed	
  
Queues	
  
Programmable	
  
Parser	
  
Fixed	
  Ac<on	
  
Match	
  Table	
  
Match	
  Table	
  
Match	
  Table	
  
Match	
  Table	
  
L2	
  
IPv4	
  
IPv6	
  
ACL	
  
Ac<on	
  ALUs	
  
Ac<on	
  ALUs	
  
Ac<on	
  ALUs	
  
Ac<on	
  ALUs	
  
8	
  
packet	
  packet	
   packet	
  packet	
  
CLK	
  
Match	
  Table	
  
Ac<on	
  ALUs	
  
Mapping	
  logical	
  data-­‐plane	
  design	
  to	
  
physical	
  resources	
  
Queues	
  
Match	
  Table	
  
Match	
  Table	
  
Match	
  Table	
  
L2	
  Table	
  
IPv4	
  Table	
  
IPv6	
  Table	
  
ACL	
  Table	
  
Ac<on	
  ALUs	
  
Ac<on	
  ALUs	
  
Ac<on	
  ALUs	
  
L2	
  
IPv4	
  
IPv6	
  
ACL	
  
Logical	
  Data-­‐plane	
  View	
  
(your	
  P4	
  program)	
  
Switch	
  Pipeline	
  
L2	
  
IPv6	
  
ACL	
  
IPv4	
  
L2	
  Ac<on	
  Macro	
  
v4	
  Ac<on	
  Macro	
  
v6	
  Ac<on	
  Macro	
  	
  
ACL	
  Ac<on	
  Macro	
  
9	
  
Programmable	
  
Parser	
  
CLK	
  
Re-­‐configurability	
  
L2	
  Table	
  
IPv4	
  Table	
  
ACL	
  Table	
  
IPv6	
  Table	
  
MyEn
cap	
  
L2	
  
IPv4	
  
IPv6	
  
ACL	
  
MyEncap	
  
L2	
  Ac<on	
  Macro	
  
v4	
  Ac<on	
  Macro	
  
ACL	
  Ac<on	
  Macro	
  
Ac<on	
  
MyEncap	
  
v6	
  Ac<on	
  Macro	
  
IPv4	
  
Ac<on	
  
IPv4	
  
Ac<on	
  
10	
  
IPv6	
  
Ac<on	
  
IPv6	
  
Programmable	
  
Parser	
  
CLK	
  
Logical	
  Data-­‐plane	
  View	
  
(your	
  P4	
  program)	
  
Switch	
  Pipeline	
  
Queues	
  
What	
  does	
  a	
  P4	
  program	
  look	
  like?	
  
11	
  
L2	
  
IPv4	
  
ACL	
  MyEncap	
  MyEncap	
  
IPv6	
  
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	
  
IPv4	
   IPv6	
  
MyEncap	
  Eth	
  
header_type my_encap_t {
fields {
foo : 12;
bar : 8;
baz : 4;
qux : 4;
next_protocol : 4;
}
}
What	
  does	
  a	
  P4	
  program	
  look	
  like?	
  
12	
  
L2	
  
IPv4	
  
ACL	
  MyEncap	
  MyEncap	
  
IPv6	
  
TCP	
  
IPv4	
   IPv6	
  
MyEncap	
  Eth	
  
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;
options : *;
}
length : (ihl << 2);
max_length : 60;
}
What	
  does	
  a	
  P4	
  program	
  look	
  like?	
  
13	
  
L2	
  
IPv4	
  
ACL	
  MyEncap	
  MyEncap	
  
IPv6	
  
table ipv4_lpm
{
reads {
ipv4.dstAddr : lpm;
}
actions {
set_next_hop; drop;
}
}
action set_next_hop(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);
}
control ingress
{
apply(l2);
apply(my_encap);
if (valid(ipv4) {
apply(ipv4_lpm);
} else {
apply(ipv6_lpm);
}
apply(acl);
}
/* Example: A typical IPv4 routing table */
table ipv4_lpm {
reads {
ingress_metadata.vrf : exact;
ipv4.dstAddr : lpm;
}
actions {
nop;
l3_l2_switch;
l3_multicast;
l3_nexthop;
l3_ecmp;
l3_drop;
}
size : 65536;
}
What	
  does	
  a	
  P4	
  program	
  look	
  like?	
  
14	
  
vrf	
   ipv4.dstAddr	
  /	
  prefix	
   ac9on	
   data	
  
1	
   192.168.1.0	
  	
  /	
  24	
   l3_l2_switch	
   port_id=64	
  
10	
   10.0.16.0	
  /	
  22	
   l3_ecmp	
   ecmp_index=12	
  
1	
   192.168.0.0	
  /	
  16	
   l3_nexthop	
   nexthop_index=451	
  
1	
   0.0.0.0	
  /	
  0	
   l3_nexthop	
   nexthop_index=1	
  
These	
  are	
  the	
  only	
  possible	
  ac<ons.	
  
Each	
  par<cular	
  entry	
  in	
  the	
  table	
  is	
  
associated	
  with	
  ONE	
  of	
  these	
  
What	
  does	
  a	
  P4	
  program	
  look	
  like?	
  
•  Match	
  seman<cs	
  
–  exact
•  port_index	
  :	
  exact	
  
–  ternary
•  ethernet.srcAddr	
  :	
  ternary	
  
–  valid
•  vlan_tag[0]	
  :	
  valid	
  
–  lpm	
  
•  ipv4.dstAddr	
  :	
  lpm	
  
–  range
•  udp.dstPort	
  :	
  range	
  
15	
  
What	
  does	
  a	
  P4	
  program	
  look	
  like?	
  
•  Primi<ve	
  ac<ons	
  
–  modify_field, add_to_field, add,
set_field_to_hash_index
–  add_header, remove_header, copy_header
–  push, pop
–  count, meter
–  generate_digest, truncate
–  resubmit, recirculate
–  clone_*
–  no_op, drop
	
   16	
  
My	
  (running)	
  switch	
  
MyNetVirtualiza9on	
  (your	
  new	
  protocol)	
  
Forwarding	
  Logic	
  (P4)	
  
Table	
  Popula<on	
   Tenant	
  Isola<on	
  
Logic	
  
Linux	
  
Switch	
  Chip	
  Driver	
  
Switch	
  Run<me	
  API	
  
Table	
  Popula<on	
  
Tenant	
  Isola<on	
  Logic	
  
Compiled	
  
Forwarding	
  Logic	
  
Parser	
  
Program	
  
Control	
  Flow	
  
Match	
  Tables	
  
+	
  Ac9ons	
  
Compiler	
  
PISA	
  	
  chip	
  
Add/delete	
  
(run	
  <me)	
  Program	
  
(boot	
  or	
  init	
  <me)	
  
DEMO!	
  
18	
  
In-­‐band	
  Network	
  Telemetry	
  (INT)	
  
hnp://p4.org/p4/inband-­‐network-­‐telemetry/	
  
	
  
Demo	
  Setup	
  
19	
  
SW-­‐n	
  
Sim	
  Model	
  
SW-­‐1	
  
Sim	
  Model	
  	
  
Control	
  
Plane	
  
Compiler	
  
SW	
  Ctrl	
  API	
  
/* Reference p4 program
switch.p4
*/
#include "includes/headers.p4"
#include "includes/parser.p4”
/********************************/
/* Device Personality Selection */
/********************************/
// #define P_MINIMAL
#define P_BASE
//#define P_MSDC_SPINE
//#define P_MSDC_TOR
//#define P_MSDC_BL
//#define P_INTERNET_ROUTER
...
// Flexible Tables
#define LPM_TABLE_SIZE 16384
#define IPV6_LPM_TABLE_SIZE 4096
#define HOST_TABLE_SIZE 131072
#define IPV6_HOST_TABLE_SIZE 32768
...
header_type routing_metadata_t {
fields {
bd : BD_BIT_WIDTH; /* bridge domain */
vrf : VRF_BIT_WIDTH; /* routing domain */
v6_vrf : VRF_BIT_WIDTH; /* routing domain */
...
table bridge_domain {
reads {
routing_metadata.bd : exact;
}
actions {
nop; // Not used
bd_set;
…
Switch	
  Data-­‐plane	
  
Configura9on	
  
Auto-­‐generated	
  
API	
  
.	
  
	
  	
  	
  	
  .	
  
	
  	
  	
  	
  	
  	
  	
  	
  .	
  
Control	
  
Plane	
  
SW	
  Ctrl	
  API	
  
Run-­‐;me	
  
table	
  update	
  
Run-­‐;me	
  
table	
  update	
  
Scenario:	
  Debugging	
  Long	
  Latency	
  Tail	
  
20	
  
SW1	
  
(dc.p4)	
  
H1	
  
H2	
  
H3	
  
5Mbps	
  
SW2	
  
(dc.p4)	
  
20Mbps	
  
Monitor	
  5Mbps	
  
20Mbps	
  
5Mbps	
  
SW3	
  
(dc.p4)	
  
HTTP	
  download	
  
(from	
  H1	
  to	
  H3)	
  
In-­‐band	
  Network	
  Telemetry	
  in	
  P4	
  
21	
  
table int_table {
reads {
ip.protocol;
}
actions {
export_queue_latency;
}
}
Add	
  TCP	
  Op<ons	
  &	
  
copy	
  switch	
  ID	
  and	
  queue	
  latency	
  
Into	
  the	
  op<ons	
  
action export_queue_latency (sw_id) {
add_header(int_header);
modify_field(int_header.kind, TCP_OPTION_INT);
modify_field(int_header.len, TCP_OPTION_INT_LEN);
modify_field(int_header.sw_id, sw_id);
modify_field(int_header.q_latency,
intrinsic_metadata.deq_timedelta);
add_to_field(tcp.dataOffset, 2);
add_to_field(ipv4.totalLen, 8);
subtract_from_field(ingress_metadata.tcpLength,
12);
}
INT	
  Open-­‐source	
  and	
  Spec	
  
•  hnp://p4.org/p4/inband-­‐network-­‐telemetry/	
  
22	
  
Spec	
   Ref	
  P4	
  code	
   Demo	
  
This	
  will	
  accelerate	
  innova9ons	
  
•  Areas	
  of	
  innova<on	
  (just	
  to	
  name	
  a	
  few)	
  
–  Reducing	
  feature	
  set	
  à	
  “biggest	
  bang	
  for	
  buck”	
  
–  Network	
  monitoring,	
  analysis,	
  and	
  diagnos<cs	
  
–  Tunnel-­‐splicing	
  gateways	
  
–  Load	
  balancing	
  
–  Anack	
  detec<on	
  and	
  mi<ga<on	
  
–  Host-­‐stack	
  offloading	
  
•  Across	
  various	
  types	
  of	
  network	
  devices	
  
–  Hardware	
  and	
  sosware	
  devices	
  (OVS,	
  eBPF,	
  etc.)	
  
–  Switches,	
  NICs,	
  middle-­‐boxes,	
  etc.	
  
23	
  
This	
  will	
  create	
  lots	
  of	
  significant	
  R&D	
  and	
  
business	
  opportuni9es	
  
•  Novel	
  network	
  and	
  protocol	
  designs	
  
–  Take	
  advantage	
  of	
  unprecedented	
  amount	
  of	
  visibility	
  and	
  
control	
  into	
  the	
  network	
  
–  Joint	
  design	
  and	
  op<miza<on	
  between	
  hosts	
  and	
  network	
  
•  Development	
  tools	
  
–  Compilers,	
  debuggers,	
  sta<c	
  analyzers,	
  profilers,	
  etc.	
  
–  P4-­‐programming	
  assistance	
  tools	
  
•  Network	
  verifica<on,	
  test,	
  and	
  simula<on	
  
•  Many	
  more	
  …	
  
24	
  
P4.org	
  –	
  P4	
  Language	
  Consor9um	
  
25	
  
Maintains	
  the	
  
language	
  spec	
  
P4.org	
  –	
  P4	
  Language	
  Consor9um	
  
26	
  
Maintains	
  key	
  dev	
  tools	
  under	
  
Apache	
  license	
  
	
  
•  Reference	
  P4	
  programs	
  
•  Compiler	
  
•  P4	
  sosware	
  switch	
  
•  Test	
  framework	
  
P4.org	
  –	
  P4	
  Language	
  Consor9um	
  
27	
  
Open	
  for	
  par9cipa9on	
  by	
  
any	
  individuals	
  or	
  
organiza9ons	
  
P4.org	
  –	
  P4	
  Language	
  Consor9um	
  
28	
  
Hosts	
  P4	
  workshops	
  and	
  boot	
  camps	
  
	
  
•  2nd	
  P4	
  Workshop	
  on	
  Nov/18	
  at	
  Stanford	
  
•  1st	
  P4	
  Boot	
  camp	
  in	
  the	
  same	
  week	
  
Switch.p4:	
  A	
  typical	
  L2/L3	
  switch	
  in	
  P4	
  
•  Feature	
  set	
  
–  Basic	
  L2	
  switching:	
  MAC	
  learning,	
  VLAN,	
  flooding,	
  and	
  STP	
  
–  Basic	
  L3	
  rou<ng:	
  IPv4	
  and	
  IPv4	
  rou<ng	
  with	
  VRF	
  
–  LAG	
  and	
  ECMP	
  
–  Tunneling:	
  VXLAN,	
  NVGRE,	
  Geneve,	
  and	
  GRE	
  
–  Basic	
  ACL:	
  MAC	
  and	
  IP	
  ACLs	
  
–  Unicast	
  RPF	
  
–  MPLS:	
  LER,	
  LSR,	
  IPVPN,	
  VPLS,	
  and	
  L2VPN	
  
–  Host	
  interface	
  
–  Mirroring:	
  Ingress	
  and	
  egress	
  mirroring	
  with	
  ERSPAN	
  
–  Counters/Sta<s<cs	
  
•  More	
  features	
  coming	
  soon	
  
–  IP	
  Mul<cast,	
  NAT,	
  QoS,	
  Ingress	
  policing,	
  etc.	
  
29	
  
Summary	
  
•  In	
  next	
  few	
  years	
  data-­‐plane	
  programmability	
  will	
  
quickly	
  become	
  commonplace	
  
•  This	
  will	
  accelerate	
  innova<ons	
  in	
  networking	
  
•  No	
  more	
  “black	
  boxes”	
  in	
  “white	
  boxes”	
  
•  As	
  the	
  common	
  industry-­‐wide	
  forwarding	
  language,	
  
P4	
  will	
  play	
  crucial	
  roles	
  
•  Lots	
  of	
  R&D	
  and	
  business	
  opportuni<es	
  opening	
  up	
  –	
  
join	
  and	
  contribute!	
  
30	
  
How	
  to	
  keep	
  in	
  touch?	
  
•  Join	
  P4.org	
  
–  p4-­‐dev@p4.org	
  
–  p4-­‐discuss@p4.org	
  
–  p4-­‐announce@p4.org	
  
•  Assign	
  engineers	
  to	
  get	
  familiar	
  with	
  P4	
  
•  Start	
  playing	
  tools,	
  language,	
  and	
  sample	
  P4	
  code	
  
•  Contribute	
  back	
  to	
  P4.org	
  
31	
  

More Related Content

What's hot

MUM Melbourne : Build Enterprise Wireless with CAPsMAN
MUM Melbourne : Build Enterprise Wireless with CAPsMANMUM Melbourne : Build Enterprise Wireless with CAPsMAN
MUM Melbourne : Build Enterprise Wireless with CAPsMANGLC Networks
 
Ch 02 --- sdn and openflow architecture
Ch 02 --- sdn and openflow architectureCh 02 --- sdn and openflow architecture
Ch 02 --- sdn and openflow architectureYoram Orzach
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsBrendan Gregg
 
Network Monitoring with The Dude and Whatsapp
Network Monitoring with The Dude and WhatsappNetwork Monitoring with The Dude and Whatsapp
Network Monitoring with The Dude and WhatsappGLC Networks
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Weaveworks
 
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGate
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGatePLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGate
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGatePROIDEA
 
Module 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsModule 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsTail-f Systems
 
Build enterprise wireless with CAPsMAN
Build enterprise wireless with CAPsMANBuild enterprise wireless with CAPsMAN
Build enterprise wireless with CAPsMANGLC Networks
 
Choosing Mikrotik Platform x86 vs chr
Choosing Mikrotik Platform x86 vs chrChoosing Mikrotik Platform x86 vs chr
Choosing Mikrotik Platform x86 vs chrGLC Networks
 
NGINX ADC: Basics and Best Practices – EMEA
NGINX ADC: Basics and Best Practices – EMEANGINX ADC: Basics and Best Practices – EMEA
NGINX ADC: Basics and Best Practices – EMEANGINX, Inc.
 
Juniper Srx quickstart-12.1r3
Juniper Srx quickstart-12.1r3Juniper Srx quickstart-12.1r3
Juniper Srx quickstart-12.1r3Mohamed Al-Natour
 
SDN Fundamentals - short presentation
SDN Fundamentals -  short presentationSDN Fundamentals -  short presentation
SDN Fundamentals - short presentationAzhar Khuwaja
 
Mikrotik IP Settings For Performance and Security
Mikrotik IP Settings For Performance and SecurityMikrotik IP Settings For Performance and Security
Mikrotik IP Settings For Performance and SecurityGLC Networks
 
Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Tail-f Systems
 

What's hot (20)

MUM Melbourne : Build Enterprise Wireless with CAPsMAN
MUM Melbourne : Build Enterprise Wireless with CAPsMANMUM Melbourne : Build Enterprise Wireless with CAPsMAN
MUM Melbourne : Build Enterprise Wireless with CAPsMAN
 
Network automation (NetDevOps) with Ansible
Network automation (NetDevOps) with AnsibleNetwork automation (NetDevOps) with Ansible
Network automation (NetDevOps) with Ansible
 
Ch 02 --- sdn and openflow architecture
Ch 02 --- sdn and openflow architectureCh 02 --- sdn and openflow architecture
Ch 02 --- sdn and openflow architecture
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
Network Monitoring with The Dude and Whatsapp
Network Monitoring with The Dude and WhatsappNetwork Monitoring with The Dude and Whatsapp
Network Monitoring with The Dude and Whatsapp
 
VLAN vs VXLAN
VLAN vs VXLANVLAN vs VXLAN
VLAN vs VXLAN
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)
 
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGate
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGatePLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGate
PLNOG 9: Robert Dąbrowski - Carrier-grade NAT (CGN) Solution with FortiGate
 
Module 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsModule 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG Concepts
 
Build enterprise wireless with CAPsMAN
Build enterprise wireless with CAPsMANBuild enterprise wireless with CAPsMAN
Build enterprise wireless with CAPsMAN
 
Choosing Mikrotik Platform x86 vs chr
Choosing Mikrotik Platform x86 vs chrChoosing Mikrotik Platform x86 vs chr
Choosing Mikrotik Platform x86 vs chr
 
NGINX ADC: Basics and Best Practices – EMEA
NGINX ADC: Basics and Best Practices – EMEANGINX ADC: Basics and Best Practices – EMEA
NGINX ADC: Basics and Best Practices – EMEA
 
Near rt ric tc
Near rt ric tcNear rt ric tc
Near rt ric tc
 
Juniper Srx quickstart-12.1r3
Juniper Srx quickstart-12.1r3Juniper Srx quickstart-12.1r3
Juniper Srx quickstart-12.1r3
 
SDN Fundamentals - short presentation
SDN Fundamentals -  short presentationSDN Fundamentals -  short presentation
SDN Fundamentals - short presentation
 
Wireshark tutorial
Wireshark tutorialWireshark tutorial
Wireshark tutorial
 
IPSec and VPN
IPSec and VPNIPSec and VPN
IPSec and VPN
 
Mikrotik IP Settings For Performance and Security
Mikrotik IP Settings For Performance and SecurityMikrotik IP Settings For Performance and Security
Mikrotik IP Settings For Performance and Security
 
Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 

Viewers also liked

CORD: Central Office Re-architected as a Datacenter
CORD: Central Office Re-architected as a DatacenterCORD: Central Office Re-architected as a Datacenter
CORD: Central Office Re-architected as a DatacenterOpen Networking Summits
 
Programming Protocol-Independent Packet Processors
Programming Protocol-Independent Packet ProcessorsProgramming Protocol-Independent Packet Processors
Programming Protocol-Independent Packet ProcessorsOpen Networking Summits
 
Programmable Data Plane at Terabit Speeds
Programmable Data Plane at Terabit SpeedsProgrammable Data Plane at Terabit Speeds
Programmable Data Plane at Terabit SpeedsBarefoot Networks
 
Onos overview meetup sdn paris - redux
Onos overview  meetup sdn paris - reduxOnos overview  meetup sdn paris - redux
Onos overview meetup sdn paris - reduxSDN_Paris
 
At&t, ON Lab, ONOS project, Sckipio and PMC to unveil cord solution poc at op...
At&t, ON Lab, ONOS project, Sckipio and PMC to unveil cord solution poc at op...At&t, ON Lab, ONOS project, Sckipio and PMC to unveil cord solution poc at op...
At&t, ON Lab, ONOS project, Sckipio and PMC to unveil cord solution poc at op...Sckipio
 
Programmable data plane at terabit speeds
Programmable data plane at terabit speedsProgrammable data plane at terabit speeds
Programmable data plane at terabit speedsBarefoot Networks
 
P4 for Custom Identification, Flow Tagging, Monitoring and Control
P4 for Custom Identification, Flow Tagging, Monitoring and ControlP4 for Custom Identification, Flow Tagging, Monitoring and Control
P4 for Custom Identification, Flow Tagging, Monitoring and ControlOpen-NFP
 
Whitebox Switches Deployment Experience
Whitebox Switches Deployment ExperienceWhitebox Switches Deployment Experience
Whitebox Switches Deployment ExperienceAPNIC
 
DESIGN OF BARE METAL FABRICS - Built with SDN, Bare Metal Switches, and Merch...
DESIGN OF BARE METAL FABRICS - Built with SDN, Bare Metal Switches, and Merch...DESIGN OF BARE METAL FABRICS - Built with SDN, Bare Metal Switches, and Merch...
DESIGN OF BARE METAL FABRICS - Built with SDN, Bare Metal Switches, and Merch...Open Networking Summits
 
Open Networking Revolution
Open Networking RevolutionOpen Networking Revolution
Open Networking RevolutionAPNIC
 
XOS in open CORD project
XOS in open CORD projectXOS in open CORD project
XOS in open CORD projectsangyun han
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefMatt Ray
 
Network Telemetry: Pushing Boundaries
Network Telemetry: Pushing BoundariesNetwork Telemetry: Pushing Boundaries
Network Telemetry: Pushing BoundariesRam (Ramki) Krishnan
 
Global Forum Presentation: Brent Olson, Vice President of Public Policy AT&T
Global Forum Presentation: Brent Olson, Vice President of Public Policy AT&TGlobal Forum Presentation: Brent Olson, Vice President of Public Policy AT&T
Global Forum Presentation: Brent Olson, Vice President of Public Policy AT&TGlobalForum
 
Codestrong 2012 breakout session exploring the new titanium command line in...
Codestrong 2012 breakout session   exploring the new titanium command line in...Codestrong 2012 breakout session   exploring the new titanium command line in...
Codestrong 2012 breakout session exploring the new titanium command line in...Axway Appcelerator
 
VXLAN Distributed Service Node
VXLAN Distributed Service NodeVXLAN Distributed Service Node
VXLAN Distributed Service NodeDavid Lapsley
 

Viewers also liked (20)

CORD: Central Office Re-architected as a Datacenter
CORD: Central Office Re-architected as a DatacenterCORD: Central Office Re-architected as a Datacenter
CORD: Central Office Re-architected as a Datacenter
 
Programming Protocol-Independent Packet Processors
Programming Protocol-Independent Packet ProcessorsProgramming Protocol-Independent Packet Processors
Programming Protocol-Independent Packet Processors
 
Programmable Data Plane at Terabit Speeds
Programmable Data Plane at Terabit SpeedsProgrammable Data Plane at Terabit Speeds
Programmable Data Plane at Terabit Speeds
 
Onos overview meetup sdn paris - redux
Onos overview  meetup sdn paris - reduxOnos overview  meetup sdn paris - redux
Onos overview meetup sdn paris - redux
 
At&t, ON Lab, ONOS project, Sckipio and PMC to unveil cord solution poc at op...
At&t, ON Lab, ONOS project, Sckipio and PMC to unveil cord solution poc at op...At&t, ON Lab, ONOS project, Sckipio and PMC to unveil cord solution poc at op...
At&t, ON Lab, ONOS project, Sckipio and PMC to unveil cord solution poc at op...
 
Programmable data plane at terabit speeds
Programmable data plane at terabit speedsProgrammable data plane at terabit speeds
Programmable data plane at terabit speeds
 
1548 PROJECT DEMO
1548 PROJECT DEMO1548 PROJECT DEMO
1548 PROJECT DEMO
 
P4 for Custom Identification, Flow Tagging, Monitoring and Control
P4 for Custom Identification, Flow Tagging, Monitoring and ControlP4 for Custom Identification, Flow Tagging, Monitoring and Control
P4 for Custom Identification, Flow Tagging, Monitoring and Control
 
Whitebox Switches Deployment Experience
Whitebox Switches Deployment ExperienceWhitebox Switches Deployment Experience
Whitebox Switches Deployment Experience
 
DESIGN OF BARE METAL FABRICS - Built with SDN, Bare Metal Switches, and Merch...
DESIGN OF BARE METAL FABRICS - Built with SDN, Bare Metal Switches, and Merch...DESIGN OF BARE METAL FABRICS - Built with SDN, Bare Metal Switches, and Merch...
DESIGN OF BARE METAL FABRICS - Built with SDN, Bare Metal Switches, and Merch...
 
The “Open” in Open Networking
The “Open” in Open NetworkingThe “Open” in Open Networking
The “Open” in Open Networking
 
Open Networking Revolution
Open Networking RevolutionOpen Networking Revolution
Open Networking Revolution
 
Route maps
Route mapsRoute maps
Route maps
 
XOS in open CORD project
XOS in open CORD projectXOS in open CORD project
XOS in open CORD project
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
Network Telemetry: Pushing Boundaries
Network Telemetry: Pushing BoundariesNetwork Telemetry: Pushing Boundaries
Network Telemetry: Pushing Boundaries
 
Lec18
Lec18Lec18
Lec18
 
Global Forum Presentation: Brent Olson, Vice President of Public Policy AT&T
Global Forum Presentation: Brent Olson, Vice President of Public Policy AT&TGlobal Forum Presentation: Brent Olson, Vice President of Public Policy AT&T
Global Forum Presentation: Brent Olson, Vice President of Public Policy AT&T
 
Codestrong 2012 breakout session exploring the new titanium command line in...
Codestrong 2012 breakout session   exploring the new titanium command line in...Codestrong 2012 breakout session   exploring the new titanium command line in...
Codestrong 2012 breakout session exploring the new titanium command line in...
 
VXLAN Distributed Service Node
VXLAN Distributed Service NodeVXLAN Distributed Service Node
VXLAN Distributed Service Node
 

Similar to [Webinar Slides] Programming the Network Dataplane in P4

OSN days 2019 - Open Networking and Programmable Switch
OSN days 2019 - Open Networking and Programmable SwitchOSN days 2019 - Open Networking and Programmable Switch
OSN days 2019 - Open Networking and Programmable SwitchChun Ming Ou
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Michelle Holley
 
Software defined network and Virtualization
Software defined network and VirtualizationSoftware defined network and Virtualization
Software defined network and Virtualizationidrajeev
 
Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017Cheng-Chun William Tu
 
Snabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporterSnabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporterIgalia
 
Rina p4 rina workshop
Rina p4   rina workshopRina p4   rina workshop
Rina p4 rina workshopEduard Grasa
 
Stacks and Layers: Integrating P4, C, OVS and OpenStack
Stacks and Layers: Integrating P4, C, OVS and OpenStackStacks and Layers: Integrating P4, C, OVS and OpenStack
Stacks and Layers: Integrating P4, C, OVS and OpenStackOpen-NFP
 
D. Fast, Simple User-Space Network Functions with Snabb (RIPE 77)
D. Fast, Simple User-Space Network Functions with Snabb (RIPE 77)D. Fast, Simple User-Space Network Functions with Snabb (RIPE 77)
D. Fast, Simple User-Space Network Functions with Snabb (RIPE 77)Igalia
 
2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful ServicesThomas Graf
 
Analise NetFlow in Real Time
Analise NetFlow in Real TimeAnalise NetFlow in Real Time
Analise NetFlow in Real TimePiotr Perzyna
 
Optimization of Low-efficiency Traffic in OpenFlow Software Defined Networks
Optimization of Low-efficiency Traffic in OpenFlowSoftware Defined NetworksOptimization of Low-efficiency Traffic in OpenFlowSoftware Defined Networks
Optimization of Low-efficiency Traffic in OpenFlow Software Defined NetworksJose Saldana
 
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...PROIDEA
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPThomas Graf
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThomas Graf
 
How to use Parquet as a Sasis for ETL and Analytics
How to use Parquet as a Sasis for ETL and AnalyticsHow to use Parquet as a Sasis for ETL and Analytics
How to use Parquet as a Sasis for ETL and AnalyticsDataWorks Summit
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorialopenflow
 
High Performance Flow Matching Architecture for Openflow Data Plane
High Performance Flow Matching Architecture for Openflow Data PlaneHigh Performance Flow Matching Architecture for Openflow Data Plane
High Performance Flow Matching Architecture for Openflow Data PlaneMahesh Dananjaya
 

Similar to [Webinar Slides] Programming the Network Dataplane in P4 (20)

OSN days 2019 - Open Networking and Programmable Switch
OSN days 2019 - Open Networking and Programmable SwitchOSN days 2019 - Open Networking and Programmable Switch
OSN days 2019 - Open Networking and Programmable Switch
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
 
Software defined network and Virtualization
Software defined network and VirtualizationSoftware defined network and Virtualization
Software defined network and Virtualization
 
Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017
 
Snabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporterSnabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporter
 
Rina p4 rina workshop
Rina p4   rina workshopRina p4   rina workshop
Rina p4 rina workshop
 
Stacks and Layers: Integrating P4, C, OVS and OpenStack
Stacks and Layers: Integrating P4, C, OVS and OpenStackStacks and Layers: Integrating P4, C, OVS and OpenStack
Stacks and Layers: Integrating P4, C, OVS and OpenStack
 
Ccna Imp Guide
Ccna Imp GuideCcna Imp Guide
Ccna Imp Guide
 
D. Fast, Simple User-Space Network Functions with Snabb (RIPE 77)
D. Fast, Simple User-Space Network Functions with Snabb (RIPE 77)D. Fast, Simple User-Space Network Functions with Snabb (RIPE 77)
D. Fast, Simple User-Space Network Functions with Snabb (RIPE 77)
 
2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services
 
Analise NetFlow in Real Time
Analise NetFlow in Real TimeAnalise NetFlow in Real Time
Analise NetFlow in Real Time
 
Optimization of Low-efficiency Traffic in OpenFlow Software Defined Networks
Optimization of Low-efficiency Traffic in OpenFlowSoftware Defined NetworksOptimization of Low-efficiency Traffic in OpenFlowSoftware Defined Networks
Optimization of Low-efficiency Traffic in OpenFlow Software Defined Networks
 
Using Netconf/Yang with OpenDalight
Using Netconf/Yang with OpenDalightUsing Netconf/Yang with OpenDalight
Using Netconf/Yang with OpenDalight
 
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
 
How to use Parquet as a Sasis for ETL and Analytics
How to use Parquet as a Sasis for ETL and AnalyticsHow to use Parquet as a Sasis for ETL and Analytics
How to use Parquet as a Sasis for ETL and Analytics
 
FD.io - The Universal Dataplane
FD.io - The Universal DataplaneFD.io - The Universal Dataplane
FD.io - The Universal Dataplane
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
High Performance Flow Matching Architecture for Openflow Data Plane
High Performance Flow Matching Architecture for Openflow Data PlaneHigh Performance Flow Matching Architecture for Openflow Data Plane
High Performance Flow Matching Architecture for Openflow Data Plane
 

More from Open Networking Summits

OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...Open Networking Summits
 
Software Defined Networking: Enabling The Mobile Workplace
Software Defined Networking: Enabling The Mobile WorkplaceSoftware Defined Networking: Enabling The Mobile Workplace
Software Defined Networking: Enabling The Mobile WorkplaceOpen Networking Summits
 
Software Defined Networks Network Function Virtualization Pivotal Technologies
Software Defined Networks Network Function Virtualization Pivotal TechnologiesSoftware Defined Networks Network Function Virtualization Pivotal Technologies
Software Defined Networks Network Function Virtualization Pivotal TechnologiesOpen Networking Summits
 
Spreading NFV through the Network: the ETSI NFV use cases
Spreading NFV through the Network: the ETSI NFV use casesSpreading NFV through the Network: the ETSI NFV use cases
Spreading NFV through the Network: the ETSI NFV use casesOpen Networking Summits
 
Ranges & Cross-Entrance Consistency with OpenFlow
Ranges & Cross-Entrance Consistency with OpenFlowRanges & Cross-Entrance Consistency with OpenFlow
Ranges & Cross-Entrance Consistency with OpenFlowOpen Networking Summits
 
On the Necessity of Time-based Updates in SDN
On the Necessity of Time-based Updates in SDNOn the Necessity of Time-based Updates in SDN
On the Necessity of Time-based Updates in SDNOpen Networking Summits
 
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...Open Networking Summits
 
ESPRES: Easy Scheduling and Prioritization for SDN
ESPRES: Easy Scheduling and Prioritization for SDNESPRES: Easy Scheduling and Prioritization for SDN
ESPRES: Easy Scheduling and Prioritization for SDNOpen Networking Summits
 
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATIONSDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATIONOpen Networking Summits
 
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANsSoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANsOpen Networking Summits
 
RadioVisor - A Slicing Plane for Radio Access Networks
RadioVisor - A Slicing Plane for Radio Access NetworksRadioVisor - A Slicing Plane for Radio Access Networks
RadioVisor - A Slicing Plane for Radio Access NetworksOpen Networking Summits
 
Enabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsEnabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsOpen Networking Summits
 
Accelerating SDN/NFV with transparent offloading architecture
Accelerating SDN/NFV with transparent offloading architectureAccelerating SDN/NFV with transparent offloading architecture
Accelerating SDN/NFV with transparent offloading architectureOpen Networking Summits
 
Serial Composition of Heterogeneous Control Planes
Serial Composition of Heterogeneous Control PlanesSerial Composition of Heterogeneous Control Planes
Serial Composition of Heterogeneous Control PlanesOpen Networking Summits
 

More from Open Networking Summits (20)

OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
 
Learnings from Carrier SDN Deployments
Learnings from Carrier SDN DeploymentsLearnings from Carrier SDN Deployments
Learnings from Carrier SDN Deployments
 
Software Defined Networking: Enabling The Mobile Workplace
Software Defined Networking: Enabling The Mobile WorkplaceSoftware Defined Networking: Enabling The Mobile Workplace
Software Defined Networking: Enabling The Mobile Workplace
 
Application Driven SDN
Application Driven SDNApplication Driven SDN
Application Driven SDN
 
Software Defined Networks Network Function Virtualization Pivotal Technologies
Software Defined Networks Network Function Virtualization Pivotal TechnologiesSoftware Defined Networks Network Function Virtualization Pivotal Technologies
Software Defined Networks Network Function Virtualization Pivotal Technologies
 
NFV & SDN Customer Deployments
NFV & SDN Customer DeploymentsNFV & SDN Customer Deployments
NFV & SDN Customer Deployments
 
Automation of end-to-end QOS
Automation of end-to-end QOSAutomation of end-to-end QOS
Automation of end-to-end QOS
 
Building a Digital Telco
Building a Digital TelcoBuilding a Digital Telco
Building a Digital Telco
 
Spreading NFV through the Network: the ETSI NFV use cases
Spreading NFV through the Network: the ETSI NFV use casesSpreading NFV through the Network: the ETSI NFV use cases
Spreading NFV through the Network: the ETSI NFV use cases
 
BeHop : SDN for Dense WiFi Networks
BeHop : SDN for Dense WiFi NetworksBeHop : SDN for Dense WiFi Networks
BeHop : SDN for Dense WiFi Networks
 
Ranges & Cross-Entrance Consistency with OpenFlow
Ranges & Cross-Entrance Consistency with OpenFlowRanges & Cross-Entrance Consistency with OpenFlow
Ranges & Cross-Entrance Consistency with OpenFlow
 
On the Necessity of Time-based Updates in SDN
On the Necessity of Time-based Updates in SDNOn the Necessity of Time-based Updates in SDN
On the Necessity of Time-based Updates in SDN
 
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
 
ESPRES: Easy Scheduling and Prioritization for SDN
ESPRES: Easy Scheduling and Prioritization for SDNESPRES: Easy Scheduling and Prioritization for SDN
ESPRES: Easy Scheduling and Prioritization for SDN
 
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATIONSDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
 
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANsSoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
 
RadioVisor - A Slicing Plane for Radio Access Networks
RadioVisor - A Slicing Plane for Radio Access NetworksRadioVisor - A Slicing Plane for Radio Access Networks
RadioVisor - A Slicing Plane for Radio Access Networks
 
Enabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsEnabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing Protocols
 
Accelerating SDN/NFV with transparent offloading architecture
Accelerating SDN/NFV with transparent offloading architectureAccelerating SDN/NFV with transparent offloading architecture
Accelerating SDN/NFV with transparent offloading architecture
 
Serial Composition of Heterogeneous Control Planes
Serial Composition of Heterogeneous Control PlanesSerial Composition of Heterogeneous Control Planes
Serial Composition of Heterogeneous Control Planes
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

[Webinar Slides] Programming the Network Dataplane in P4

  • 1. Programming   The  Network  Data  Plane  in  P4     Changhoon  Kim  (chang@barefootnetworks.com)   P4  Language  Consor9um  –  www.p4.org  
  • 2. Status  quo   2   Switch  OS   Run-­‐<me  API   Driver  “This  is  roughly  how  I  process   packets  …”     Fixed-­‐func<on  ASIC   in  English   •  Prone  to  bugs   •  Very  long  and  unpredictable  lead  9me  
  • 3. Protocols  evolve  …   more  rapidly  than  we  wish  they  would     •  Encapsula<on  protocols  for  network  virtualiza<on   –  1st  gen  (~2010):  VXLAN,  NVGRE   –  2nd  gen  (~2012):  STT,  VXLAN-­‐GPE   –  3rd  gen  (~2014):  NSH,  Geneve   •  OpenFlow   –  OF  1.0  (Dec  2009):  12  fields  (Ethernet,  TCP,  IPv4)   –  OF  1.1  (Feb  2011):  15  fields  (MPLS,  inter-­‐table  metadata)   –  OF  1.2  (Dec  2011):  36  fields  (ARP,  ICMP,  IPv6)   –  OF  1.3  (Jun  2012):  40  fields   –  OF  1.4  (Oct  2013):  41  fields   –  OF  1.5  (Dec  2014):  44  fields   3   Everybody  has  opinions!   Can’t  we  just  let  them  build  their  own  protocols?  
  • 4. Programmable  network  devices   •  Some  devices  are  or  will  be  more  programmable  than   fixed-­‐func<on  ASICs   •  CPUs:  10s  of  Gb/s   •  FPGAs,  NPUs:  100s  of  Gb/s   •  Protocol-­‐independent  switch  ASICs:  a  few  Tb/s   –  RMT  [SIGCOMM’13]  and  a  few  emerging  solu<ons   –  Merchant  silicon  with  fully  programmable  parser  and   generic  match-­‐ac<on  logic   –  In  next  few  years  this  kind  of  silicon  will  dominate   4  
  • 5. Turning  the  tables   5   Switch  OS   Run-­‐<me  API   Driver   PISA  device   (Protocol-­‐Independent  Switch  Architecture)   “This  is  precisely  how  you   must  process  packets”   in  P4  
  • 6. What  does  this  mean?   •  To  network  device  vendors   –  S/W  programming  prac<ces  and  tools  used  in  every  phase   –  Extremely  fast  itera<on  and  feature  release   –  Differen<a<on  in  capabili<es  and  performance   –  Can  fix  even  data-­‐plane  bugs  in  the  field   •  To  large  on-­‐line  service  providers   –  No  more  “black  boxes”  in  the  “white  boxes”   –  Your  devs  can  program,  test,  and  debug  your  network  devices   all  the  way  down   –  You  keep  your  own  ideas   6  
  • 7. 7   Why  we  call  it   protocol-­‐independent  packet   processing  
  • 8. Logical  Data-­‐plane  View   (your  P4  program)   Switch  Pipeline   Device  does  not  understand  any  protocols  un9l   it  gets  programmed   Queues   Programmable   Parser   Fixed  Ac<on   Match  Table   Match  Table   Match  Table   Match  Table   L2   IPv4   IPv6   ACL   Ac<on  ALUs   Ac<on  ALUs   Ac<on  ALUs   Ac<on  ALUs   8   packet  packet   packet  packet   CLK  
  • 9. Match  Table   Ac<on  ALUs   Mapping  logical  data-­‐plane  design  to   physical  resources   Queues   Match  Table   Match  Table   Match  Table   L2  Table   IPv4  Table   IPv6  Table   ACL  Table   Ac<on  ALUs   Ac<on  ALUs   Ac<on  ALUs   L2   IPv4   IPv6   ACL   Logical  Data-­‐plane  View   (your  P4  program)   Switch  Pipeline   L2   IPv6   ACL   IPv4   L2  Ac<on  Macro   v4  Ac<on  Macro   v6  Ac<on  Macro     ACL  Ac<on  Macro   9   Programmable   Parser   CLK  
  • 10. Re-­‐configurability   L2  Table   IPv4  Table   ACL  Table   IPv6  Table   MyEn cap   L2   IPv4   IPv6   ACL   MyEncap   L2  Ac<on  Macro   v4  Ac<on  Macro   ACL  Ac<on  Macro   Ac<on   MyEncap   v6  Ac<on  Macro   IPv4   Ac<on   IPv4   Ac<on   10   IPv6   Ac<on   IPv6   Programmable   Parser   CLK   Logical  Data-­‐plane  View   (your  P4  program)   Switch  Pipeline   Queues  
  • 11. What  does  a  P4  program  look  like?   11   L2   IPv4   ACL  MyEncap  MyEncap   IPv6   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   IPv4   IPv6   MyEncap  Eth   header_type my_encap_t { fields { foo : 12; bar : 8; baz : 4; qux : 4; next_protocol : 4; } }
  • 12. What  does  a  P4  program  look  like?   12   L2   IPv4   ACL  MyEncap  MyEncap   IPv6   TCP   IPv4   IPv6   MyEncap  Eth   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; options : *; } length : (ihl << 2); max_length : 60; }
  • 13. What  does  a  P4  program  look  like?   13   L2   IPv4   ACL  MyEncap  MyEncap   IPv6   table ipv4_lpm { reads { ipv4.dstAddr : lpm; } actions { set_next_hop; drop; } } action set_next_hop(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); } control ingress { apply(l2); apply(my_encap); if (valid(ipv4) { apply(ipv4_lpm); } else { apply(ipv6_lpm); } apply(acl); }
  • 14. /* Example: A typical IPv4 routing table */ table ipv4_lpm { reads { ingress_metadata.vrf : exact; ipv4.dstAddr : lpm; } actions { nop; l3_l2_switch; l3_multicast; l3_nexthop; l3_ecmp; l3_drop; } size : 65536; } What  does  a  P4  program  look  like?   14   vrf   ipv4.dstAddr  /  prefix   ac9on   data   1   192.168.1.0    /  24   l3_l2_switch   port_id=64   10   10.0.16.0  /  22   l3_ecmp   ecmp_index=12   1   192.168.0.0  /  16   l3_nexthop   nexthop_index=451   1   0.0.0.0  /  0   l3_nexthop   nexthop_index=1   These  are  the  only  possible  ac<ons.   Each  par<cular  entry  in  the  table  is   associated  with  ONE  of  these  
  • 15. What  does  a  P4  program  look  like?   •  Match  seman<cs   –  exact •  port_index  :  exact   –  ternary •  ethernet.srcAddr  :  ternary   –  valid •  vlan_tag[0]  :  valid   –  lpm   •  ipv4.dstAddr  :  lpm   –  range •  udp.dstPort  :  range   15  
  • 16. What  does  a  P4  program  look  like?   •  Primi<ve  ac<ons   –  modify_field, add_to_field, add, set_field_to_hash_index –  add_header, remove_header, copy_header –  push, pop –  count, meter –  generate_digest, truncate –  resubmit, recirculate –  clone_* –  no_op, drop   16  
  • 17. My  (running)  switch   MyNetVirtualiza9on  (your  new  protocol)   Forwarding  Logic  (P4)   Table  Popula<on   Tenant  Isola<on   Logic   Linux   Switch  Chip  Driver   Switch  Run<me  API   Table  Popula<on   Tenant  Isola<on  Logic   Compiled   Forwarding  Logic   Parser   Program   Control  Flow   Match  Tables   +  Ac9ons   Compiler   PISA    chip   Add/delete   (run  <me)  Program   (boot  or  init  <me)  
  • 18. DEMO!   18   In-­‐band  Network  Telemetry  (INT)   hnp://p4.org/p4/inband-­‐network-­‐telemetry/    
  • 19. Demo  Setup   19   SW-­‐n   Sim  Model   SW-­‐1   Sim  Model     Control   Plane   Compiler   SW  Ctrl  API   /* Reference p4 program switch.p4 */ #include "includes/headers.p4" #include "includes/parser.p4” /********************************/ /* Device Personality Selection */ /********************************/ // #define P_MINIMAL #define P_BASE //#define P_MSDC_SPINE //#define P_MSDC_TOR //#define P_MSDC_BL //#define P_INTERNET_ROUTER ... // Flexible Tables #define LPM_TABLE_SIZE 16384 #define IPV6_LPM_TABLE_SIZE 4096 #define HOST_TABLE_SIZE 131072 #define IPV6_HOST_TABLE_SIZE 32768 ... header_type routing_metadata_t { fields { bd : BD_BIT_WIDTH; /* bridge domain */ vrf : VRF_BIT_WIDTH; /* routing domain */ v6_vrf : VRF_BIT_WIDTH; /* routing domain */ ... table bridge_domain { reads { routing_metadata.bd : exact; } actions { nop; // Not used bd_set; … Switch  Data-­‐plane   Configura9on   Auto-­‐generated   API   .          .                  .   Control   Plane   SW  Ctrl  API   Run-­‐;me   table  update   Run-­‐;me   table  update  
  • 20. Scenario:  Debugging  Long  Latency  Tail   20   SW1   (dc.p4)   H1   H2   H3   5Mbps   SW2   (dc.p4)   20Mbps   Monitor  5Mbps   20Mbps   5Mbps   SW3   (dc.p4)   HTTP  download   (from  H1  to  H3)  
  • 21. In-­‐band  Network  Telemetry  in  P4   21   table int_table { reads { ip.protocol; } actions { export_queue_latency; } } Add  TCP  Op<ons  &   copy  switch  ID  and  queue  latency   Into  the  op<ons   action export_queue_latency (sw_id) { add_header(int_header); modify_field(int_header.kind, TCP_OPTION_INT); modify_field(int_header.len, TCP_OPTION_INT_LEN); modify_field(int_header.sw_id, sw_id); modify_field(int_header.q_latency, intrinsic_metadata.deq_timedelta); add_to_field(tcp.dataOffset, 2); add_to_field(ipv4.totalLen, 8); subtract_from_field(ingress_metadata.tcpLength, 12); }
  • 22. INT  Open-­‐source  and  Spec   •  hnp://p4.org/p4/inband-­‐network-­‐telemetry/   22   Spec   Ref  P4  code   Demo  
  • 23. This  will  accelerate  innova9ons   •  Areas  of  innova<on  (just  to  name  a  few)   –  Reducing  feature  set  à  “biggest  bang  for  buck”   –  Network  monitoring,  analysis,  and  diagnos<cs   –  Tunnel-­‐splicing  gateways   –  Load  balancing   –  Anack  detec<on  and  mi<ga<on   –  Host-­‐stack  offloading   •  Across  various  types  of  network  devices   –  Hardware  and  sosware  devices  (OVS,  eBPF,  etc.)   –  Switches,  NICs,  middle-­‐boxes,  etc.   23  
  • 24. This  will  create  lots  of  significant  R&D  and   business  opportuni9es   •  Novel  network  and  protocol  designs   –  Take  advantage  of  unprecedented  amount  of  visibility  and   control  into  the  network   –  Joint  design  and  op<miza<on  between  hosts  and  network   •  Development  tools   –  Compilers,  debuggers,  sta<c  analyzers,  profilers,  etc.   –  P4-­‐programming  assistance  tools   •  Network  verifica<on,  test,  and  simula<on   •  Many  more  …   24  
  • 25. P4.org  –  P4  Language  Consor9um   25   Maintains  the   language  spec  
  • 26. P4.org  –  P4  Language  Consor9um   26   Maintains  key  dev  tools  under   Apache  license     •  Reference  P4  programs   •  Compiler   •  P4  sosware  switch   •  Test  framework  
  • 27. P4.org  –  P4  Language  Consor9um   27   Open  for  par9cipa9on  by   any  individuals  or   organiza9ons  
  • 28. P4.org  –  P4  Language  Consor9um   28   Hosts  P4  workshops  and  boot  camps     •  2nd  P4  Workshop  on  Nov/18  at  Stanford   •  1st  P4  Boot  camp  in  the  same  week  
  • 29. Switch.p4:  A  typical  L2/L3  switch  in  P4   •  Feature  set   –  Basic  L2  switching:  MAC  learning,  VLAN,  flooding,  and  STP   –  Basic  L3  rou<ng:  IPv4  and  IPv4  rou<ng  with  VRF   –  LAG  and  ECMP   –  Tunneling:  VXLAN,  NVGRE,  Geneve,  and  GRE   –  Basic  ACL:  MAC  and  IP  ACLs   –  Unicast  RPF   –  MPLS:  LER,  LSR,  IPVPN,  VPLS,  and  L2VPN   –  Host  interface   –  Mirroring:  Ingress  and  egress  mirroring  with  ERSPAN   –  Counters/Sta<s<cs   •  More  features  coming  soon   –  IP  Mul<cast,  NAT,  QoS,  Ingress  policing,  etc.   29  
  • 30. Summary   •  In  next  few  years  data-­‐plane  programmability  will   quickly  become  commonplace   •  This  will  accelerate  innova<ons  in  networking   •  No  more  “black  boxes”  in  “white  boxes”   •  As  the  common  industry-­‐wide  forwarding  language,   P4  will  play  crucial  roles   •  Lots  of  R&D  and  business  opportuni<es  opening  up  –   join  and  contribute!   30  
  • 31. How  to  keep  in  touch?   •  Join  P4.org   –  p4-­‐dev@p4.org   –  p4-­‐discuss@p4.org   –  p4-­‐announce@p4.org   •  Assign  engineers  to  get  familiar  with  P4   •  Start  playing  tools,  language,  and  sample  P4  code   •  Contribute  back  to  P4.org   31