Suche senden
Hochladen
Linkmeup v076(2019-06).2
•
1 gefällt mir
•
9,506 views
E
eucariot
Folgen
P4 in 45 minutes
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 27
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Linkmeup v076 (2019-06)
Linkmeup v076 (2019-06)
eucariot
P4 Introduction
P4 Introduction
Netronome
Programmable data plane at terabit speeds
Programmable data plane at terabit speeds
Barefoot Networks
Cisco Live Milan 2015 - BGP advance
Cisco Live Milan 2015 - BGP advance
Bertrand Duvivier
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4
Open Networking Summits
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
VPP for Stateless SRv6/GTP-U Translation
VPP for Stateless SRv6/GTP-U Translation
Satoru Matsushima
Routing basics/CEF
Routing basics/CEF
Dmitry Figol
Empfohlen
Linkmeup v076 (2019-06)
Linkmeup v076 (2019-06)
eucariot
P4 Introduction
P4 Introduction
Netronome
Programmable data plane at terabit speeds
Programmable data plane at terabit speeds
Barefoot Networks
Cisco Live Milan 2015 - BGP advance
Cisco Live Milan 2015 - BGP advance
Bertrand Duvivier
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4
Open Networking Summits
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
VPP for Stateless SRv6/GTP-U Translation
VPP for Stateless SRv6/GTP-U Translation
Satoru Matsushima
Routing basics/CEF
Routing basics/CEF
Dmitry Figol
BGP Advance Technique by Steven & James
BGP Advance Technique by Steven & James
Febrian
BGP Traffic Engineering / Routing Optimisation
BGP Traffic Engineering / Routing Optimisation
Andy Davidson
BGP Monitoring Protocol
BGP Monitoring Protocol
Bertrand Duvivier
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Kentaro Ebisawa
BGP
BGP
Anıl Alibeyoğlu
BGP Traffic Engineering with SDN Controller
BGP Traffic Engineering with SDN Controller
APNIC
WAN SDN meet Segment Routing
WAN SDN meet Segment Routing
APNIC
Troubleshooting BGP
Troubleshooting BGP
Duane Bodle
20170925 onos and p4
20170925 onos and p4
Yi Tseng
p4srv6 (P4-16) design document rev1.0
p4srv6 (P4-16) design document rev1.0
Kentaro Ebisawa
Programming the Network Data Plane
Programming the Network Data Plane
C4Media
Stratix V FPGA Intro Presentation
Stratix V FPGA Intro Presentation
Altera Corporation
FreeTDM PRI Passive Recording
FreeTDM PRI Passive Recording
Moises Silva
SRv6 Mobile User Plane : Initial POC and Implementation
SRv6 Mobile User Plane : Initial POC and Implementation
Kentaro Ebisawa
Segment Routing
Segment Routing
APNIC
Segment Routing for Dummies
Segment Routing for Dummies
Gary Jan
Segment Routing Advanced Use Cases - Cisco Live 2016 USA
Segment Routing Advanced Use Cases - Cisco Live 2016 USA
Jose Liste
Segment routing tutorial
Segment routing tutorial
Yi-Sung Chiu
Routing Protocol EIGRP
Routing Protocol EIGRP
Dmitry Figol
Maximizing High Performance Applications with CAN Bus
Maximizing High Performance Applications with CAN Bus
Janel Heilbrunn
Introduction to Programmable Networks by Clarence Anslem, Intel
Introduction to Programmable Networks by Clarence Anslem, Intel
MyNOG
OSN days 2019 - Open Networking and Programmable Switch
OSN days 2019 - Open Networking and Programmable Switch
Chun Ming Ou
Weitere ähnliche Inhalte
Was ist angesagt?
BGP Advance Technique by Steven & James
BGP Advance Technique by Steven & James
Febrian
BGP Traffic Engineering / Routing Optimisation
BGP Traffic Engineering / Routing Optimisation
Andy Davidson
BGP Monitoring Protocol
BGP Monitoring Protocol
Bertrand Duvivier
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Kentaro Ebisawa
BGP
BGP
Anıl Alibeyoğlu
BGP Traffic Engineering with SDN Controller
BGP Traffic Engineering with SDN Controller
APNIC
WAN SDN meet Segment Routing
WAN SDN meet Segment Routing
APNIC
Troubleshooting BGP
Troubleshooting BGP
Duane Bodle
20170925 onos and p4
20170925 onos and p4
Yi Tseng
p4srv6 (P4-16) design document rev1.0
p4srv6 (P4-16) design document rev1.0
Kentaro Ebisawa
Programming the Network Data Plane
Programming the Network Data Plane
C4Media
Stratix V FPGA Intro Presentation
Stratix V FPGA Intro Presentation
Altera Corporation
FreeTDM PRI Passive Recording
FreeTDM PRI Passive Recording
Moises Silva
SRv6 Mobile User Plane : Initial POC and Implementation
SRv6 Mobile User Plane : Initial POC and Implementation
Kentaro Ebisawa
Segment Routing
Segment Routing
APNIC
Segment Routing for Dummies
Segment Routing for Dummies
Gary Jan
Segment Routing Advanced Use Cases - Cisco Live 2016 USA
Segment Routing Advanced Use Cases - Cisco Live 2016 USA
Jose Liste
Segment routing tutorial
Segment routing tutorial
Yi-Sung Chiu
Routing Protocol EIGRP
Routing Protocol EIGRP
Dmitry Figol
Maximizing High Performance Applications with CAN Bus
Maximizing High Performance Applications with CAN Bus
Janel Heilbrunn
Was ist angesagt?
(20)
BGP Advance Technique by Steven & James
BGP Advance Technique by Steven & James
BGP Traffic Engineering / Routing Optimisation
BGP Traffic Engineering / Routing Optimisation
BGP Monitoring Protocol
BGP Monitoring Protocol
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
BGP
BGP
BGP Traffic Engineering with SDN Controller
BGP Traffic Engineering with SDN Controller
WAN SDN meet Segment Routing
WAN SDN meet Segment Routing
Troubleshooting BGP
Troubleshooting BGP
20170925 onos and p4
20170925 onos and p4
p4srv6 (P4-16) design document rev1.0
p4srv6 (P4-16) design document rev1.0
Programming the Network Data Plane
Programming the Network Data Plane
Stratix V FPGA Intro Presentation
Stratix V FPGA Intro Presentation
FreeTDM PRI Passive Recording
FreeTDM PRI Passive Recording
SRv6 Mobile User Plane : Initial POC and Implementation
SRv6 Mobile User Plane : Initial POC and Implementation
Segment Routing
Segment Routing
Segment Routing for Dummies
Segment Routing for Dummies
Segment Routing Advanced Use Cases - Cisco Live 2016 USA
Segment Routing Advanced Use Cases - Cisco Live 2016 USA
Segment routing tutorial
Segment routing tutorial
Routing Protocol EIGRP
Routing Protocol EIGRP
Maximizing High Performance Applications with CAN Bus
Maximizing High Performance Applications with CAN Bus
Ähnlich wie Linkmeup v076(2019-06).2
Introduction to Programmable Networks by Clarence Anslem, Intel
Introduction to Programmable Networks by Clarence Anslem, Intel
MyNOG
OSN days 2019 - Open Networking and Programmable Switch
OSN days 2019 - Open Networking and Programmable Switch
Chun Ming Ou
Host Data Plane Acceleration: SmartNIC Deployment Models
Host Data Plane Acceleration: SmartNIC Deployment Models
Netronome
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
Linaro
Android 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation report
hidenorly
P4_tutorial.pdf
P4_tutorial.pdf
PramodhN3
NFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function Framework
Michelle Holley
IRJET- Assessment of Network Protocol Packet Analysis in IPV4 and IPV6 on Loc...
IRJET- Assessment of Network Protocol Packet Analysis in IPV4 and IPV6 on Loc...
IRJET Journal
P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptx
tampham61268
Rina p4 rina workshop
Rina p4 rina workshop
Eduard Grasa
Ccna 2 Final V4 1
Ccna 2 Final V4 1
stigerj
Irati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA Workshop
Eleni Trouva
PLNOG 13: Krzysztof Mazepa: BGP FlowSpec
PLNOG 13: Krzysztof Mazepa: BGP FlowSpec
PROIDEA
Sprint 131
Sprint 131
ManageIQ
BitVisor Summit 8「3. AQC107 Driver and Changes coming to network API」
BitVisor Summit 8「3. AQC107 Driver and Changes coming to network API」
BitVisor
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical Routers
Steffen Gebert
Dpdk: rte_security: An update and introducing PDCP
Dpdk: rte_security: An update and introducing PDCP
Hemant Agrawal
Enabling Applications to Exploit SmartNICs and FPGAs
Enabling Applications to Exploit SmartNICs and FPGAs
inside-BigData.com
Tech Talk - Konrad Gawda : P4 programming language
Tech Talk - Konrad Gawda : P4 programming language
CodiLime
OpenDataPlane Project
OpenDataPlane Project
GlobalLogic Ukraine
Ähnlich wie Linkmeup v076(2019-06).2
(20)
Introduction to Programmable Networks by Clarence Anslem, Intel
Introduction to Programmable Networks by Clarence Anslem, Intel
OSN days 2019 - Open Networking and Programmable Switch
OSN days 2019 - Open Networking and Programmable Switch
Host Data Plane Acceleration: SmartNIC Deployment Models
Host Data Plane Acceleration: SmartNIC Deployment Models
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
Android 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation report
P4_tutorial.pdf
P4_tutorial.pdf
NFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function Framework
IRJET- Assessment of Network Protocol Packet Analysis in IPV4 and IPV6 on Loc...
IRJET- Assessment of Network Protocol Packet Analysis in IPV4 and IPV6 on Loc...
P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptx
Rina p4 rina workshop
Rina p4 rina workshop
Ccna 2 Final V4 1
Ccna 2 Final V4 1
Irati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA Workshop
PLNOG 13: Krzysztof Mazepa: BGP FlowSpec
PLNOG 13: Krzysztof Mazepa: BGP FlowSpec
Sprint 131
Sprint 131
BitVisor Summit 8「3. AQC107 Driver and Changes coming to network API」
BitVisor Summit 8「3. AQC107 Driver and Changes coming to network API」
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical Routers
Dpdk: rte_security: An update and introducing PDCP
Dpdk: rte_security: An update and introducing PDCP
Enabling Applications to Exploit SmartNICs and FPGAs
Enabling Applications to Exploit SmartNICs and FPGAs
Tech Talk - Konrad Gawda : P4 programming language
Tech Talk - Konrad Gawda : P4 programming language
OpenDataPlane Project
OpenDataPlane Project
Mehr von eucariot
Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3
eucariot
Stc metrotek plum_space_smart_sfp_linkmeup_01
Stc metrotek plum_space_smart_sfp_linkmeup_01
eucariot
Linkmeup #73
Linkmeup #73
eucariot
linkmeup-V069 (2018-11) Azure. Cloud network Infrustructure
linkmeup-V069 (2018-11) Azure. Cloud network Infrustructure
eucariot
Linkmeup v061 (2018-03)
Linkmeup v061 (2018-03)
eucariot
llinkmeup #59 DWDM. Плотность света
llinkmeup #59 DWDM. Плотность света
eucariot
linkmeup-058. SDN. Cisco ACI
linkmeup-058. SDN. Cisco ACI
eucariot
linkmeup #53. Ngfw soc
linkmeup #53. Ngfw soc
eucariot
Немного про бесшовный роуминг и Wi fi на уровне l1-l2 osi
Немного про бесшовный роуминг и Wi fi на уровне l1-l2 osi
eucariot
Openstack essentials and Networking component
Openstack essentials and Networking component
eucariot
Linkmeup
Linkmeup
eucariot
Linkmeup #41 (2016-07) НТЦ Метротек. SoC
Linkmeup #41 (2016-07) НТЦ Метротек. SoC
eucariot
SoC, Ethernet testers
SoC, Ethernet testers
eucariot
Есть ли жизнь в Enterprise
Есть ли жизнь в Enterprise
eucariot
решения по построению сетей передачи данных фнс полигон 2015
решения по построению сетей передачи данных фнс полигон 2015
eucariot
сетевые и телекоммуникационные решения для нефтегазовой отрасли
сетевые и телекоммуникационные решения для нефтегазовой отрасли
eucariot
полигон импортозамещение для промпредприятий 2015 v11
полигон импортозамещение для промпредприятий 2015 v11
eucariot
Plgn 2015-ru-web
Plgn 2015-ru-web
eucariot
Unl intro presentation fin
Unl intro presentation fin
eucariot
STP family and alternative protocols for L2
STP family and alternative protocols for L2
eucariot
Mehr von eucariot
(20)
Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3
Stc metrotek plum_space_smart_sfp_linkmeup_01
Stc metrotek plum_space_smart_sfp_linkmeup_01
Linkmeup #73
Linkmeup #73
linkmeup-V069 (2018-11) Azure. Cloud network Infrustructure
linkmeup-V069 (2018-11) Azure. Cloud network Infrustructure
Linkmeup v061 (2018-03)
Linkmeup v061 (2018-03)
llinkmeup #59 DWDM. Плотность света
llinkmeup #59 DWDM. Плотность света
linkmeup-058. SDN. Cisco ACI
linkmeup-058. SDN. Cisco ACI
linkmeup #53. Ngfw soc
linkmeup #53. Ngfw soc
Немного про бесшовный роуминг и Wi fi на уровне l1-l2 osi
Немного про бесшовный роуминг и Wi fi на уровне l1-l2 osi
Openstack essentials and Networking component
Openstack essentials and Networking component
Linkmeup
Linkmeup
Linkmeup #41 (2016-07) НТЦ Метротек. SoC
Linkmeup #41 (2016-07) НТЦ Метротек. SoC
SoC, Ethernet testers
SoC, Ethernet testers
Есть ли жизнь в Enterprise
Есть ли жизнь в Enterprise
решения по построению сетей передачи данных фнс полигон 2015
решения по построению сетей передачи данных фнс полигон 2015
сетевые и телекоммуникационные решения для нефтегазовой отрасли
сетевые и телекоммуникационные решения для нефтегазовой отрасли
полигон импортозамещение для промпредприятий 2015 v11
полигон импортозамещение для промпредприятий 2015 v11
Plgn 2015-ru-web
Plgn 2015-ru-web
Unl intro presentation fin
Unl intro presentation fin
STP family and alternative protocols for L2
STP family and alternative protocols for L2
Kürzlich hochgeladen
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
apidays
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Igalia
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Rustici Software
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
apidays
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Zilliz
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Deepika Singh
Architecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
apidays
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
lior mazor
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Kürzlich hochgeladen
(20)
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Architecting Cloud Native Applications
Architecting Cloud Native Applications
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Linkmeup v076(2019-06).2
1.
Copyright © 2019
- Barefoot Networks. Public Presentation P4? That's Easy! March 9, 2019 Vladimir Gurevich
2.
Copyright © 2019
- Barefoot Networks. Public Presentation Agenda • How high-speed devices work • P4 by example • What's next 2
3.
Copyright © 2019
- Barefoot Networks. Public Presentation Bringing Data Plane back in the NOS 3 Management Plane Configuration CLI/GUI/SNMP... Control Plane Protocol Stacks ARP ?? STPIS-IS PIM-SM BGP ??? Data Plane That’s how packets should be processed! Requirements That’s how I want to build my network!
4.
Copyright © 2019
- Barefoot Networks. Public Presentation Why is it important? C Control and Customization. Make the device behave exactly as you want R Robustness and Reliability. Reduce the risk by removing unused features E Energy Efficiency. Use only what you need A Agility. Add features as you go T Telemetry and Tracing. Be able to see inside the Data Plane E Exclusivity and Differentiation. No need to share your IP with the chip vendor 4
5.
Copyright © 2019
- Barefoot Networks. Public Presentation Programmable vs. Fixed Pipelined Architecture Buffer FixedParser IPv4 Address Table IPv4 Logic ACL Logic ACL TCAM MPLS Tag Table MPLS Logic Ethernet MAC Address Table Ethernet Logic Fixed Pipeline: features and table-sizes are baked in at design time Buffer ProgrammableParser M A M M M M M A A A A A M A M M M M M A A A A A M A M M M M M A A A A A … M A M M M M M A A A A A Programmable Pipeline: all stages identical, customer-defined match-action logic You declare which headers are recognized You declare what tables are needed and how packets are processed
6.
Copyright © 2019
- Barefoot Networks. Public Presentation PISA: Protocol-Independent Switch Architecture 6 Match+Action Stage (Unit) Memory ALU Programmable Parser Programmable Deparser Programmable Match-Action Pipeline Programmer declares the headers that should be recognized and their order in the packet Programmer defines the tables and the exact processing algorithm Programmer declares how the output packet will look on the wire User-defined Headers and Metadata
7.
Copyright © 2019
- Barefoot Networks. Public Presentation PISA in Action • Packet is parsed into individual headers (parsed representation) • Headers and intermediate results can be used for matching and actions • Headers can be modified, added or removed • Packet is deparsed (serialized) 7 • Feed-forward architecture • Stage-local resources • One packet per clock • Constant processing latency • Longer pipe – more packets processed in parallel • Multiple simultaneous lookups are possible Match+Action Stage (Unit) Programmable Parser Programmable Deparser Programmable Match-Action Pipeline
8.
Copyright © 2019
- Barefoot Networks. Public Presentation Building a Real Switch Programmable components Fixed-Function Components 8 • Ingress and Egress Pipeline ◦Parser ◦Match-Action Pipeline ◦Deparser • Packet I/O (MAC/SerDes/DMA) • Packet Replication Engine • Traffic Manager Ingress pipeline Egress pipelineIntrinsic Metadata User-defined Headers and Metadata Packet Replication Engine & Traffic Manager PacketIngress PacketEgress Packet data in Packet data out
9.
Copyright © 2019
- Barefoot Networks. Public Presentation P414 Program Sections 9 parser parse_ethernet { extract(ethernet); return select(ethernet.ethertype) { 0x8100 : parse_vlan_tag; 0x0800 : parse_ipv4; 0x8847 : parse_mpls; default: ingress; } table port_table { … } control ingress { apply(port_table); if (l2_meta.vlan_tags == 0) { process_assign_vlan(); } } header_type ethernet_t { … } header_type l2_metadata_t { … } header ethernet_t ethernet; header vlan_tag_t vlan_tag[2]; metadata l2_metadata_t l2_meta; Headers and Metadata Parser Tables, Actions, Controls and other objects PRE/ TM PacketInput PacketOutput
10.
Copyright © 2019
- Barefoot Networks. Public Presentation /* -*- P4_14 -*- */ /* Standard includes for Tofino */ #include <tofino/constants.p4> #include <tofino/primitives.p4> #include <tofino/intrinsic_metadata.p4> /******************* H E A D E R T Y P E S *************************/ header_type ethernet_t { fields { dstAddr : 48; srcAddr : 48; etherType : 16; } } /*********************** M E T A D A T A *****************************/ /*********************** P A R S E R *********************************/ header ethernet_t ethernet; parser start { extract(ethernet); return ingress; } /************** I N G R E S S P R O C E S S I N G *****************/ control ingress { } /**************** E G R E S S P R O C E S S I N G *****************/ control egress { } P414 Program Template for Tofino 10 • P4 uses C preprocessor ◦ Include Tofino-specific definitions ◦ Use it to structure your programs • C and C++style comments are supported ◦ Use first line to choose Emacs mode • P4 objects can be defined in any order ◦ There is no requirement to declare before using What does this program do?
11.
Copyright © 2019
- Barefoot Networks. Public Presentation Defining the Header Types 11 header_type ethernet_t { fields { dstAddr : 48; srcAddr : 48; etherType : 16; } } header_type vlan_tag_t { fields { pcp : 3; cfi : 1; vid : 12; etherType : 16; } } header_type ipv4_t { fields { version : 4; ihl : 4; tos : 8; totalLen : 16; identification : 16; flags : 3; fragOffset : 13; ttl : 8; protocol : 8; hdrChecksum : 16; srcAddr : 32; dstAddr : 32; } }
12.
Copyright © 2019
- Barefoot Networks. Public Presentation header ethernet_t ethernet; header vlan_tag_t vlan_tag; header ipv4_t ipv4; parser start { extract(ethernet); return select(ethernet.etherType) { 0x8100, 0x9100 : parse_vlan_tag; 0x0800 : parse_ipv4; default : ingress; } } parser parse_vlan_tag { extract(vlan_tag); return select(vlan_tag.etherType) { 0x0800 : parse_ipv4; default : ingress; } } parser parse_ipv4 { extract(ipv4); return ingress; } Defining the Parser 12 • Define the header instances ◦ That’s the headers the program will process • Define parser states ◦ Parsing starts with the “start” state • Inside the states ◦ Extract headers ◦ Transition to other states ■ Both exact and ternary matching are supported
13.
Copyright © 2019
- Barefoot Networks. Public Presentation action send(port) { modify_field(ig_intr_md_for_tm.ucast_egress_port, port); } action discard() { modify_field(ig_intr_md_for_tm.drop_ctl, 1); /* drop() */ } table ipv4_host { reads { ipv4.dstAddr : exact; } actions { send; discard; } size : 131072; } table ipv4_lpm { reads { ipv4.dstAddr : lpm; } actions { send; discard; } default_action: send(64); size : 12288; } Defining Tables and Actions 13 • Actions consist of P4 primitive sequences • Actions can have parameters (action data) • Intrinsic metadata controls the device • Tables specify ◦ The key (match fields and match type) ◦ List of possible actions ◦ Other attributes (default action, size, etc.) ■ Note: Attribute order is fixed in P414 grammar Architecture-specific Intrinsic Metadata Architecture-specific Intrinsic Metadata ipv4.dstAddr action data 192.168.1.1 send port=1 192.168.1.2 send port=2 192.168.1.3 discard --- Not Set ipv4.dstAddr / prefix action data 192.168.1.0 / 24 send port=1 10.0.16.0 / 22 send port=5 192.168.0.0 / 16 discard -- send port=64 (CPU) ipv4_host ipv4_lpm To be filled by the control plane!
14.
Copyright © 2019
- Barefoot Networks. Public Presentation /* Ingress Pipeline Processing */ control ingress { if (valid(ipv4)) { apply(ipv4_host) { miss { apply(ipv4_lpm); } } } } /* Egress Pipeline Processing */ control egress { } Defining the Processing Algorithm 14 • Direct Acyclic Graph processing (no loops) • apply() – perform match-action in a table • apply() {} – use match results to determine further processing ◦ hit/miss clause ◦ selected action clause • Conditional statements ◦ Comparison operations (==, !=, >, <, >=, <=) ◦ Logical operations (not, and, or) ◦ Header validity checks • Make sure the program operates on valid headers!
15.
Copyright © 2019
- Barefoot Networks. Public Presentation Add counters 15 • Direct counters extend table entries • Counting is done automatically ipv4.dstAddr action data Packets/Bytes 192.168.1.1 send port=1 xxx / yyy 192.168.1.2 send port=2 zzz / ww 192.168.1.3 discard --- Not Set ipv4.dstAddr / prefix action data Packets/Bytes 192.168.1.0 / 24 send port=1 xxx / yyy 10.0.16.0 / 22 send port=5 192.168.0.0 / 16 discard -- send port=64 (CPU) ipv4_host ipv4_lpm /* Just add this code... */ counter ipv4_host_counter { type: packets_and_bytes; direct: ipv4_host; } counter ipv4_lpm_counter { type: packets_and_bytes; direct: ipv4_lpm; }
16.
Copyright © 2019
- Barefoot Networks. Public Presentation Add Port-Based VRF 16 Different lookup domains for different customers VRF ipv4.dstAddr action data Packets/Bytes 0 192.168.1.1 send port=1 xxx / yyy 1 192.168.1.1 send port=7 zzz / ww 1 192.168.1.3 discard --- Not Set VRF ipv4.dstAddr / prefix action data Packets/Bytes 0 192.168.1.0 / 24 send port=1 xxx / yyy 1 192.168.1.0 / 24 send port=5 2 192.168.0.0 / 16 discard -- send port=64 (CPU) ipv4_host ipv4_lpm ingress_port action data 0 set_vrf vrf_id=2 12 set_vrf vrf_id=1 4 set_vrf vrf_id=2 Not Set vrf /* New Code */ header_type l3_meta_t { fields { vrf_id : 8; } } metadata l3_meta_t l3_meta; action set_vrf(vrf) { modify_field(l3_meta.vrf_id, vrf); } table vrf { reads { ig_intr_md.ingress_port : exact; } actions { set_vrf; } } table ipv4_host { reads { l3_meta.vrf_id : exact; ipv4.dstAddr : exact; } . . . } control ingress { apply(vrf); if (valid(ipv4)) { apply(ipv4_host) { miss { apply(ipv4_lpm); } } } } Architecture-specific Intrinsic Metadata
17.
Copyright © 2019
- Barefoot Networks. Public Presentation Add Packet Modifications and Checksum Handling 17 action l3_switch(new_mac_da, new_mac_sa, port) { modify_field(ethernet.dstAddr, new_mac_da); modify_field(ethernet.srcAddr, new_mac_sa); add_to_field(ipv4.ttl, -1); send(port); } action nat_tcp(new_src_ip, new_dst_ip, new_tcp_sport, new_tcp_dport) { modify_field(ipv4.srcAddr, new_src_ip); modify_field(ipv4.dstAddr, new_dst_ip); modify_field(tcp.srcPort, new_tcp_sport); modify_field(tcp.dstPort, new_tcp_dport); } action untag_packet() { modify_field(ethernet.etherType, vlan_tag.etherType); remove_header(vlan_tag); } field_list ipv4_checksum_list { ipv4.version; ipv4.ihl; ipv4.diffserv; ipv4.totalLen; ipv4.identification; ipv4.flags; ipv4.fragOffset; ipv4.ttl; ipv4.protocol; ipv4.srcAddr; ipv4.dstAddr; } field_list_calculation ipv4_checksum { input { ipv4_checksum_list; } algorithm : csum16; output_width : 16; } calculated_field ipv4.hdrChecksum { verify ipv4_checksum; update ipv4_checksum; }
18.
Copyright © 2019
- Barefoot Networks. Public Presentation counter packet_size_stats { type : packets; direct : packet_size_hist; min_width : 32; } action nop() { } table packet_size_hist { reads { eg_intr_md.pkt_length : range; } actions { nop; } } control egress { apply(packet_size_hist); } Example: Building a Histogram of Packet Sizes 18 • Problem: ◦ Calculate a histogram of different packet sizes that passed through the switch • Solution: ◦ Use range matching on packet length ■ Only available in the egress pipeline range is a standard match type in P4 0 50 100 150 200 250 300 0-63 64-127 128-255 256-511 512-1023 1024-… 1537… Packets 64..127 128..255 256..511 0..63 1024..1536 512..1023 1537..16384 Match Fields nop nop nop nop nop nop nop Action packet counts counter A counter Z Counter table packet_size_hist counter packet_size_stats Architecture-specific Intrinsic Metadata
19.
Copyright © 2019
- Barefoot Networks. Public Presentation Ethernet Header EtherType = 0xDEAD +----------------+----------------+ | Box Number (0..65536) | +----------------+----------------+ | Operation: 0 – drop, 1 – pickup | +----------------+----------------+ | Data Destination (port #) | +----------------+----------------+ | | +- TOP SECRET -+- DATA (32b) -+ | | +----------------+----------------+ header_type dead_drop_t { fields { box_num : 16; box_op : 16; data_dest : 16; box_data : 32; } } header dead_drop_t dead_drop; Dead-Drop Protocol 19 • Two operations: ◦ Drop data (with further delivery instructions) ◦ Pickup data • Tamper-proof ◦ Cannot pick data more than once
20.
Copyright © 2019
- Barefoot Networks. Public Presentation Parsing Dead-Drop Protocol P4 Scapy 20 header_type dead_drop_t { fields { box_num : 16; box_op : 16; data_dest : 16; box_data : 32; } } header dead_drop_t dead_drop; parser parse_ethernet { extract(ethernet); select(ethernet.etherType) { ... 0xDEAD : parse_dead_drop; default: ingress; } } parser parse_dead_drop { extract(dead_drop); return ingress; } class DeadDrop(Packet): fields_desc = [ BitField("box_num", 0, 16), BitField("box_op", 0, 16), BitField("data_dest", 511, 16), BitField("box_data", 0xDEADBABE, 32) ] name = “Spy Dead-Drop Protocol” bind_layers(Ether, DeadDrop, type=0xDEAD) sendp(Ether()/DeadDrop(box_num=5, box_op=0, data_dest=3, box_data=0x12345678), iface="veth1") • When DeadDrop() follows Ether(), set Ether.type=0xDEAD • When Ether.type==0xDEAD, next header is DeadDrop() In Scaly, each field has a default value
21.
Copyright © 2019
- Barefoot Networks. Public Presentation Dead Drop Implementation (P414 specification) Data Store (Registers) Actions and Tables 21 register dead_drop_data { width : 32; instance_count : 65536; } register dead_drop_dest { width : 16; instance_count : 65536; } action drop_message() { register_write(dead_drop_data, dead_drop.box_num, dead_drop.box_data); register_write(dead_drop_dest, dead_drop.box_num, dead_drop.data_dest); modify_field(ig_intr_md_for_tm.drop_ctl, 1); /* drop */ exit(); } action pickup_message() { register_read(dead_drop.box_data, dead_drop_data, dead_drop.box_num); register_read(ig_intr_md_for_tm.ucast_egress_port, dead_drop_dest, dead_drop.box_num); register_write(dead_drop_dest, dead_drop.box_num, 511 /* drop */); register_write(dead_drop_data, dead_drop.box_num, 0); exit(); } table dead_drop { reads { dead_drop.box_op : exact; } actions { drop_message; pickup_message; } size : 2; } control ingress { if (valid(ipv4)) { apply(ipv4_host) { . . . } if (valid(dead_drop)) { apply(dead_drop); } }
22.
Copyright © 2019
- Barefoot Networks. Public Presentation Brief History and Trivia 22 • May 2013: Initial idea and the name “P4” • July 2014: First paper (SIGCOMM CCR) • Aug 2014: First P414 Draft Specification (v0.9.8) • Sep 2014: P414 Specification released (v1.0.0) • Jan 2015: P414 v1.0.1 • Mar 2015: P414 v1.0.2 • Nov 2016: P414 v1.0.3 • May 2017: P414 v1.0.4 • Apr 2016: P416 – first commits • Dec 2016: First P416 Draft Specification • May 2017: P416 Specification released • . . . • Official Spelling P4_16 on terminals, P416 in publications
23.
Copyright © 2019
- Barefoot Networks. Public Presentation The P4 Language Consortium • Consortium of academic and industry members • Open source, evolving, domain-specific language • Permissive Apache license, code on GitHub today • Membership is free: contributions are welcome • Independent, set up as a California nonprofit 23
24.
Copyright © 2019
- Barefoot Networks. Public Presentation Systems P4.org Membership Academia/ Research Targets Operators/ End Users Original P4 Paper Authors: • Open source, evolving, domain-specific language • Permissive Apache license, code on GitHub today • Membership is free: contributions are welcome • Independent, set up as a California nonprofit Solutions/ Services
25.
Copyright © 2019
- Barefoot Networks. Public Presentation P416 Design Goals • Logical Evolution of P414 ◦ Same basic building blocks and concepts ◦ More expressive and convenient to use ◦ More formally defined semantics ■ Strong Type System ◦ Support for good software engineering practices • Target-Independence ◦ Support for a variety of targets (ASICs, FPGAs, NICs, software) ■ Language/Architecture separation ■ Flexible data plane model • Non-goals ◦ New constructs ◦ General-purpose programming 25
26.
Copyright © 2019
- Barefoot Networks. Public Presentation To Learn More • Become a Barefoot Customer or joint FASTER program • Attend BA-101 (P414) or BA-102 (P416) class 26
27.
Copyright © 2019
- Barefoot Networks. Public Presentation Thank you
Jetzt herunterladen