Nerpa: full-stack SDN

Nerpa: full-stack SDN
Slide Note
Embed
Share

This workshop, hosted by VMware, offers a deep dive into full-stack software-defined networking (SDN) principles led by experts such as Mihai Budiu, Ben Pfaff, Debnil Sur, and Leonid Ryzhyk. Participants will engage in hands-on sessions, discussions, and practical exercises designed to enhance their understanding of FlexNet technologies. Join us in Houston on August 25-26, 2022, to elevate your knowledge and skills in this cutting-edge field.

  • Nerpa
  • Full-Stack
  • SDN
  • VMware
  • Workshop

Uploaded on Feb 16, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Nerpa: full-stack SDN Mihai Budiu Ben Pfaff, Debnil Sur, Leonid Ryzhyk VMware FlexNet Workshop Houston, August 25-26, 2022

  2. Vision Program Management plane Control plane Data planes planes planes Data Data 2

  3. The three planes for a lightbulb 3

  4. Our approach DB schema DDlog program P4 program Type checked Differential Datalog OVSDB P4 Data planes planes Data Management plane Control plane Data planes 4

  5. Management plane Represent and persist network state as database relations E.g., tables of switches, links, hosts, policies, etc. Use DB APIs to read/write the network state Desired state Changes control plane DB API Changes Realized state 5

  6. Control-plane Express network state as database views Queries compute views as functions of the realized and desired state Maintains the contents of the views automatically and incrementally queries views Desired state routing Changes Changes data planes mgmt plane vlan Changes Changes Changes Realized state 6

  7. Data planes views VMs views Changes OvS Changes Changes Dispatch Changes Changes control plane switches switch Changes Changes Monitoring Changes 7

  8. Programming the system Written by programmers DDlog program P4 program OVSDB schema output relations input relations Compiler Compiler Compiler Rust P4 Runtime Control plane wrapper wrapper Rust Rust OVSDB P4 8

  9. Incremental computation Query Input tables Output tables 9

  10. Differential Differential Datalog Incremental query Input tables Output tables 10

  11. Open-source components Nerpa: https://github.com/vmware/nerpa Includes a prototype P4 to OpenFlow compiler Differential Datalog: https://github.com/vmware/differential-datalog OVN (open virtual network controller): https://www.ovn.org DBSP: streaming incremental query engine: https://github.com/vmware/database-stream-processor 11

  12. Conclusion Treat the network as a single heterogeneous distributed system Program the whole network stack, not disjoint parts Automate as much as possible Typecheck the whole stack Data exchange Incremental computation Everything is a change 12

  13. Simplified example: Routing in DDlog input relation Switch( id: uuid_t) input relation Link( from_switch: uuid_t, to_switch: port: port_t Topology uuid_t, Routing input relation Route( subnet : ip_subnet_t, gw_switch: uuid_t, distance : int) ShortestRoute(subnet,switch) :- Route(subnet,sw,d), var switch = Aggregate((subnet), arg_min(sw, d)). output relation ShortestRoute( subnet : ip_subnet_t, gw_switch: uuid_t) output relation NextHop( subnet: ip_subnet_t, switch: uuid_t, port : port_t) Topology x Routing NextHop(subnet,switch,PHY_PORT) :- ShortestRoute(subnet,switch). NextHop(subnet,switch,port) :- ShortestRoute(subnet,gateway), Link(switch, gateway, port). 13

More Related Content