an intermediate representation for network programming ... · forwarding the packets with 100mb/s...
TRANSCRIPT
![Page 1: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/1.jpg)
An Intermediate Representation for Network Programming Languages
Hao Li1, Peng Zhang1, Guangda Sun1,
Chengchen Hu2, Danfeng Shan1, Tian Pan3, Qiang Fu4
![Page 2: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/2.jpg)
Programming the (Software-Defined) Networks
NDP Configurations
Controller APIs
RYU ONOS
Network Data Plane (NDP)
Network Control Plane
• Match+Action• Single switch
• Network-wide• General-purpose language• Self-defined abstractions
→
Network Programming Languages (NPL)
• Network-wide• Domain-specific languages (DSL)• High-level abstractions
NPL Compiler
![Page 3: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/3.jpg)
Multiple NPLs and NDP interfaces Coexist
[1] Trois, Celio, et al. "A survey on SDN programming languages: Toward a taxonomy." IEEE Communications Surveys & Tutorials 18.4 (2016): 2687-2712.[2] Latif, Zohaib, et al. "A comprehensive survey of interface protocols for software defined networks." Journal of Network and Computer Applications 156 (2020): 102563.
15+ NPLs
10+ NDP interfaces
![Page 4: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/4.jpg)
…and will Coexist in the Near Future
Routing with Waypoint Stateful Firewall
Stateful AbstractionsPath Control
• Features of NPLs/NDPs are Different • High Risk for a Unified NPL/NDP
[1]
• NPL/NDP is frequently updating• Deploying new devices• Training operators
![Page 5: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/5.jpg)
…and will Coexist in the Near Future
Routing with Waypoint Stateful Firewall
Stateful AbstractionsPath Control
• Features of NPLs/NDPs are Different • High Risk for a Unified NPL/NDP
[1]
• NPL/NDP is frequently updating• Deploying new devices• Training operators
1. Deploy cross-NPL programs2. Port programs into heterogeneous NDPs
![Page 6: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/6.jpg)
Monolithic Compilation
Problem 1: Cross-NPL programs cannot interoperate
A
B
C
D
• Rule Conflict
• ≠ Intent Conflict
• Cannot be resolved without Intent
![Page 7: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/7.jpg)
Monolithic Compilation
OpenFlow Rules OpenState Rules
Problem 2: NPL/NDPs cannot independently evolve
• M NPLs and N NDPs
• M×N Full Compilers
![Page 8: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/8.jpg)
Analog to Compiler for PC Languages
x86 Instructions ARM Instructions
LLVM Intermediate Representation(IR)
C++ Front End JAVA Front End Python Front End
x86 Back End ARM Back End
LLVM Optimizer
![Page 9: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/9.jpg)
Modular Compilation for NPLs with IR
OpenFlow Rules OpenState Rules
NPL Intermediate Representation
Merlin Front End Frenetic Front End SNAP Front End
OpenFlow Back End OpenState Back End
IR Optimizer
1. Cross-NPL programs can be composed at IR level
2. M Front Ends + N Back Ends
![Page 10: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/10.jpg)
What is a Good IR for NPL Compiler?
• Expressive
• Composable
![Page 11: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/11.jpg)
Design Philosophy of IR
• Path Control with Waypoints
• Waypoint B
• Regular expression: .*B.*
• Path Control with Resource
• Routing with 100MB/s bandwidth
• Consume the resource through forwarding
• Stateful Operations in Switches
• With SSH packets counted
• Check and update network variables
through forwarding
0 1 2 3·
· ·
e
B
B
Before entering the network Just leave the network
0 1 2·
·
e
r: Consume 100MB/s for this hop
r+
0 1 2 3·
· ·
e + u
· + u
u: update the counter
![Page 12: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/12.jpg)
Network Transaction Automaton (NTA)
• Network Transaction
• Three tuple:
• h: next hop to be forwarded
• r: the consumption of the network resources
• d: <g, u> that checks and updates the network variables
• Network Transaction Automaton
• Each transition is a network transaction
• The language of all “legal” sequences of network transaction
h r d
![Page 13: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/13.jpg)
• Can NTA Express Most Semantics from NPLs?
• Can NTAs be Composed without Semantics Loss?
• Can NTAs be Efficiently Compiled into NDP Configurations?
![Page 14: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/14.jpg)
Expressiveness of NTA
Merlin policy: Waypoint+Bandwidth
SNAP Program: Packets Counting
![Page 15: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/15.jpg)
Expressiveness of NTA
Pyretic
Flowlog
PGA
NetKAT
![Page 16: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/16.jpg)
Composition of NTA
• Composition: Running multiple programs in the same network
• Theoretical basis: operations on automaton
• Parallel Composition (+) → Intersection of NTAs
• N1+N2 produces N3 that accepts N1 and N2 simultaneously
• Routing + Firewall
• Sequential Composition (>>) → Concatenation of NTAs
• N1 >> N2 produces N3 that performs N1 and N2 sequentially
• Firewall >> Counting (only count the suspicious flows)
![Page 17: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/17.jpg)
Parallel Composition of NTA
+
Parallel Composition of Merlin and SNAP’s NTA
Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them
1. Enter network2. Traverse B, bandwidth reserved3. Count the packet, bandwidth reserved,
forward to another switch4. Leave the network
![Page 18: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/18.jpg)
Discussion and Future Work
• Semantics Completeness
• NTA cannot express dynamic semantics (e.g., latency negotiation)
• More Optimizations at the IR level
• Network verification upon NTA
• Compilation of NTA
• Large topology & complex NTA would explode the solving process
• How to enforce the NTA in heterogeneous NDPs
![Page 19: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/19.jpg)
Summary• The coexistence of NPLs and NDPs will persist in near future
• Modularizing the compiler with IR is a necessity
• Cross-NPL programs interoperation
• NPL and NDP independent evolution
• Network Transaction Automaton
• Expressive for mainstream NPLs
• Composable without semantics loss
• See more details in our paper
• Formal analysis
• Composition efficiency
![Page 20: An Intermediate Representation for Network Programming ... · Forwarding the packets with 100MB/s bandwidth while traversing B, and counting them 1. Enter network 2. Traverse B, bandwidth](https://reader034.vdocuments.net/reader034/viewer/2022050605/5fac3eda6afed928127edd2f/html5/thumbnails/20.jpg)
Thanks For Your Attention!