5G Core network load test system with DPDK

5G Core network load test system with DPDK

展开查看详情

1.5G Core Network Load Test System with DPDK Xiaohua Wang @ DPDK China 2019

2.Content • Background • 5GC and CUPS • Extreme high throughput, Ultra low latency • Challenges • Measure and verify 5GC performance • Load Testing System for 5GC • Payload Engine with DPDK • Experiences of developing with DPDK • Tips on performance • DPDK in docker with SR-IOV • DPDK 18.11 on Intel and Mellanox NIC

3.5GC and CUPS • CP • SBA • SBI • HTTP2 • Restful • UP Control Plane • GTP-U User Plane

4.Extreme high throughput, Ultra low latency • UP Peak Data Rate: • Downlink: 20 Gbit/s • Uplink: 10 Gbit/s • UP Latency: • 4 ms for eMBB, • 1 ms for URLLC

5. Performance requirements for high data rate and traffic density scenarios. Challenges • How to measure and verify UP? • Extreme high throughput • Ultra low latency • Complex Service and Traffic Model • Interaction with control plane

6.Load Testing System for 5GC • Support to test towards all OAM 5GC core NFs and their combinations Simulated NFs • Support to work on bare metal, VM and docker • NF: network function Signaling Load Balancer Payload Engine (Based on DPDK) SUT (5GC NFs and their combinations)

7.Payload Engine (PE), Fast Path for user plane • Developed based on DPDK • Support to test UP in 5GC • Support to test throughput and latency from 5GC e2e

8.Slow Path using TAP device for control plane • Support to test control plane and signaling (GTP- C/TCP/SCTP based protocol) collocated with payload engine developed with DPDK

9.Experiences of developing with DPDK • Tips on performance • DPDK in docker with SR-IOV • DPDK 18.11 on Intel and Mellanox NIC

10.Tips on performance NUMA Global Lock Prefetch • Memory pool • Design for localization • Used on array usually • Hash table • Allocation on stack • Consider the data size • Rte_ring • Per-core data structure • Rte_malloc • Minimize lock scope • Sperate reading and writing

11.Experiences of developing with DPDK • Tips on performance • DPDK in docker with SR-IOV • DPDK 18.11 on Intel and Mellanox NIC

12. Networking OAM OAM Network (Bridge) Simulated Simulated Simulated Simulated NF NF Internal NF NF Network (Bridge) PE SCTP/TCP Signaling Network Payload Network (VF by SR-IOV) (VF by SR-IOV)

13.Tips for SR-IOV • On Host (NIC: Intel XL710) • dpdk-devbind -b i40e "0000:81:00.0“ • ip link set dev p1p1 up • echo 0 > /sys/bus/pci/devices/"0000:81:00.0"/sriov_numvfs • echo 3 > /sys/bus/pci/devices/"0000:81:00.0"/sriov_numvfs • dpdk-devbind --bind=igb_uio "0000:81:02.0" "0000:81:02.1" "0000:81:02.2“ • VF mac address • Need to set mac address to enable VF to route by mac address • VLAN tags • Need to take care of VLAN tag in DPDK or on VF setting • Docker container • privileged: true • volumes: - /dev/hugepages:/dev/hugepages

14.Experiences of developing with DPDK • Tips on performance • DPDK in docker with SR-IOV • DPDK 18.11 on Intel and Mellanox NIC

15.DPDK 18.11 on Intel and Mellanox NIC • Intel XL710 (40Gbps) • For high performance, to use “Legacy memory mode” instead of “Dynamic memory mode” • Enabled by specifying --legacy-mem command-line switch to the EAL • Mellanox ConnectX-5 (100Gpbs) • Can’t work properly with legacy mode, need to use “Dynamic memory mode” instead of “Legacy memory mode” • But introduces some performance degradation • Enabled by default on Linux

16.Q&A