a compiler and run 1me system for network programming
play

A Compiler and Run-1me System for Network Programming - PowerPoint PPT Presentation

A Compiler and Run-1me System for Network Programming Languages Christopher Monsanto, Princeton Nate Foster, Cornell Rob Harrison, West Point David


  1. A ¡Compiler ¡and ¡Run-­‑1me ¡System ¡for ¡ Network ¡Programming ¡Languages ¡ Christopher ¡Monsanto, ¡Princeton ¡ Nate ¡Foster, ¡Cornell ¡ Rob ¡Harrison, ¡West ¡Point ¡ ¡David ¡Walker, ¡Princeton ¡ ¡ 1 ¡

  2. SoFware-­‑Defined ¡Networks ¡ Controller ¡ Switch ¡ Switch ¡ 2 ¡

  3. SoFware-­‑Defined ¡Networks ¡ • Video ¡rou1ng ¡ 010101 ¡ • Seamless ¡mobility ¡ • Energy ¡efficiency ¡ • DDOS ¡protec1on ¡ 11010011 ¡ 0000110 ¡ ? ¡ • Etc… ¡ 3 ¡

  4. SoFware ¡Defined ¡Networks: ¡Switches ¡ • Processes ¡packets ¡ according ¡to ¡ classifier ¡ Dest. ¡IP ¡ Dest. ¡Port ¡ Ac5on ¡ – Limited ¡paSern ¡ 191.*.*.* ¡ 80 ¡ Forward ¡A ¡ 191.*.*.* ¡ * ¡ Drop ¡ matching ¡ 191.1.1.0 ¡ 22 ¡ Forward ¡B ¡ capabili1es ¡ * ¡ * ¡ Controller ¡ – Ac1ons: ¡forwarding, ¡ dropping, ¡sending ¡to ¡ controller ¡ • As ¡fast ¡as ¡it ¡gets ¡ 4 ¡

  5. SDN: ¡Controllers ¡ • Capable ¡of ¡arbitrary ¡ computa1on ¡ • Orders ¡of ¡magnitude ¡ slower ¡ • Installs ¡and ¡ uninstalls ¡rules ¡from ¡ switch ¡classifiers ¡ 5 ¡

  6. Goals ¡ 1. A ¡simple, ¡declara1ve ¡language… ¡ That ¡is, ¡we ¡specify ¡the ¡func1onality, ¡not ¡the ¡ – concrete ¡rules ¡that ¡go ¡on ¡the ¡switches, ¡or ¡the ¡ explicit ¡install ¡and ¡uninstall ¡commands ¡the ¡ controller ¡must ¡issue ¡ 2. … ¡that ¡is ¡mathema1cally ¡guaranteed ¡to ¡be ¡ correct ¡and ¡efficient. ¡

  7. Goals ¡ 1. A ¡simple, ¡declara1ve ¡language… ¡ That ¡is, ¡we ¡specify ¡the ¡func1onality, ¡not ¡the ¡ – concrete ¡rules ¡that ¡go ¡on ¡the ¡switches, ¡or ¡the ¡ explicit ¡install ¡and ¡uninstall ¡commands ¡the ¡ controller ¡must ¡issue ¡ 2. … ¡that ¡is ¡mathema1cally ¡guaranteed ¡to ¡be ¡ correct ¡and ¡ efficient . ¡ ??? ¡

  8. Goals ¡ • … ¡guaranteed ¡to ¡be ¡ efficient ¡ 8 ¡

  9. Goals ¡ • … ¡guaranteed ¡to ¡be ¡ efficient ¡ On ¡switches: ¡ 9 ¡

  10. Goals ¡ • … ¡guaranteed ¡to ¡be ¡ efficient ¡ On ¡switches: ¡ On ¡controllers: ¡ 10 ¡

  11. Obstacles ¡Faced ¡By ¡Programmers ¡ Low ¡level ¡interface ¡ Synthesize ¡communica1on ¡protocol ¡ Dest. ¡IP ¡ Dest. ¡Port ¡ Ac5on ¡ 191.*.*.* ¡ 80 ¡ Forward(A) ¡ 191.*.*.* ¡ * ¡ Drop ¡ * ¡ * ¡ Controller ¡ Differing ¡switch ¡capabili1es ¡ 11 ¡

  12. Our ¡Real ¡Enemy: ¡Complexity ¡ • Managing ¡these ¡rules ¡is ¡ complicated ¡ • Tendency ¡to ¡fall ¡back ¡to ¡ using ¡the ¡simplest ¡kind ¡ of ¡rule: ¡microflows ¡ (exact ¡match ¡rules) ¡ • Very ¡inefficient: ¡many ¡ packets ¡go ¡to ¡the ¡ controller! ¡ 12 ¡

  13. New ¡Frene1c ¡Run-­‑1me ¡Architecture ¡ 1 ¡ NetCore ¡policy ¡ ¡ 3 ¡ 2 ¡ Refinement ¡ Compila1on ¡ (reac1ve ¡specializa1on ¡loop) ¡ Classifier ¡ 13 ¡

  14. 1 ¡ NetCore ¡policy ¡ ¡ 3 ¡ 2 ¡ Refinement ¡ Compila1on ¡ Classifier ¡ 14 ¡ NETCORE ¡ 14 ¡

  15. NetCore ¡Grammar ¡ Predicates ¡ Headers ¡ ℎ , ¡wildcards ¡ 𝑥 ¡ • 𝑓 ¡::= ¡ ℎ ¡: 𝑥 ¡ ¡ ¡primi1ve ¡match ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡| ¡ ¡switch ¡ 𝑡 ¡ ¡match ¡packets ¡at ¡switch ¡ ¡ ¡ ¡| ¡ ¡inspect ¡ 𝑔 ¡ ¡arbitrary ¡func1on ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∪ ​𝑓↓ 2 ¡ ¡ ¡set ¡union ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∖ ​𝑓↓ 2 ¡ ¡ ¡set ¡difference ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∩ ​𝑓↓ 2 ¡ ¡ ¡set ¡intersec1on ¡ ¡ ¡ ¡| ¡ ¡ ¬ 𝑓 ¡ ¡ ¡set ¡nega1on ¡ Policies ¡ • 𝜐 ¡::= ¡ 𝑓 ¡→ {​𝑡↓ 1 ,…, ¡ ​𝑡↓𝑜 } ¡ac1on ¡ ¡ ¡ ¡| ¡ ¡ ​𝜐↓ 1 ∪ ​𝜐↓ 2 ¡ ¡ ¡policy ¡union ¡ 15 ¡ ¡ ¡ ¡| ¡ ¡… ¡

  16. NetCore ¡Grammar ¡ Predicates ¡ Headers ¡ ℎ , ¡wildcards ¡ 𝑥 ¡ • 𝑓 ¡::= ¡ ℎ ¡: 𝑥 ¡ ¡ ¡primi1ve ¡match ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡| ¡ ¡switch ¡ 𝑡 ¡ ¡ ¡match ¡packets ¡at ¡switch ¡ ¡match ¡packets ¡at ¡switch ¡ ¡ ¡ ¡| ¡ ¡inspect ¡ 𝑔 ¡ ¡ ¡arbitrary ¡func1on ¡ ¡arbitrary ¡func1on ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∪ ​𝑓↓ 2 ¡ ¡ ¡set ¡union ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∖ ​𝑓↓ 2 ¡ ¡ ¡set ¡difference ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∩ ​𝑓↓ 2 ¡ ¡ ¡set ¡intersec1on ¡ ¡ ¡ ¡| ¡ ¡ ¬ 𝑓 ¡ ¡ ¡ ¡ ¡set ¡nega1on ¡ ¡set ¡nega1on ¡ Policies ¡ • 𝜐 ¡::= ¡ 𝑓 ¡→ {​𝑡↓ 1 ,…, ¡ ​𝑡↓𝑜 } ¡ac1on ¡ ¡::= ¡ 𝑓 ¡→ {​𝑡↓ 1 ,…, ¡ ​𝑡↓𝑜 } ¡ac1on ¡ ¡ ¡ ¡| ¡ ¡ ​𝜐↓ 1 ∪ ​𝜐↓ 2 ¡ ¡ ¡policy ¡union ¡ 16 ¡ ¡ ¡ ¡| ¡ ¡… ¡

  17. NetCore ¡Grammar ¡ Predicates ¡ Headers ¡ ℎ , ¡wildcards ¡ 𝑥 ¡ • 𝑓 ¡::= ¡ ℎ ¡: 𝑥 ¡ ¡ ¡primi1ve ¡match ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡| ¡ ¡switch ¡ 𝑡 ¡ ¡ ¡match ¡packets ¡at ¡switch ¡ ¡match ¡packets ¡at ¡switch ¡ DestIP: ¡10.*.1.* ¡ ¡ ¡ ¡| ¡ ¡inspect ¡ 𝑔 ¡ ¡ ¡arbitrary ¡func1on ¡ ¡arbitrary ¡func1on ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∪ ​𝑓↓ 2 ¡ ¡ ¡set ¡union ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∖ ​𝑓↓ 2 ¡ ¡ ¡set ¡difference ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∩ ​𝑓↓ 2 ¡ ¡ ¡set ¡intersec1on ¡ ¡ ¡ ¡| ¡ ¡ ¬ 𝑓 ¡ ¡ ¡ ¡ ¡set ¡nega1on ¡ ¡set ¡nega1on ¡ Policies ¡ • 𝜐 ¡::= ¡ 𝑓 ¡→ {​𝑡↓ 1 ,…, ¡ ​𝑡↓𝑜 } ¡ac1on ¡ ¡::= ¡ 𝑓 ¡→ {​𝑡↓ 1 ,…, ¡ ​𝑡↓𝑜 } ¡ac1on ¡ ¡ ¡ ¡| ¡ ¡ ​𝜐↓ 1 ∪ ​𝜐↓ 2 ¡ ¡ ¡policy ¡union ¡ 17 ¡ ¡ ¡ ¡| ¡ ¡… ¡

  18. NetCore ¡Grammar ¡ Predicates ¡ Headers ¡ ℎ , ¡wildcards ¡ 𝑥 ¡ ¡ • 𝑓 ¡::= ¡ ℎ ¡: 𝑥 ¡ ¡ ¡ ¡ ¡primi1ve ¡match ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡primi1ve ¡match ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡| ¡ ¡switch ¡ 𝑡 ¡ ¡match ¡packets ¡at ¡switch ¡ ¡ ¡ ¡| ¡ ¡inspect ¡ 𝑔 ¡ ¡ ¡arbitrary ¡func1on ¡ ¡arbitrary ¡func1on ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∪ ​𝑓↓ 2 ¡ ¡ ¡set ¡union ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∖ ​𝑓↓ 2 ¡ ¡ ¡set ¡difference ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∩ ​𝑓↓ 2 ¡ ¡ ¡set ¡intersec1on ¡ ¡ ¡ ¡| ¡ ¡ ¬ 𝑓 ¡ ¡ ¡ ¡ ¡set ¡nega1on ¡ ¡set ¡nega1on ¡ Policies ¡ • 𝜐 ¡::= ¡ 𝑓 ¡→ {​𝑡↓ 1 ,…, ¡ ​𝑡↓𝑜 } ¡ac1on ¡ ¡::= ¡ 𝑓 ¡→ {​𝑡↓ 1 ,…, ¡ ​𝑡↓𝑜 } ¡ac1on ¡ ¡ ¡ ¡| ¡ ¡ ​𝜐↓ 1 ∪ ​𝜐↓ 2 ¡ ¡ ¡policy ¡union ¡ 18 ¡ ¡ ¡ ¡| ¡ ¡… ¡

  19. NetCore ¡Grammar ¡ Predicates ¡ Headers ¡ ℎ , ¡wildcards ¡ 𝑥 ¡ ¡ • 𝑓 ¡::= ¡ ℎ ¡: 𝑥 ¡ ¡ ¡ ¡ ¡primi1ve ¡match ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡primi1ve ¡match ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡| ¡ ¡switch ¡ 𝑡 ¡ ¡ ¡match ¡packets ¡at ¡switch ¡ ¡match ¡packets ¡at ¡switch ¡ ¡ ¡ ¡| ¡ ¡inspect ¡ 𝑔 ¡ ¡arbitrary ¡func1on ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∪ ​𝑓↓ 2 ¡ ¡ ¡set ¡union ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∖ ​𝑓↓ 2 ¡ ¡ ¡set ¡difference ¡ ¡ ¡ ¡| ¡ ¡ ​𝑓↓ 1 ∩ ​𝑓↓ 2 ¡ ¡ ¡set ¡intersec1on ¡ ¡ ¡ ¡| ¡ ¡ ¬ 𝑓 ¡ ¡ ¡ ¡ ¡set ¡nega1on ¡ ¡set ¡nega1on ¡ Policies ¡ • 𝜐 ¡::= ¡ 𝑓 ¡→ {​𝑡↓ 1 ,…, ¡ ​𝑡↓𝑜 } ¡ac1on ¡ ¡::= ¡ 𝑓 ¡→ {​𝑡↓ 1 ,…, ¡ ​𝑡↓𝑜 } ¡ac1on ¡ ¡ ¡ ¡| ¡ ¡ ​𝜐↓ 1 ∪ ​𝜐↓ 2 ¡ ¡ ¡policy ¡union ¡ 19 ¡ ¡ ¡ ¡| ¡ ¡… ¡

Recommend


More recommend