SlideShare a Scribd company logo
P4 support in ONOS
ONOS/CORD: Trellis and P4
Yi Tseng
2017/09/25
Agenda
!Introduction to P4 and P4Runtime
!P4 support in ONOS
○ Architecture
○ PI Framework
○ Workflow
!Demo!
!P4 Brigade & Fabric.p4
P4, P4Runtime, P4Info
Concepts and workflow
P4
! Open-source domain-specific language (DSL) for programmable data
planes
○ Protocol independent
○ Support many targets: ASICs, FPGAs, NPUs, software switches
○ Field reconfigurable: add/remove capabilities after switches are deployed
! Based on the well known match+action forwarding model
! Many benefits
○ Add new protocols, remove unused ones
○ Telemetry
○ More advanced capabilities (stateful processing, VNF offloading, etc.)
Why?
Old work flow
Hard to code, debug, manage and vendor lock-in!
Read pipeline spec
Develop app
New chip/spec
Discuss with vendor
Need new feature
Something wrong
New work flow
Easy to code, debug, manage!
Develop app
Develop pipeline
New protocol support
New pipeline feature
New control logic
BLACK BOX
WHITE BOX
GRAY BOX
WHITE BOX
Programmable switch architecture
Programmer declares the
headers that should be
recognized and their
order in the packet
Slide courtesy: Vladimir Gurevich, P4_16 Tutorial. P4 Workshop 2017
Programmer defines
the tables (match type,
actions) and the
processing algorithm
Programmer declares
how the output packet
will look on the wire
P416 Portable Switch Architecture (PSA)
https://github.com/p4lang/p4-spec/
target dependent functional blocks
programmable P4 blocks
P4 workflow
Data plane
my_program.p4
arch.p4
P4 Compiler
Target-specific
configuration/binary
Tables Extern
objects
Control plane
LOAD
Manufacturer
supplied
p4c
P4Runtime
BMv2
P4Runtime
! Framework for runtime control of P4 devices
○ Open-source: https://github.com/p4lang/PI
! Developed by the P4 API WG
! Targeted for remote controllers
○ Protobuf + gRPC implementation
! P4 program-independent
○ API doesn’t change with the P4 program
! Enables field-reconfigurability
○ Ability to push new P4 program to the device
Program-independent

control server (gRPC)
HW/SW target

(e.g. BMv2 simple_switch, tofino
chip, etc.)
Remote controller

(e.g. ONOS)
p4runtime.proto
(interface)
Switch
! Defines interaction with entities defined in a P4 program
○ Tables, counters, meters, externs, etc.
! Bidirectional stream channel
○ For packet-ins/outs, mastership updates, etc.
p4runtime.proto
Refers to P4
entities by integer
IDs.
How to get such
IDs?
p4c workflow
!P4Info
○ Captures target-independent P4 program attributes
○ Defines integer IDs for P4 entities, etc.
!Target config
○ P4Info + device-specific configuration

(e.g. BMv2’s JSON, Tofino binary, etc.)
Slide courtesy: S. Abdi, W. Mohsin, Y. Yetim, A. Ghaffarkhah.
P4 Program-Dependent Controller Interface for SDN Applications. P4 Workshop 2017
P4Info example
Slide courtesy: S. Abdi, W. Mohsin, Y. Yetim, A. Ghaffarkhah.
P4 Program-Dependent Controller Interface for SDN Applications. P4 Workshop 2017
P4Runtime example
Slide courtesy: S. Abdi, W. Mohsin, Y. Yetim, A. Ghaffarkhah.
P4 Program-Dependent Controller Interface for SDN Applications. P4 Workshop 2017
P4 support in ONOS
Challenge
! How can we control and configure P4-enabled devices?
! ONOS initially designed around OpenFlow fixed-function dataplane
○ NB abstractions morphed around OpenFlow (e.g. same match/actions)
○ Immutable pipeline
! With P4…
○ Generalized forwarding abstraction (e.g. arbitrary match/actions)
○ Mutable pipeline (devices can support different pipelines in time)
PI Framework
Default
Architecture overview
Pipeline-agnostic

applications
Device (BMv2, Tofino, Smart NICs, NetFPGA etc.)
FlowObjectives
Intents
FlowRules
2 modes of operations:
● Standard match, actions

(i.e. OpenFlow ones)
● Pipeline-specific ones
Flow Rule
Translation Serv.
Pipeconf Serv.
Driver
Core
Events

(packet, topology, etc.)
new
Protocol gRPC Controller
Tofino BMv2
P4Runtime
Pipeconf
(.oar)
Pack together everything needed to:
● Understand a P4 program/pipeline
● Control that pipeline (driver)
● Deploy P4 program to device
Pipeline-aware

application
Future Work
Other devices
P4Runtime
Controller/Client
gNMI
PI model/runtime classes
ONOS PI Framework
!PI = protocol/program/pipeline independent
!Classes(Models), Services, and driver behaviours to
model and control programmable data planes
○ Classes starting with Pi*, e.g. PiPipeconf, PiTableEntry, etc.
!Model-ed around P4 and PSA
○ Define table entries, counters, etc.
!@beta: expect changes
PI Pipeconf
! Pack together data and code necessary to let ONOS:
○ Understand, control, and deploy an arbitrary pipeline
! Provided to ONOS as an application (.oar)
pipeconf.oar
1. Pipeline model
○ Pipeline entities description (i.e. parsed P4 program)
2. Driver behaviors (pipeline-specific)
○ E.g. FlowObjective’s Pipeliner
3. Target-specific extensions
○ E.g. BMv2 JSON, Tofino binary
○ P4Info, needed for P4Runtime’s integer ID-name mapping
Pipeconf registered via PipeconfService → available to all ONOS components
BMv2 Device
Handshaker
Connect device
Open TCP socket to gRPC server
Device discovery
General Device Provider
PI Pipeconf Service
Get pipeconf
Bind pipeconf+device driver
ONOS Core
Device Driver
Pipeconf
Set pipeline config

(BMv2 JSON + P4Info)
BMv2 PI Pipeline
Programmable
Deploy pipeconf
my-pipeconf.oar
Extensions:
BMV2_JSON
P4INFO
REGISTER
DeviceID: bmv2:1
P4Runtime
- Server addr: 192.168.56.1
- Port: 5001
Pipeconf ID: my-pipeconf
Driver: bmv2PUSH
netcfg.json
Flow operations
PI Flow Rule
Translation Serv.
P4Runtime Client
Pipeliner
Pipeline-agnostic

Application
Flow Objective
Serv.
Flow Rule Progr.
Pipeconf-based 3 phase translation:
! Flow Objective → Flow Rule
○ Via Pipeliner
! Flow Rule → PI Table Entry
○ Via PI Pipeline Interpreter
! PI Table Entry to P4Runtime msg
○ Via P4Info
Flow Rules
PI Table Entry
PI Pipeline
Interpreter
ONOS Core
Device Driver
Pipeconf
Pipeline-aware
application
Flow Rule
Serv.
Flow Objectives
P4Runtime proto
messages
P4Info
PI Pipeline Interpreter
! Expose methods to let ONOS “understand” a given P4 program
○ Maps protocol-dependent ONOS constructs to PI entities
! Pipeline-specific driver behavior (included in the pipeconf)
○ P4 program developer need to provide implementation
! Example: flow rule translation
○ Match
■ 1:1 mapping between ONOS criteria and P4 header names
○ Action
■ Problem: P4 allows only one action per table entry, ONOS many
■ E.g. header rewrite + output: 1 action with 2 parameters in P4, 2 actions in ONOS
■ How to map many actions to one? Need interpretation logic (i.e. Java code)!
! Used also for other purposes
○ Map ONOS table integer IDs to names, packet I/O operations, table counters, etc.
Pipeline-aware flow rules
! Match
○ ONOS standard criteria → provided mapping via interpreter
○ PI Criterion → collection of field matches, each one using:
■ P4 header field name (e.g. my_tunnel_header.tunnel_id)
■ Match type (e.g. exact, ternary, LPM)
■ Value/mask (bytes)
! Action
○ ONOS standard instructions → provided mapping via interpreter
○ PI Instruction → specify action using
■ P4 action name (e.g. set_agress_port)
■ Collection of action parameters
● Parameter name (e.g. port_id)
● Parameter value (bytes)
Standard/PI criteria/instructions can be combined together
Packet I/O operations
! Packet-in: packet received at a switch port
encapsulated and sent to the controller
! Packet-out: packet generated at the
controller sent through a switch port
! With P4, encapsulation format defined
by developer → Need interpreter!
P4RuntimeClient
P4Runtime Packet
Provider
BMv2
PacketProgrammable
Inbound Packet
Outbound Packet
PI Packet Operation
PI Pipeline
Interpreter
ONOS Core
Device Driver
Pipeconf
App
Packet Request/Manager Serv.
Example:
@controller_header("packet_in")
header packet_in_header_t {
bit<9> ingress_port;
}
@controller_header("packet_out")
header packet_out_header_t {
bit<9> egress_port;
}
P4Runtime

protobuf msg
P4Info
Packet-in event
Packet-out
Demo!
P4 defined pipeline + ONOS applications
Takeaway
Today ONOS offers capabilities to:
! Store and deploy P4-defined pipelines (PI Pipeconf Service)
! Control pipeline entities (standard ONOS NB APIs)
○ Table entries, counters, packets I/O, etc.
! Support for pipeline-agnostic applications
○ Provided mapping via Interpreter and Pipeliner
! Support pipeline-aware applications (PI Framework)
! Integrate P4 devices into heterogenous networks
○ Control P4, OpenFlow, or Netconf devices through the same high-level APIs
While maintaining high availability, scalability and performance key
characteristics to the ONOS platform
P4 Brigade
Leader:
Carmelo Cascone / ONF
Members:
Andrea Campanella / ONF
Uyen Chau / ONF
Brian O'Connor / ONF
Yi Tseng / ONF, NCTU
Jonghwan Hyun / ONF, POSTEC
Wu Shaoyong / ZTE
Jian Tian / ZTE
Ke Zhiyong / ZTE
Frank Wang / Inspur
Minh Pham / UTS
Tom Tofigh / AT&T
https://wiki.onosproject.org/display/ONOS/P4+brigade
Fabric.p4
Talk: 矽⾕谷開源組織實習經驗談
URL: https://goo.gl/ChJjwf
Thanks!

More Related Content

What's hot

VMware vSphere Networking deep dive
VMware vSphere Networking deep diveVMware vSphere Networking deep dive
VMware vSphere Networking deep dive
Vepsun Technologies
 
Vxlan deep dive session rev0.5 final
Vxlan deep dive session rev0.5   finalVxlan deep dive session rev0.5   final
Vxlan deep dive session rev0.5 final
KwonSun Bae
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)
JuHwan Lee
 
Waris l2vpn-tutorial
Waris l2vpn-tutorialWaris l2vpn-tutorial
Waris l2vpn-tutorialrakiva29
 
Bandwidth Monitoring - pfSense Hangout March 2015
Bandwidth Monitoring - pfSense Hangout March 2015Bandwidth Monitoring - pfSense Hangout March 2015
Bandwidth Monitoring - pfSense Hangout March 2015
Netgate
 
Bit Indexed Explicit Replication (BIER)
Bit Indexed Explicit Replication (BIER)Bit Indexed Explicit Replication (BIER)
Bit Indexed Explicit Replication (BIER)
APNIC
 
VPC Implementation In OpenStack Heat
VPC Implementation In OpenStack HeatVPC Implementation In OpenStack Heat
VPC Implementation In OpenStack Heat
Saju Madhavan
 
Building a Stretched Cluster using Virtual SAN 6.1
Building a Stretched Cluster using Virtual SAN 6.1Building a Stretched Cluster using Virtual SAN 6.1
Building a Stretched Cluster using Virtual SAN 6.1
Duncan Epping
 
Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
Cisco Canada
 
Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands
sandeep kumar
 
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
Brocade
 
Demystifying EVPN in the data center: Part 1 in 2 episode series
Demystifying EVPN in the data center: Part 1 in 2 episode seriesDemystifying EVPN in the data center: Part 1 in 2 episode series
Demystifying EVPN in the data center: Part 1 in 2 episode series
Cumulus Networks
 
FortiGate_Sec_02_Security Fabric (1).pptx
FortiGate_Sec_02_Security Fabric (1).pptxFortiGate_Sec_02_Security Fabric (1).pptx
FortiGate_Sec_02_Security Fabric (1).pptx
NajahIdrissiMoulayRa
 
Multiprotocol label switching
Multiprotocol label switchingMultiprotocol label switching
Multiprotocol label switching
Sumita Das
 
FastNetMon Advanced DDoS detection tool
FastNetMon Advanced DDoS detection toolFastNetMon Advanced DDoS detection tool
FastNetMon Advanced DDoS detection tool
Pavel Odintsov
 
Nmap 9つの真実
Nmap 9つの真実Nmap 9つの真実
Nmap 9つの真実
abend_cve_9999_0001
 
Cisco Application Centric Infrastructure
Cisco Application Centric InfrastructureCisco Application Centric Infrastructure
Cisco Application Centric Infrastructure
islam Salah
 
VXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building BlocksVXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building Blocks
APNIC
 
Traditional Firewall vs. Next Generation Firewall
Traditional Firewall vs. Next Generation FirewallTraditional Firewall vs. Next Generation Firewall
Traditional Firewall vs. Next Generation Firewall
美兰 曾
 
VSAN – Architettura e Design
VSAN – Architettura e DesignVSAN – Architettura e Design
VSAN – Architettura e Design
VMUG IT
 

What's hot (20)

VMware vSphere Networking deep dive
VMware vSphere Networking deep diveVMware vSphere Networking deep dive
VMware vSphere Networking deep dive
 
Vxlan deep dive session rev0.5 final
Vxlan deep dive session rev0.5   finalVxlan deep dive session rev0.5   final
Vxlan deep dive session rev0.5 final
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)
 
Waris l2vpn-tutorial
Waris l2vpn-tutorialWaris l2vpn-tutorial
Waris l2vpn-tutorial
 
Bandwidth Monitoring - pfSense Hangout March 2015
Bandwidth Monitoring - pfSense Hangout March 2015Bandwidth Monitoring - pfSense Hangout March 2015
Bandwidth Monitoring - pfSense Hangout March 2015
 
Bit Indexed Explicit Replication (BIER)
Bit Indexed Explicit Replication (BIER)Bit Indexed Explicit Replication (BIER)
Bit Indexed Explicit Replication (BIER)
 
VPC Implementation In OpenStack Heat
VPC Implementation In OpenStack HeatVPC Implementation In OpenStack Heat
VPC Implementation In OpenStack Heat
 
Building a Stretched Cluster using Virtual SAN 6.1
Building a Stretched Cluster using Virtual SAN 6.1Building a Stretched Cluster using Virtual SAN 6.1
Building a Stretched Cluster using Virtual SAN 6.1
 
Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
 
Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands
 
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
 
Demystifying EVPN in the data center: Part 1 in 2 episode series
Demystifying EVPN in the data center: Part 1 in 2 episode seriesDemystifying EVPN in the data center: Part 1 in 2 episode series
Demystifying EVPN in the data center: Part 1 in 2 episode series
 
FortiGate_Sec_02_Security Fabric (1).pptx
FortiGate_Sec_02_Security Fabric (1).pptxFortiGate_Sec_02_Security Fabric (1).pptx
FortiGate_Sec_02_Security Fabric (1).pptx
 
Multiprotocol label switching
Multiprotocol label switchingMultiprotocol label switching
Multiprotocol label switching
 
FastNetMon Advanced DDoS detection tool
FastNetMon Advanced DDoS detection toolFastNetMon Advanced DDoS detection tool
FastNetMon Advanced DDoS detection tool
 
Nmap 9つの真実
Nmap 9つの真実Nmap 9つの真実
Nmap 9つの真実
 
Cisco Application Centric Infrastructure
Cisco Application Centric InfrastructureCisco Application Centric Infrastructure
Cisco Application Centric Infrastructure
 
VXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building BlocksVXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building Blocks
 
Traditional Firewall vs. Next Generation Firewall
Traditional Firewall vs. Next Generation FirewallTraditional Firewall vs. Next Generation Firewall
Traditional Firewall vs. Next Generation Firewall
 
VSAN – Architettura e Design
VSAN – Architettura e DesignVSAN – Architettura e Design
VSAN – Architettura e Design
 

Similar to 20170925 onos and p4

P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxP4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptx
tampham61268
 
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
Chun Ming Ou
 
P4_tutorial.pdf
P4_tutorial.pdfP4_tutorial.pdf
P4_tutorial.pdf
PramodhN3
 
Banog meetup August 30th, network device property as code
Banog meetup August 30th, network device property as codeBanog meetup August 30th, network device property as code
Banog meetup August 30th, network device property as code
Damien Garros
 
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE
 
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
Cheng-Chun William Tu
 
P4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC OffloadP4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC Offload
Open-NFP
 
Rina p4 rina workshop
Rina p4   rina workshopRina p4   rina workshop
Rina p4 rina workshop
Eduard Grasa
 
Programming the Network Data Plane
Programming the Network Data PlaneProgramming the Network Data Plane
Programming the Network Data Plane
C4Media
 
Apache Pulsar Development 101 with Python
Apache Pulsar Development 101 with PythonApache Pulsar Development 101 with Python
Apache Pulsar Development 101 with Python
Timothy Spann
 
ebpf and IO Visor: The What, how, and what next!
ebpf and IO Visor: The What, how, and what next!ebpf and IO Visor: The What, how, and what next!
ebpf and IO Visor: The What, how, and what next!
Affan Syed
 
Host Data Plane Acceleration: SmartNIC Deployment Models
Host Data Plane Acceleration: SmartNIC Deployment ModelsHost Data Plane Acceleration: SmartNIC Deployment Models
Host Data Plane Acceleration: SmartNIC Deployment Models
Netronome
 
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Aljoscha Krettek
 
SFO15-102:ODP Project Update
SFO15-102:ODP Project UpdateSFO15-102:ODP Project Update
SFO15-102:ODP Project Update
Linaro
 
Application Visibility and Experience through Flexible Netflow
Application Visibility and Experience through Flexible NetflowApplication Visibility and Experience through Flexible Netflow
Application Visibility and Experience through Flexible Netflow
Cisco DevNet
 
Tech Talk - Konrad Gawda : P4 programming language
Tech Talk - Konrad Gawda : P4 programming languageTech Talk - Konrad Gawda : P4 programming language
Tech Talk - Konrad Gawda : P4 programming language
CodiLime
 
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
Flink Forward
 
In Network Computing Prototype Using P4 at KSC/KREONET 2019
In Network Computing Prototype Using P4 at KSC/KREONET 2019In Network Computing Prototype Using P4 at KSC/KREONET 2019
In Network Computing Prototype Using P4 at KSC/KREONET 2019
Kentaro Ebisawa
 
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
Diane Mueller
 
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin
 

Similar to 20170925 onos and p4 (20)

P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxP4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptx
 
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
 
P4_tutorial.pdf
P4_tutorial.pdfP4_tutorial.pdf
P4_tutorial.pdf
 
Banog meetup August 30th, network device property as code
Banog meetup August 30th, network device property as codeBanog meetup August 30th, network device property as code
Banog meetup August 30th, network device property as code
 
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media Server
 
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
 
P4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC OffloadP4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC Offload
 
Rina p4 rina workshop
Rina p4   rina workshopRina p4   rina workshop
Rina p4 rina workshop
 
Programming the Network Data Plane
Programming the Network Data PlaneProgramming the Network Data Plane
Programming the Network Data Plane
 
Apache Pulsar Development 101 with Python
Apache Pulsar Development 101 with PythonApache Pulsar Development 101 with Python
Apache Pulsar Development 101 with Python
 
ebpf and IO Visor: The What, how, and what next!
ebpf and IO Visor: The What, how, and what next!ebpf and IO Visor: The What, how, and what next!
ebpf and IO Visor: The What, how, and what next!
 
Host Data Plane Acceleration: SmartNIC Deployment Models
Host Data Plane Acceleration: SmartNIC Deployment ModelsHost Data Plane Acceleration: SmartNIC Deployment Models
Host Data Plane Acceleration: SmartNIC Deployment Models
 
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
 
SFO15-102:ODP Project Update
SFO15-102:ODP Project UpdateSFO15-102:ODP Project Update
SFO15-102:ODP Project Update
 
Application Visibility and Experience through Flexible Netflow
Application Visibility and Experience through Flexible NetflowApplication Visibility and Experience through Flexible Netflow
Application Visibility and Experience through Flexible Netflow
 
Tech Talk - Konrad Gawda : P4 programming language
Tech Talk - Konrad Gawda : P4 programming languageTech Talk - Konrad Gawda : P4 programming language
Tech Talk - Konrad Gawda : P4 programming language
 
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
 
In Network Computing Prototype Using P4 at KSC/KREONET 2019
In Network Computing Prototype Using P4 at KSC/KREONET 2019In Network Computing Prototype Using P4 at KSC/KREONET 2019
In Network Computing Prototype Using P4 at KSC/KREONET 2019
 
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
 
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
 

More from Yi Tseng

Coscup 2018
Coscup 2018Coscup 2018
Coscup 2018
Yi Tseng
 
ONOS intent introduction
ONOS intent introductionONOS intent introduction
ONOS intent introduction
Yi Tseng
 
JS introduction
JS introductionJS introduction
JS introduction
Yi Tseng
 
20161119 SDNDS-TW Meetup
20161119 SDNDS-TW Meetup20161119 SDNDS-TW Meetup
20161119 SDNDS-TW Meetup
Yi Tseng
 
2016 COSCUP ONOS
2016 COSCUP ONOS2016 COSCUP ONOS
2016 COSCUP ONOS
Yi Tseng
 
2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction
Yi Tseng
 
Ryu SDN-IP
Ryu SDN-IPRyu SDN-IP
Ryu SDN-IP
Yi Tseng
 
2016 NCTU P4 Workshop
2016 NCTU P4 Workshop2016 NCTU P4 Workshop
2016 NCTU P4 Workshop
Yi Tseng
 
Ryu dynamic loader
Ryu dynamic loaderRyu dynamic loader
Ryu dynamic loader
Yi Tseng
 
2015 COSCUP SDN Workshop -- SDN Quick Start
2015 COSCUP SDN Workshop -- SDN Quick Start2015 COSCUP SDN Workshop -- SDN Quick Start
2015 COSCUP SDN Workshop -- SDN Quick Start
Yi Tseng
 
NSCTF
NSCTFNSCTF
NSCTF
Yi Tseng
 

More from Yi Tseng (11)

Coscup 2018
Coscup 2018Coscup 2018
Coscup 2018
 
ONOS intent introduction
ONOS intent introductionONOS intent introduction
ONOS intent introduction
 
JS introduction
JS introductionJS introduction
JS introduction
 
20161119 SDNDS-TW Meetup
20161119 SDNDS-TW Meetup20161119 SDNDS-TW Meetup
20161119 SDNDS-TW Meetup
 
2016 COSCUP ONOS
2016 COSCUP ONOS2016 COSCUP ONOS
2016 COSCUP ONOS
 
2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction
 
Ryu SDN-IP
Ryu SDN-IPRyu SDN-IP
Ryu SDN-IP
 
2016 NCTU P4 Workshop
2016 NCTU P4 Workshop2016 NCTU P4 Workshop
2016 NCTU P4 Workshop
 
Ryu dynamic loader
Ryu dynamic loaderRyu dynamic loader
Ryu dynamic loader
 
2015 COSCUP SDN Workshop -- SDN Quick Start
2015 COSCUP SDN Workshop -- SDN Quick Start2015 COSCUP SDN Workshop -- SDN Quick Start
2015 COSCUP SDN Workshop -- SDN Quick Start
 
NSCTF
NSCTFNSCTF
NSCTF
 

Recently uploaded

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 

Recently uploaded (20)

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 

20170925 onos and p4

  • 1. P4 support in ONOS ONOS/CORD: Trellis and P4 Yi Tseng 2017/09/25
  • 2. Agenda !Introduction to P4 and P4Runtime !P4 support in ONOS ○ Architecture ○ PI Framework ○ Workflow !Demo! !P4 Brigade & Fabric.p4
  • 4. P4 ! Open-source domain-specific language (DSL) for programmable data planes ○ Protocol independent ○ Support many targets: ASICs, FPGAs, NPUs, software switches ○ Field reconfigurable: add/remove capabilities after switches are deployed ! Based on the well known match+action forwarding model ! Many benefits ○ Add new protocols, remove unused ones ○ Telemetry ○ More advanced capabilities (stateful processing, VNF offloading, etc.)
  • 6. Old work flow Hard to code, debug, manage and vendor lock-in! Read pipeline spec Develop app New chip/spec Discuss with vendor Need new feature Something wrong
  • 7. New work flow Easy to code, debug, manage! Develop app Develop pipeline New protocol support New pipeline feature New control logic
  • 8. BLACK BOX WHITE BOX GRAY BOX WHITE BOX
  • 9. Programmable switch architecture Programmer declares the headers that should be recognized and their order in the packet Slide courtesy: Vladimir Gurevich, P4_16 Tutorial. P4 Workshop 2017 Programmer defines the tables (match type, actions) and the processing algorithm Programmer declares how the output packet will look on the wire
  • 10. P416 Portable Switch Architecture (PSA) https://github.com/p4lang/p4-spec/ target dependent functional blocks programmable P4 blocks
  • 11. P4 workflow Data plane my_program.p4 arch.p4 P4 Compiler Target-specific configuration/binary Tables Extern objects Control plane LOAD Manufacturer supplied p4c P4Runtime BMv2
  • 12. P4Runtime ! Framework for runtime control of P4 devices ○ Open-source: https://github.com/p4lang/PI ! Developed by the P4 API WG ! Targeted for remote controllers ○ Protobuf + gRPC implementation ! P4 program-independent ○ API doesn’t change with the P4 program ! Enables field-reconfigurability ○ Ability to push new P4 program to the device Program-independent
 control server (gRPC) HW/SW target
 (e.g. BMv2 simple_switch, tofino chip, etc.) Remote controller
 (e.g. ONOS) p4runtime.proto (interface) Switch
  • 13. ! Defines interaction with entities defined in a P4 program ○ Tables, counters, meters, externs, etc. ! Bidirectional stream channel ○ For packet-ins/outs, mastership updates, etc. p4runtime.proto Refers to P4 entities by integer IDs. How to get such IDs?
  • 14. p4c workflow !P4Info ○ Captures target-independent P4 program attributes ○ Defines integer IDs for P4 entities, etc. !Target config ○ P4Info + device-specific configuration
 (e.g. BMv2’s JSON, Tofino binary, etc.) Slide courtesy: S. Abdi, W. Mohsin, Y. Yetim, A. Ghaffarkhah. P4 Program-Dependent Controller Interface for SDN Applications. P4 Workshop 2017
  • 15. P4Info example Slide courtesy: S. Abdi, W. Mohsin, Y. Yetim, A. Ghaffarkhah. P4 Program-Dependent Controller Interface for SDN Applications. P4 Workshop 2017
  • 16. P4Runtime example Slide courtesy: S. Abdi, W. Mohsin, Y. Yetim, A. Ghaffarkhah. P4 Program-Dependent Controller Interface for SDN Applications. P4 Workshop 2017
  • 18. Challenge ! How can we control and configure P4-enabled devices? ! ONOS initially designed around OpenFlow fixed-function dataplane ○ NB abstractions morphed around OpenFlow (e.g. same match/actions) ○ Immutable pipeline ! With P4… ○ Generalized forwarding abstraction (e.g. arbitrary match/actions) ○ Mutable pipeline (devices can support different pipelines in time)
  • 19. PI Framework Default Architecture overview Pipeline-agnostic
 applications Device (BMv2, Tofino, Smart NICs, NetFPGA etc.) FlowObjectives Intents FlowRules 2 modes of operations: ● Standard match, actions
 (i.e. OpenFlow ones) ● Pipeline-specific ones Flow Rule Translation Serv. Pipeconf Serv. Driver Core Events
 (packet, topology, etc.) new Protocol gRPC Controller Tofino BMv2 P4Runtime Pipeconf (.oar) Pack together everything needed to: ● Understand a P4 program/pipeline ● Control that pipeline (driver) ● Deploy P4 program to device Pipeline-aware
 application Future Work Other devices P4Runtime Controller/Client gNMI PI model/runtime classes
  • 20. ONOS PI Framework !PI = protocol/program/pipeline independent !Classes(Models), Services, and driver behaviours to model and control programmable data planes ○ Classes starting with Pi*, e.g. PiPipeconf, PiTableEntry, etc. !Model-ed around P4 and PSA ○ Define table entries, counters, etc. !@beta: expect changes
  • 21. PI Pipeconf ! Pack together data and code necessary to let ONOS: ○ Understand, control, and deploy an arbitrary pipeline ! Provided to ONOS as an application (.oar) pipeconf.oar 1. Pipeline model ○ Pipeline entities description (i.e. parsed P4 program) 2. Driver behaviors (pipeline-specific) ○ E.g. FlowObjective’s Pipeliner 3. Target-specific extensions ○ E.g. BMv2 JSON, Tofino binary ○ P4Info, needed for P4Runtime’s integer ID-name mapping Pipeconf registered via PipeconfService → available to all ONOS components
  • 22. BMv2 Device Handshaker Connect device Open TCP socket to gRPC server Device discovery General Device Provider PI Pipeconf Service Get pipeconf Bind pipeconf+device driver ONOS Core Device Driver Pipeconf Set pipeline config
 (BMv2 JSON + P4Info) BMv2 PI Pipeline Programmable Deploy pipeconf my-pipeconf.oar Extensions: BMV2_JSON P4INFO REGISTER DeviceID: bmv2:1 P4Runtime - Server addr: 192.168.56.1 - Port: 5001 Pipeconf ID: my-pipeconf Driver: bmv2PUSH netcfg.json
  • 23. Flow operations PI Flow Rule Translation Serv. P4Runtime Client Pipeliner Pipeline-agnostic
 Application Flow Objective Serv. Flow Rule Progr. Pipeconf-based 3 phase translation: ! Flow Objective → Flow Rule ○ Via Pipeliner ! Flow Rule → PI Table Entry ○ Via PI Pipeline Interpreter ! PI Table Entry to P4Runtime msg ○ Via P4Info Flow Rules PI Table Entry PI Pipeline Interpreter ONOS Core Device Driver Pipeconf Pipeline-aware application Flow Rule Serv. Flow Objectives P4Runtime proto messages P4Info
  • 24. PI Pipeline Interpreter ! Expose methods to let ONOS “understand” a given P4 program ○ Maps protocol-dependent ONOS constructs to PI entities ! Pipeline-specific driver behavior (included in the pipeconf) ○ P4 program developer need to provide implementation ! Example: flow rule translation ○ Match ■ 1:1 mapping between ONOS criteria and P4 header names ○ Action ■ Problem: P4 allows only one action per table entry, ONOS many ■ E.g. header rewrite + output: 1 action with 2 parameters in P4, 2 actions in ONOS ■ How to map many actions to one? Need interpretation logic (i.e. Java code)! ! Used also for other purposes ○ Map ONOS table integer IDs to names, packet I/O operations, table counters, etc.
  • 25. Pipeline-aware flow rules ! Match ○ ONOS standard criteria → provided mapping via interpreter ○ PI Criterion → collection of field matches, each one using: ■ P4 header field name (e.g. my_tunnel_header.tunnel_id) ■ Match type (e.g. exact, ternary, LPM) ■ Value/mask (bytes) ! Action ○ ONOS standard instructions → provided mapping via interpreter ○ PI Instruction → specify action using ■ P4 action name (e.g. set_agress_port) ■ Collection of action parameters ● Parameter name (e.g. port_id) ● Parameter value (bytes) Standard/PI criteria/instructions can be combined together
  • 26. Packet I/O operations ! Packet-in: packet received at a switch port encapsulated and sent to the controller ! Packet-out: packet generated at the controller sent through a switch port ! With P4, encapsulation format defined by developer → Need interpreter! P4RuntimeClient P4Runtime Packet Provider BMv2 PacketProgrammable Inbound Packet Outbound Packet PI Packet Operation PI Pipeline Interpreter ONOS Core Device Driver Pipeconf App Packet Request/Manager Serv. Example: @controller_header("packet_in") header packet_in_header_t { bit<9> ingress_port; } @controller_header("packet_out") header packet_out_header_t { bit<9> egress_port; } P4Runtime
 protobuf msg P4Info Packet-in event Packet-out
  • 27. Demo! P4 defined pipeline + ONOS applications
  • 28. Takeaway Today ONOS offers capabilities to: ! Store and deploy P4-defined pipelines (PI Pipeconf Service) ! Control pipeline entities (standard ONOS NB APIs) ○ Table entries, counters, packets I/O, etc. ! Support for pipeline-agnostic applications ○ Provided mapping via Interpreter and Pipeliner ! Support pipeline-aware applications (PI Framework) ! Integrate P4 devices into heterogenous networks ○ Control P4, OpenFlow, or Netconf devices through the same high-level APIs While maintaining high availability, scalability and performance key characteristics to the ONOS platform
  • 29. P4 Brigade Leader: Carmelo Cascone / ONF Members: Andrea Campanella / ONF Uyen Chau / ONF Brian O'Connor / ONF Yi Tseng / ONF, NCTU Jonghwan Hyun / ONF, POSTEC Wu Shaoyong / ZTE Jian Tian / ZTE Ke Zhiyong / ZTE Frank Wang / Inspur Minh Pham / UTS Tom Tofigh / AT&T https://wiki.onosproject.org/display/ONOS/P4+brigade
  • 32.