Loc Nguyen, Intel Data Center Engineering Team Out of the Box Network Developers Meetup, 6/20/2018
2 Today’s Agenda  Introductions, Mine and Yours  Technology Description – VPP Architecture – TRex*  Lab – Download and build VPP* – Download Trex – Configure VPP and TRex – Test – Summary / Q&A
4 Let’s Get to Know One Another  Me – Software Application Engineer at Intel – Background with HPC, quite new to NFV/Networking  You?
- VPP - TRex
6 Vector Packet Processing (VPP) Introduction  Vector Packet Processing is the open source high-performance packet processing software, in development since 2002.  Open source version of Cisco’s VPP Technology.  The VPP platform provides a production-quality switch/router functionality.  It uses Data Plane Development Kit (DPDK) to take advantage of fast I/O. DPDK provides fast packet processing libraries and user space drivers. It can receive and send packets with the minimum number of CPU cycle by bypassing the kernel and use a user poll mode driver.
7 Vector Packet Processing (continued) • Packet Processing Graph: VPP reads a large number of packets (called vector) from the network I/O layer (DPDK input), then passes it to the packet processing graph where each node provides a specific network function to packets and each directed edge indicates the next network function that handle the packets. • Handle packet processing in batches, up to 256 packets at a time. The whole vector of packets is processed by a graph node. When done, the whole vector is moved to the next graph node. • When a vector of packets is handled by a node, only the first packet in the batch needs to load the CPU’s instructions to the cache; the rest of the packets can benefit the from the instruction already in the cache.
8 Vector Packet Processing (continued)  VPP architecture is flexible to allow users to create new nodes, enter them into the packet processing graph, and rearrange the graph.  Run in user space.  VPP can be used on bare metal, virtual machines (VMs), or containers.  Run on x86, ARM, Power* architecture.
9 IPv4/IPv6 14+ MPPS, single core Multimillion entry FIBs Input Checks Source RPF TTL expiration header checksum L2 length < IP length ARP resolution/snooping ARP proxy Thousands of VRFs Controlled cross-VRF lookups Multipath – ECMP and Unequal Cost Multiple million Classifiers – IPv4 GRE, MPLS-GRE, NSH-GRE, VXLAN IPSEC DHCP client/proxy IPv6 Neighbor discovery Router Advertisement DHCPv6 Proxy L2TPv3 Segment Routing MAP/LW46 – IPv4aas iOAM Some VPP Rich Features (source https://wiki.fd.io/view/VPP/What_is_VPP%3F )
10 Cisco’s TRex* • An open source traffic generator (Realistic Traffic Generator). • Run on Intel® processor. • Based on DPDK. • Work with Intel® NICs. • Can generate L4-L7 traffic based on pre-processing of real traffic templates.
11 Stateful Feature sets DPDK 1/2.5/5/10/25/40/50/100Gbps interfaces support High scale of realistic traffic, up to 200- 400Gb/sec with one Cisco UCS Latency/Jitter measurements Flow ordering checks NAT, PAT dynamic translation learning Stateless Feature sets Crafting and generating stateless traffic streams Large scale - Supports up to 20 million packets per second (mpps) Multiple streams support Ability to change any field inside the packet Continuous/Burst/Multi-burst support Interactive support - Console, GUI Per stream statistics, latency and Jitter Python API for automation Some TRex Features (source https://trex-tgn.cisco.com/ )
• Download and build VPP • Download Trex* • Configure VPP and TRex • Test
13 The Lab Environment • Two servers are used: Intel® Xeon® Gold 6140 CPU processor @ 2.30GHz, two sockets with 18 cores/socket; and E5-2699 v4 @ 2.2 GHz, two sockets with 22 cores/socket. 64-bit Ubuntu* 16.04 LTS are installed. • On each server, a dual port 25-GbE Intel® Ethernet Controller XXV710 are used to connect these systems. Refer to the following Figure for the setting.
14 dskl10 dbdw01 10.10.1.210.10.1.1 10.10.2.1 10.10.2.2 [18:0.0] [81:0.1][18:0.1] [81:0.0]
15 Login • Use an ssh client to connect to the jump server at 207.108.8.164. (PuTTY is a good ssh client for Windows machines. https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html ) • Use the username and password provided for the jump server. • Once connected to the jump server, you can connect via SSH to the server dskl10 where you will install VPP. • $ ssh ubuntu@dskl10 , password: ubuntu . • From the jump server, you can connect via SSH to your second server, dbdw01 where you will install TRex. • $ ssh ubuntu@dbdw01 , password: ubuntu .
16 VPP Configuration • After VPP is installed, two VPP configuration files are created. o The /etc/sysctl.d/80-vpp.conf file is used to configure huge pages. o The /etc/vpp/startup.conf file is used to configure how the worker thread are allocated. • You can use VPP CLI (vppctl) to configure Network cards, add route in the VPP, etc.
17 TRex Configuration • By default, a configuration file located at /etc/trex_cfg.yaml, is used by TRex when it starts (configure the Network ports). • Each test is executed by calling a corresponding traffic configuration file. In this lab, we use the following sample traffic configuration files: o cap2/dns.yaml o sfr_delay_10_1g.yaml
18 References • VPP Overview https://www.youtube.com/watch?v=ifzv-V_ec30 • FDIO Quick Start Guide https://docs.google.com/document/d/1zqYN7qMavgbdkPWIJIrsPXlxNOZ_Gh EveHQxpYr3qrg/edit • Data Plane Development Kit (DPDK) Documentation http://dpdk.org/doc • TRex* Documentation https://trex-tgn.cisco.com/trex/doc/ • Building a Fast Network Stack with Vector Packet Processing (VPP) on an Intel® Architecture Server https://software.intel.com/en-us/articles/build-a- fast-network-stack-with-vpp-on-an-intel-architecture-server
19 Legal Disclaimers No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document. Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade. This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest forecast, schedule, specifications and roadmaps. The products and services described may contain defects or errors known as errata which may cause deviations from published specifications. Current characterized errata are available on request. Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800- 548-4725 or by visiting www.intel.com/design/literature.htm. Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others Copyright © 2018 Intel Corporation. All rights reserved.
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*

Install FD.IO VPP On Intel(r) Architecture & Test with Trex*

  • 1.
    Loc Nguyen, IntelData Center Engineering Team Out of the Box Network Developers Meetup, 6/20/2018
  • 2.
    2 Today’s Agenda  Introductions,Mine and Yours  Technology Description – VPP Architecture – TRex*  Lab – Download and build VPP* – Download Trex – Configure VPP and TRex – Test – Summary / Q&A
  • 4.
    4 Let’s Get toKnow One Another  Me – Software Application Engineer at Intel – Background with HPC, quite new to NFV/Networking  You?
  • 5.
  • 6.
    6 Vector Packet Processing(VPP) Introduction  Vector Packet Processing is the open source high-performance packet processing software, in development since 2002.  Open source version of Cisco’s VPP Technology.  The VPP platform provides a production-quality switch/router functionality.  It uses Data Plane Development Kit (DPDK) to take advantage of fast I/O. DPDK provides fast packet processing libraries and user space drivers. It can receive and send packets with the minimum number of CPU cycle by bypassing the kernel and use a user poll mode driver.
  • 7.
    7 Vector Packet Processing(continued) • Packet Processing Graph: VPP reads a large number of packets (called vector) from the network I/O layer (DPDK input), then passes it to the packet processing graph where each node provides a specific network function to packets and each directed edge indicates the next network function that handle the packets. • Handle packet processing in batches, up to 256 packets at a time. The whole vector of packets is processed by a graph node. When done, the whole vector is moved to the next graph node. • When a vector of packets is handled by a node, only the first packet in the batch needs to load the CPU’s instructions to the cache; the rest of the packets can benefit the from the instruction already in the cache.
  • 8.
    8 Vector Packet Processing(continued)  VPP architecture is flexible to allow users to create new nodes, enter them into the packet processing graph, and rearrange the graph.  Run in user space.  VPP can be used on bare metal, virtual machines (VMs), or containers.  Run on x86, ARM, Power* architecture.
  • 9.
    9 IPv4/IPv6 14+ MPPS, singlecore Multimillion entry FIBs Input Checks Source RPF TTL expiration header checksum L2 length < IP length ARP resolution/snooping ARP proxy Thousands of VRFs Controlled cross-VRF lookups Multipath – ECMP and Unequal Cost Multiple million Classifiers – IPv4 GRE, MPLS-GRE, NSH-GRE, VXLAN IPSEC DHCP client/proxy IPv6 Neighbor discovery Router Advertisement DHCPv6 Proxy L2TPv3 Segment Routing MAP/LW46 – IPv4aas iOAM Some VPP Rich Features (source https://wiki.fd.io/view/VPP/What_is_VPP%3F )
  • 10.
    10 Cisco’s TRex* • Anopen source traffic generator (Realistic Traffic Generator). • Run on Intel® processor. • Based on DPDK. • Work with Intel® NICs. • Can generate L4-L7 traffic based on pre-processing of real traffic templates.
  • 11.
    11 Stateful Feature sets DPDK1/2.5/5/10/25/40/50/100Gbps interfaces support High scale of realistic traffic, up to 200- 400Gb/sec with one Cisco UCS Latency/Jitter measurements Flow ordering checks NAT, PAT dynamic translation learning Stateless Feature sets Crafting and generating stateless traffic streams Large scale - Supports up to 20 million packets per second (mpps) Multiple streams support Ability to change any field inside the packet Continuous/Burst/Multi-burst support Interactive support - Console, GUI Per stream statistics, latency and Jitter Python API for automation Some TRex Features (source https://trex-tgn.cisco.com/ )
  • 12.
    • Download andbuild VPP • Download Trex* • Configure VPP and TRex • Test
  • 13.
    13 The Lab Environment •Two servers are used: Intel® Xeon® Gold 6140 CPU processor @ 2.30GHz, two sockets with 18 cores/socket; and E5-2699 v4 @ 2.2 GHz, two sockets with 22 cores/socket. 64-bit Ubuntu* 16.04 LTS are installed. • On each server, a dual port 25-GbE Intel® Ethernet Controller XXV710 are used to connect these systems. Refer to the following Figure for the setting.
  • 14.
  • 15.
    15 Login • Use anssh client to connect to the jump server at 207.108.8.164. (PuTTY is a good ssh client for Windows machines. https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html ) • Use the username and password provided for the jump server. • Once connected to the jump server, you can connect via SSH to the server dskl10 where you will install VPP. • $ ssh ubuntu@dskl10 , password: ubuntu . • From the jump server, you can connect via SSH to your second server, dbdw01 where you will install TRex. • $ ssh ubuntu@dbdw01 , password: ubuntu .
  • 16.
    16 VPP Configuration • AfterVPP is installed, two VPP configuration files are created. o The /etc/sysctl.d/80-vpp.conf file is used to configure huge pages. o The /etc/vpp/startup.conf file is used to configure how the worker thread are allocated. • You can use VPP CLI (vppctl) to configure Network cards, add route in the VPP, etc.
  • 17.
    17 TRex Configuration • Bydefault, a configuration file located at /etc/trex_cfg.yaml, is used by TRex when it starts (configure the Network ports). • Each test is executed by calling a corresponding traffic configuration file. In this lab, we use the following sample traffic configuration files: o cap2/dns.yaml o sfr_delay_10_1g.yaml
  • 18.
    18 References • VPP Overviewhttps://www.youtube.com/watch?v=ifzv-V_ec30 • FDIO Quick Start Guide https://docs.google.com/document/d/1zqYN7qMavgbdkPWIJIrsPXlxNOZ_Gh EveHQxpYr3qrg/edit • Data Plane Development Kit (DPDK) Documentation http://dpdk.org/doc • TRex* Documentation https://trex-tgn.cisco.com/trex/doc/ • Building a Fast Network Stack with Vector Packet Processing (VPP) on an Intel® Architecture Server https://software.intel.com/en-us/articles/build-a- fast-network-stack-with-vpp-on-an-intel-architecture-server
  • 19.
    19 Legal Disclaimers No license(express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document. Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade. This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest forecast, schedule, specifications and roadmaps. The products and services described may contain defects or errors known as errata which may cause deviations from published specifications. Current characterized errata are available on request. Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800- 548-4725 or by visiting www.intel.com/design/literature.htm. Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others Copyright © 2018 Intel Corporation. All rights reserved.