project creation review: maple in opendaylight andreas voellmy, y. richard yang, xiao shi, xin li,...
TRANSCRIPT
![Page 1: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/1.jpg)
Project Creation Review: Maple in OpenDaylight
Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno
December 18, 2014
![Page 2: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/2.jpg)
2
What’s the Problem: Challenge of Flow Programming
• Programming directly against flow tables can be painful: – Limited computational capability: e.g., no logic
negation– Lost context: why is this rule here? why is a given
rule not there?– Limited action set, e.g., no ARP responses– …
![Page 3: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/3.jpg)
3
Maple: Packet Processing Abstraction
• User defines a packet processing function, f, in a high-level, general purpose language such as Java.
• The abstraction: f processes every packet entering the network.
• f can look at packet fields, query control state, compute a route, send packets, etc.
![Page 4: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/4.jpg)
4
Maple ExampleRoute f(Packet p, Env e) { if (p.tcpDstIs(22)) return nullRoute(); else { Location sloc = e.location(p.ethSrc()); Location dloc = e.location(p.ethDst()); Path path = myShortestPath(e.links(), sloc,dloc); return unicast(sloc,dloc,path); }}
Does not specify anything on flow tables!
Specified in a high-level language with a centralized view.
![Page 5: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/5.jpg)
5
From a Maple Programto Switch Flow Table Rules
![Page 6: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/6.jpg)
6
Maple Compiler and Runtime
• Key design goals
– Language independent core: to support multiple programming languages
– Simple, efficient data structures to support correct, optimized rule generations
![Page 7: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/7.jpg)
7
Maple Compiler and Runtime1. Executes f on an arriving packet, observing traces of data accesses.
Observing packet data accesses by asking f to access pkt using libraries
Route f(Packet p, Env e) { if (p.tcpDstIs(22)) return nullRoute();
else { if (p.ethDst() == 2) return nullRoute(); Location dloc = e.location(p.ethDst()); Location sloc = e.location(p.ethSrc()); Path path = myShortestPath(e.links(), sloc,dloc); return unicast(sloc,dloc,path); }}
![Page 8: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/8.jpg)
8
Maple Compiler and Runtime
Prio Match Action
1 tcpDst:22ToControll
er
0 ethDst:2 discard
0ethDst:4, ethSrc:6
port 30
Prio Match Action
1 tcpDst:22ToControll
er
0 ethDst:2 discard
0ethDst:4, ethSrc:6
port 30
Prio Match Action
1 tcpDst:22ToControll
er
0 ethDst:2 discard
0ethDst:4, ethSrc:6
port 30
1. Executes f on an arriving packet, observing traces of data accesses.
2. Combine traces to form a trace tree (TT), a language-independent, partial decision tree representation of f.
3. Optimizing compiler to compile trace tree to flow tables (FTs)
![Page 9: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/9.jpg)
9
Maple in ODL: A New Programming Model (North Bound Interface) for ODL Programmers
• A new programming model in ODL so that control programs do not need to generate flow tables directly– Programmers provides Java modules about how they want
to treat traffic.– Programmer provides a top-level module defining how
multiple modules are composed to determine the overall packet processing function
– Example: • top-level function calls access control module to determine
permit or deny;• if deny, drop, else call service chaining module to get next service; • if found service, route to it; otherwise …
![Page 10: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/10.jpg)
10
Dependency on ODL Components
• Use the MD-SAL design• Use ODL Flow Manager to program flow-
capable devices• Need access and modification notifications of
ODL managed states (e.g., topology, ports)
![Page 11: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/11.jpg)
11
Deliverables (Scope) of Maple in ODL-Lithium
• Provide Java-based programming abstraction, comparable to Maple today.
• Tracing runtime and compiler to target flow-capable devices via MD-SAL.
• Implement sample applications (e.g., SFC, GBP).
• API documentation and getting started guide.
![Page 12: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/12.jpg)
12
Committers
• Andreas Voellmy (Project Lead, Cisco)• Reinaldo Penno (Cisco)• Xiao Shi (Nominated: Project Contact, Yale U)• Xin Li (Nominated: Test Lead, Yale U)• Y. Richard Yang (Yale U)
![Page 13: Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014](https://reader036.vdocuments.site/reader036/viewer/2022082517/56649eda5503460f94be8d83/html5/thumbnails/13.jpg)
13
Thank you
• Questions?