CICN Community InformationCentric Networking FD io The Universal
- Slides: 26
CICN Community Information-Centric Networking
FD. io: The Universal Dataplane • Project at Linux Foundation • Multi-party • Multi-project • Software Dataplane • • • High throughput Low Latency Feature Rich Resource Efficient Bare Metal/VM/Container Multiplatform • Fd. io Scope: • Network IO - NIC/v. NIC <-> cores/threads • Packet Processing – Classify/Transform/Prioritize/Forward/Terminate • Dataplane Management Agents - Control. Plane Bare Metal/VM/Container Dataplane Management Agent Packet Processing Network IO fd. io Foundation 2
Fd. io in the overall stack Application Layer/App Server Orchestration v. ICN Network Controller Data Plane Services Dataplane Management Agent Packet Processing Network IO Operation System Hardware fd. io Foundation 3
Multiparty: Broad Membership Service Providers Network Vendors Chip Vendors Integrators fd. io Foundation 4
Multiparty: Broad Contribution Qiniu Yandex Universitat Politècnica de Catalunya (UPC) fd. io Foundation 5
Code Activity • In the period since its inception, fd. io has more commits than OVS and DPDK combined, and more contributors than OVS 2016 -02 -11 to 2017 -04 -03 Fd. io OVS DPDK Commits 6283 2395 3289 Contributors 163 146 245 Organizations 42 52 78 Commits Contributors 8000 300 250 200 150 100 50 0 6000 4000 2000 0 80 60 40 20 Commits fd. io OVS Contributors DPDK fd. io Foundation Organizations fd. io OVS DPDK 0 Organizations fd. io OVS DPDK 6
Multiproject: Fd. io Projects Dataplane Management Agent v. ICN hc 2 vpp Testing/Support Honeycomb CSIT puppet-fdio Packet Processing ICNET CICN ONE odp 4 vpp TLDK VPP Sandbox trex VPP Network IO deb_dpdk rpm_dpdk fd. io Foundation 7
Fd. io Integrations Openstack Neutron Control Plane Integration work done at ODL Plugin Fd. io Plugin GBP app Lispflowmapping app VBD app SFC Netconf/Yang Data Plane LISP Mapping Protocol Netconf/yang Honeycomb REST Fd. io ML 2 Agent VPP fd. io Foundation 8
Vector Packet Processor - VPP Bare Metal/VM/Container Dataplane Management Agent Packet Processing Network IO • Packet Processing Platform: • High performance • Linux User space • Run’s on commodity CPUs: / / • Shipping at volume in server & embedded products since 2004. fd. io Foundation 9
Packet VPP Architecture: Packet Processing 0 1 2 3 … n Vector of n packets dpdk-input vhost-user-input … af-packet-input Input Graph Node ethernet-input ip 6 -rewrite ip 6 -input ip 4 -input ip 6 -lookup ip 4 -lookup ip 6 -local ip 4 -local mpls-input ip 4 -rewrite Graph Node … arp-input ip 4 -rewrite Packet Processing Graph
Packet VPP Architecture: Plugins 0 1 2 3 Hardware Plugin hw-accel-input dpdk-input vhost-user-input … af-packet-input ethernet-input ip 6 -input ip 4 -input mpls-input ip 6 -lookup ip 4 -lookup ip 6 -local ip 4 -local … arp-input Plugin icnfwd ip 4 -rewrite Packet Processing Graph Node /usr/lib/vpp_plugins/cicn-plugin. so ip 6 -rewrite n Vector of n packets Input Graph Node Skip sftw nodes where work is done by hardware already … custom-2 custom-3 Plugins are: First class citizens That can: Add graph nodes Add API Rearrange the graph Can be built independently of VPP source tree
VPP: How does it work? 1 vhost-userinput af-packetinput 2 dpdk-input Packet 0 … graph nodes are optimized to fit inside the instruction cache … Packet 1 ethernetinput Packet 2 Microprocessor Packet 3 Packet 4 mpls-input lldp-input arp-input cdp-input ip 4 -input l 2 -input ip 6 -input . . . -nochecksum Packet 5 Packet 6 3 Instruction Cache 4 Data Cache Packet 7 icnfwd ip 4 -lookupmulitcast Packet 8 Packet 9 Packet 10 mpls-policyencap ip 4 -loadbalance ip 4 -rewritetransit ip 4 midchain interfaceoutput Packet processing is decomposed into a directed graph node … * approx. 173 nodes in default deployment … packets moved through graph nodes in vector … … packets are pre-fetched, into the data cache …
VPP: How does it work? … instruction cache is warm with the instructions from a single graph node … Microprocessor 4 ethernet-input 6 dispatch fn() while packets in vector Get pointer to vector while 4 or more packets PREFETCH #3 and #4 PROCESS #1 and #2 ASSUME next_node same as last packet Update counters, advance buffers 5 Packet 1 Packet 2 Enqueue the packet to next_node while any packets <as above but single packet> … data cache is warm with a small number of packets. . … packets are processed in groups of four, any remaining packets are processed on by one …
VPP: How does it work? dispatch fn() while packets in vector Get pointer to vector 7 Microprocessor ethernet-input while 4 or more packets PREFETCH #1 and #2 PROCESS #1 and #2 ASSUME next_node same as last packet Update counters, advance buffers Packet 1 Packet 2 Enqueue the packet to next_node while any packets <as above but single packet> … prefetch packets #1 and #2 …
VPP: How does it work? dispatch fn() while packets in vector Get pointer to vector 8 Microprocessor ethernet-input while 4 or more packets PREFETCH #3 and #4 PROCESS #1 and #2 ASSUME next_node same as last packet Update counters, advance buffers Packet 1 Packet 2 Packet 3 Packet 4 Enqueue the packet to next_node while any packets <as above but single packet> … process packet #3 and #4 … … update counters, enqueue packets to the next node …
VPP Architecture: Programmability Example: v. ICN Architecture Control Plane Protocol Request Message 900 k request/s Model based configuration/management Request Message Linux Hosts Shared Memory Request Queue … … Agent … VPP Response Queue v. ICN … CICN VPP Response Queue Can use C/Java/Python/or Lua Language bindings Async Response Message fd. io Foundation Async Response Message 16
Universal Dataplane: Features Hardware Platforms Pure Userspace - X 86, ARM 32/64, Power Raspberry Pi Interfaces DPDK/Netmap/AF_Packet/Tun. Tap Vhost-user - multi-queue, reconnect, Jumbo Frame Support Language Bindings Routing IPv 4/IPv 6 14+ MPPS, single core Hierarchical FIBs Multimillion FIB entries Source RPF Thousands of VRFs Controlled cross-VRF lookups Multipath – ECMP and Unequal Cost ICN PIT/CS/FIB Strategy layer C/Java/Python/Lua Switching VLAN Support Single/ Double tag L 2 forwd w/EFP/Bridge. Domain concepts VTR – push/pop/Translate (1: 1, 1: 2, 2: 1, 2: 2) Mac Learning – default limit of 50 k addr Bridging Split-horizon group support/EFP Filtering Proxy Arp termination IRB - BVI Support with Router. Mac assigmt Flooding Input ACLs Interface cross-connect L 2 GRE over IPSec tunnels Segment Routing Tunnels/Encaps GRE/VXLAN-GPE/LISP-GPE/NSH IPSEC Including HW offload when available MPLS over Ethernet/GRE Deep label stacks supported SR MPLS/IPv 6 Including Multicast LISP x. TR/RTR L 2 Overlays over LISP and GRE encaps Multitenancy Multihome Map/Resolver Failover Source/Dest control plane support Map-Register/Map-Notify/RLOC-probing Security Mandatory Input Checks: TTL expiration header checksum L 2 length < IP length ARP resolution/snooping ARP proxy SNAT Ingress Port Range Filtering Per interface whitelists Policy/Security Groups/GBP (Classifier) fd. io Foundation Network Services DHCPv 4 client/proxy DHCPv 6 Proxy MAP/LW 46 – IPv 4 aas Mag. Lev-like Load Identifier Locator Addressing NSH SFC SFF’s & NSH Proxy LLDP BFD Policer Multiple million Classifiers – Arbitrary N-tuple Inband i. OAM Telemetry export infra (raw IPFIX) i. OAM for VXLAN-GPE (NGENA) SRv 6 and i. OAM co-existence i. OAM proxy mode / caching i. OAM probe and responder Monitoring Simple Port Analyzer (SPAN) IP Flow Export (IPFIX) Counters for everything Lawful Intercept 17
Continuous Quality, Performance, Usability Built into the development process – patch by patch Submit Automated Verify Code Review Build/Unit Testing 120 Tests/Patch System Functional Testing 252 Tests/Patch Build binary packaging for Ubuntu 14. 04 Ubuntu 16. 04 Centos 7 Automated Style Checking Unit test : IPv 6 IPFIX IP Multicast BFD L 2 FIB Classifier L 2 Bridge Domain DHCP MPLS FIB SNAT GRE SPAN IPv 4 VXLAN IPv 4 IRB IPv 4 multi-VRF DHCP – Client and Proxy GRE Overlay Tunnels L 2 BD Ethernet Switching L 2 Cross Connect Ethernet Switching LISP Overlay Tunnels IPv 4 -in-IPv 6 Softwire Tunnels Cop Address Security IPSec IPv 6 Routing – NS/ND, RA, ICMPv 6 u. RPF Security Tap Interface Telemetry – IPFIX and Span VRF Routed Forwarding i. ACL Security – Ingress – IPv 6/Mac IPv 4 Routing Qo. S Policer Metering VLAN Tag Translation VXLAN Overlay Tunnels fd. io Foundation Performance Testing 144 Tests/Patch, 841 Tests L 2 Cross Connect L 2 Bridging IPv 4 Routing IPv 6 Routing IPv 4 Scale – 20 k, 200 k, 2 M FIB Entries IPv 4 Scale - 20 k, 200 k, 2 M FIB Entries VM with vhost-userr PHYS-VPP-VM-VPP-PHYS L 2 Cross Connect/Bridge VXLAN w/L 2 Bridge Domain IPv 4 Routing COP – IPv 4/IPv 6 whiteless i. ACL – ingress IPv 4/IPv 6 ACLs LISP – IPv 4 -o-IPv 6/IPv 6 -o-IPv 4 VXLAN Qo. S Policer L 2 Cross over L 2 Bridging Merge Publish Artifacts Usability Merge-by-merge: apt installable deb packaging yum installable rpm packaging autogenerated code documentation autogenerated cli documentation Per release: autogenerated testing reports report perf improvements Puppet modules Training/Tutorial videos Hands-on-usecase documentation Merge-by-merge packaging feeds Downstream consumer CI pipelines 18 Run on real hardware in fd. io Performance Lab
Universal Dataplane: Infrastructure Bare Metal Cloud/NFVi Container Infra Server VM VM VM Con FD. io Kernel/Hypervisor Kernel fd. io Foundation Con 19
Universal Dataplane: VNFs FD. io based VNFs Server VM VM FD. io Con FD. io Kernel/Hypervisor fd. io Foundation 20
Universal Dataplane: Embedded Device Smart. Nic Device Server Kernel/Hypervisor FD. io Kernel/Hypervisor Hw Accel fd. io Foundation Smart. Nic FD. io Hw Accel 21
Universal Dataplane: CICN Example Physical CICN router CICN in a VM CICN in a Container Device Server VM VM FD. io docker FD. io LXC FD. io Kernel/Hypervisor Hw Accel Kernel/Hypervisor fd. io Foundation FD. io Kernel/Hypervisor 22
Universal Dataplane: communication/API Consumer/Producer Socket API Server LXC LXD app Socket API 23 LXC FD. io MEMIF Segmentation/Naming Manifest management Reassembly Flow and Congestion Control MEMIF FD. io AF-PACKET Kernel/Hypervisor DPDK • • Nic fd. io Foundation Existing drivers for links • DPDK • AF-PACKET • MEMIF (SHARED MEMORY)
CICN distribution • Core libraries • Consumer/Producer Socket API, CCNx libs, PARC C libraries • Server and Router • VPP cicn plugin for Ubuntu 16, Cent. OS 7 • HTTP video server • Client • • Metis Forwarder VIPER MPEG-DASH video player Android 7, Mac. OS X 10. 12, i. OS 10, Ubuntu 16, Cent. OS 7 Soon Apple Store and Google Play • v. ICN • intent-based networking • model driven programmable framework • monitoring and streaming for Big. Data support
Opportunities to Contribute We invite you to Participate in fd. io • Forwarding strategies • Mobility management • Get the Code, Build the Code, Run the Code, install from binaries • Hardware Accelerators • from binary packages • v. ICN, configuration/management/control • Read/Watch the Tutorials • Consumer/Producer Socket API • Join the Mailing Lists • Reliable Transport • Join the IRC Channels • Instrumentation tools • Explore the wiki • HTTP integration • Join fd. io as a member • https: //wiki. fd. io/view/cicn • https: //wiki. fd. io/view/vicn • https: //fd. io/ fd. io Foundation 25
- Sdn and traditional networking
- Universal networking language
- Khi nào hổ mẹ dạy hổ con săn mồi
- Các châu lục và đại dương trên thế giới
- Dot
- Bổ thể
- Thế nào là sự mỏi cơ
- Phản ứng thế ankan
- Thiếu nhi thế giới liên hoan
- Vẽ hình chiếu vuông góc của vật thể sau
- Hát lên người ơi
- điện thế nghỉ
- Một số thể thơ truyền thống
- Sơ đồ cơ thể người
- Công thức tính thế năng
- Số nguyên tố là gì
- Tỉ lệ cơ thể trẻ em
- đặc điểm cơ thể của người tối cổ
- Các châu lục và đại dương trên thế giới
- ưu thế lai là gì
- Thẻ vin
- Môn thể thao bắt đầu bằng chữ f
- Tư thế ngồi viết
- Cái miệng nó xinh thế
- Hình ảnh bộ gõ cơ thể búng tay
- Từ ngữ thể hiện lòng nhân hậu
- Trời xanh đây là của chúng ta thể thơ