libvnf building vnfs made easy
play

libVNF: building VNFs made easy Priyanka Naik, Akash Kanase, Trishal - PowerPoint PPT Presentation

libVNF: building VNFs made easy Priyanka Naik, Akash Kanase, Trishal Patel, Mythili Vutukuru Dept. of Computer Science and Engineering Indian Institute of Technology, Bombay SoCC18 11 th October, 2018 NFV ecosystem Orchestrator Firewall


  1. libVNF: building VNFs made easy Priyanka Naik, Akash Kanase, Trishal Patel, Mythili Vutukuru Dept. of Computer Science and Engineering Indian Institute of Technology, Bombay SoCC’18 11 th October, 2018

  2. NFV ecosystem Orchestrator Firewall VNF VNF VNF VNF Load balancer VM VM VM VM Router Hypervisor Network address translator NFV: Network Function Virtualization VNF: Virtual Network Function � 2

  3. NFV ecosystem ● Will they give good performance ? ● Is it easy to build them? Orchestrator Firewall VNF VNF VNF VNF Load balancer VM VM VM VM Router Hypervisor Network address translator NFV: Network Function Virtualization VNF: Virtual Network Function � 3

  4. How to build VNF? VNF code developed by VNF developer � 4

  5. How to build VNF? VNF code developed by VNF developer 38% EPC code → read/write packets � 4 CORD Intel EPC: https://gerrit.opencord.org/ngic

  6. How to build VNF? VNF Processing logic VNF code developed by VNF developer VNF Framework 38% EPC code → read/write packets � 4 CORD Intel EPC: https://gerrit.opencord.org/ngic

  7. How to build VNF? VNF Processing logic VNF Framework netbricks StatelessNF OpenNF VPP � 4

  8. How to build VNF? VNF Processing logic VNF Framework netbricks StatelessNF OpenNF VPP What is missing in these frameworks? � 4

  9. What is required from VNF frameworks? Requirement 1: Support for both L3 and Transport VNF ● Requirement 2: Flexibility of network stack ● Requirement 3: Support for distributed state management ● � 5

  10. What is required from VNF frameworks? Requirement 1: Support for both L3 and Transport VNF ● Requirement 2: Flexibility of network stack ● Requirement 3: Support for distributed state management ● � 6

  11. Support for L3 and transport VNFs Layer 3 VNFs Network address Layer 3 Load balancer translator � 7

  12. Support for L3 and transport VNFs Layer 3 VNFs Network address Layer 3 Load balancer translator Header manipulations N/W layer Data link layer � 7

  13. Support for L3 and transport VNFs Layer 3 VNFs Network address Layer 3 Load balancer translator Header manipulations N/W layer Data link layer Frameworks: netbricks, YANFF � 7

  14. Support for L3 and transport VNFs Layer 3 VNFs Transport Layer VNFs internet vEPC Network address Layer 3 Load balancer translator Header manipulations N/W layer Data link layer Frameworks: netbricks, YANFF � 7

  15. Support for L3 and transport VNFs Layer 3 VNFs Transport Layer VNFs internet vEPC Network address Layer 3 Load balancer translator Request processing Header manipulations Connection Connection Transport Layer termination initiation N/W layer N/W layer Data link layer Data link layer Frameworks: netbricks, YANFF � 7

  16. Support for L3 and transport VNFs Layer 3 VNFs Transport Layer VNFs internet vEPC Network address Layer 3 Load balancer translator Request processing Header manipulations Connection Connection Transport Layer termination initiation N/W layer N/W layer Data link layer Data link layer Frameworks: netbricks, YANFF Frameworks: mTCP, TLDK Netbricks: Taking the v out of nfv. In Proc. of OSDI’16 YANFF: https://www.openhub.net/p/yanff � 7 mTCP: A highly scalable user-level tcp stack for multicore systems. In Proc. of NSDI’14 TLDK: https://wiki.fd.io/view/TLDK

  17. Support for L3 and transport VNFs Layer 3 VNFs Transport Layer VNFs internet vEPC Network address Layer 3 Load balancer translator Request processing Header manipulations Connection Connection Transport Layer termination initiation N/W layer N/W layer Data link layer Data link layer Frameworks: netbricks, YANFF Frameworks: mTCP, TLDK Are these frameworks enough? Netbricks: Taking the v out of nfv. In Proc. of OSDI’16 YANFF: https://www.openhub.net/p/yanff � 7 mTCP: A highly scalable user-level tcp stack for multicore systems. In Proc. of NSDI’14 TLDK: https://wiki.fd.io/view/TLDK

  18. Event driven I/O Existing transport-layer frameworks are event-driven � 8

  19. Event driven I/O Existing transport-layer frameworks are event-driven Pros: � 8

  20. Event driven I/O Existing transport-layer frameworks are event-driven Pros: Efficient for multi-core scalability ● � 8

  21. Event driven I/O Existing transport-layer frameworks are event-driven Pros: Efficient for multi-core scalability ● � 8

  22. Event driven I/O Existing transport-layer frameworks are event-driven Pros: Efficient for multi-core scalability ● Cons: � 8

  23. Event driven I/O Existing transport-layer frameworks are event-driven Pros: Efficient for multi-core scalability ● Cons: Needs explicit request state storage ● � 8

  24. Need to maintain request state 1 2 A B C 4 3 � 9

  25. Need to maintain request state 1 2 A B C 4 3 State at B to process A’s request A’s request C’s reply Connection identifiers � 9

  26. Need to maintain request state VNF processing layer (abstraction ?) 1 2 A B C network stack (mTCP) 4 3 ( connection ) State at B to process A’s request A’s request C’s reply DPDK and netmap layer Connection identifiers ( packet ) � 9

  27. Need to maintain request state VNF processing layer (abstraction ?) 1 2 A B C network stack (mTCP) 4 3 ( connection ) State at B to process A’s request A’s request C’s reply DPDK and netmap layer Connection identifiers ( packet ) Existing frameworks do not provide this support � 9

  28. What is required from VNF frameworks? Requirement 1: Support for both Layer 3 and Transport VNF ● Requirement 2: Flexibility of network stack ● Requirement 3: Support for distributed state management ● � 10

  29. Flexibility of network stack Kernel Stack Application VNF Kernel network stack vNIC � 11

  30. Flexibility of network stack Kernel Stack Kernel Bypass Stack Application VNF Application VNF + userspace stack Kernel network DPDK/netmap stack vNIC vNIC � 11

  31. Flexibility of network stack Kernel Stack Kernel Bypass Stack Application VNF Application VNF + userspace stack Kernel network DPDK/netmap stack vNIC vNIC Easy switch between stacks � 11

  32. What is required from VNF frameworks? Requirement 1: Support for both L3 and Transport VNF ● Requirement 2: Flexibility of network stack ● Requirement 3: Support for distributed state management ● � 12

  33. Support for distributed state management Orchestrator VNF VNF VNF VNF 3 2 2 1 VM VM VM VM Hypervisor � 13

  34. Support for distributed state management VNF VNF 2 2 State Synchronization � 13

  35. Support for distributed state management VNF VNF 2 2 State Migration openNF, split/merge State Synchronization � 13

  36. Support for distributed state management Data Store Remote store statelessNF VNF VNF 2 2 State Migration openNF, split/merge State Synchronization Stateless network functions: Breaking the tight coupling of state and processing. In Proc. of NSDI’17 Split/merge: System support for elastic execution in virtual middleboxes. In Proc. of NSDI’13 Opennf: Enabling innovation in network function control. In Proc. of SIGCOMM’14 � 13

  37. Support for distributed state management Data Store Remote store statelessNF VNF VNF 2 2 State Migration openNF, split/merge State Synchronization None of above support transport layer VNFs Stateless network functions: Breaking the tight coupling of state and processing. In Proc. of NSDI’17 Split/merge: System support for elastic execution in virtual middleboxes. In Proc. of NSDI’13 Opennf: Enabling innovation in network function control. In Proc. of SIGCOMM’14 � 13

  38. Summary of VNF Frameworks Requirement/ netbricks Flick StatelessNF Split-Merge/ libVNF Framework OpenNF Layer 3 + App- no yes no no yes layer support Flexibility of no no no no yes network stack Distributed no no yes yes yes State Management Netbricks: Taking the v out of nfv. In Proc. of OSDI’16 Flick: Developing and running application-specific network services. In Proc. of USENIX ATC’16 Stateless network functions: Breaking the tight coupling of state and processing. In Proc. of NSDI’17 Split/merge: System support for elastic execution in virtual middleboxes. In Proc. of NSDI’13 � 14 Opennf: Enabling innovation in network function control. In Proc. of SIGCOMM’14

  39. libVNF Design Goals Handled by VNF processing logic VNF developer Distributed State Management R3 Handled by Support for network and transport layer libVNF R2 VNF Flexibility of network stack R1 R: Requirement � 15

  40. libVNF overview VNF code API Calls libVNF API � 16

  41. libVNF overview VNF code API Calls libVNF API mTCP+ netmap/DPDK Kernel stack initialization Stack initialization initialization � 16

  42. libVNF overview VNF code API Calls libVNF API mTCP+ netmap/DPDK Kernel stack initialization Stack initialization initialization Per-core threads � 16

  43. libVNF overview VNF code API Calls libVNF API mTCP+ netmap/DPDK Kernel stack initialization Stack initialization initialization Per-core threads Per-core data structures ● Lock-free ● Cache optimized � 16

  44. libVNF API libVNF API Communication Request state State Management � 17

  45. libVNF API libVNF API Request state State Management � 18

Recommend


More recommend