nfv validation and troubleshooting live demo for vran
play

NFV validation and troubleshooting live demo for vRAN (Telco EDGE) - PowerPoint PPT Presentation

NFV validation and troubleshooting live demo for vRAN (Telco EDGE) Franck Baudin, Sr Principal Product Manager - NFV Christophe Fontaine, Senior Software Engineer - NFV Open Infrastructure summit, Denver April 30th Deployment overview 1/3


  1. NFV validation and troubleshooting live demo for vRAN (Telco EDGE) Franck Baudin, Sr Principal Product Manager - NFV Christophe Fontaine, Senior Software Engineer - NFV Open Infrastructure summit, Denver April 30th

  2. Deployment overview 1/3 Dedicated session: “Demonstrating at-scale monitoring using Prometheus” Tomorrow at 4:20 room 505 undercloud provisioning-network compute controller collectd compute controller controller controller compute controller storage compute prometheus controllers Grafana openstack-networks

  3. Deployment overview 2/3 core site edge site undercloud provisioning-network provisioning-edge controller collectd controller controller computes controller compute compute-rt controller prometheus controllers hci Grafana openstack-networks openstack-networks

  4. Deployment overview 3/3 Focus on the Edge core site edge site router & dhcp-relay provisioning-edge compute-rt compute compute compute-rt compute-rt compute vm-k8s vm-k8s openstack-networks

  5. Deploy the modules you need $ ls ./templates/*.yaml Modular & extensible platform global-config.yaml collectd.yaml - SDN ceph.yaml - Storage ceph-collectd.yaml dpdk-config.yaml - Monitoring sriov-config.yaml hci-dpdk-config.yaml compute-rt-edge-config.yaml Feature enablement: ssl-certificates.yaml - 1 TripleO environment file - 1 parameter file resource_registry: OS::TripleO::Services::Collectd: $ openstack overcloud deploy \ ../docker/services/collectd.yaml -e $TRIPLEO/environments/collectd-environment.yaml -e ./templates/collectd.yaml \ ... parameter_defaults: CollectdServer: 172.16.0.1

  6. NFV (auto) Tuning: Mistral workflow Introspection data + role definition + user intent = generated parameters "cpu": { "count": 48 }, "memory": {"physical_mb": 131072 }, - name: ComputeOvsDpdkRTEdge0 "numa_topology": {"cpus": [ {"cpu": 0, ServicesDefault: "thread_siblings": [ 0, 24], - OS::TripleO::Services::ComputeNeutronOvsDpdk "numa_node": 0 }, … ] } "nics": [{"name": "p3p1", "numa_node": 1 }, ... ] ComputeOvsDpdkRTEdge0Parameters: IsolCpusList: 2-23,26-47 KernelArgs: default_hugepagesz=1GB hugepagesz=1G workflow_parameters: hugepages=120 intel_iommu=on iommu=pt isolcpus=2-23,26-47 tripleo.derive_params.v1.derive_parameters: NovaReservedHostMemory: 8192 num_phy_cores_per_numa_node_for_pmd: 1 NovaVcpuPinSet: 2-6,8-15,17-23,26-30,32-39,41-47 huge_page_allocation_percentage: 95 OvsDpdkCoreList: 0-1,24-25 OvsDpdkSocketMemory: 2048,1024 OvsPmdCoreList: 7,16,31,40

  7. Enabling vRAN usecase Compute RT Kernel & RT KVM Generic NFV characteristics Mix virtio + SRIOV VF ● RHOSP VM Device role tagging ● (overcloud)$ nova boot --nic net-id=$UPLINK_ID,tag=uplink --nic port-id=$RADIO_PORT_ID,tag=radio FGPA VF10 virtio (vm)$ jq '.devices[]|"\(.address) \(.mac) \(.tags[0])" meta_data.json "0000:00:04.0 fa:16:3e:fa:89:0f uplink" "0000:00:06.0 fa:16:3e:6f:dd:e8 radio" OVS-DPDK vRAN Specific SR-IOV FPGA (PCI passthrough) ● Real time ●

  8. Let’s have a look at the deployment

  9. Post-Deployment validation

  10. How to validate the NFVI? compute node VM: VNFc virtio VF10 internet OVS-DPDK SR-IOV radio uplink

  11. Simpler catch-all test compute node VM: testpmd This is not a benchmark! Make sure that the VM is not the bottleneck virtio VF10 => Use DPDK testpmd to forward packets OVS-DPDK Check expected Mpps and Latency SR-IOV => zero packet drop expected Single flow, 64 Bytes frames

  12. Issue detection Misconfiguration visible effect Performance lower than expected, packet drop ● Extra Packets ● Real example of misconfigurations caught Isolation/partitioning (vCPU or OVS-DPDK PMD preemption) ● => boot parameters, IRQ pinning, emulator thread pinning, ... ToR switch misconfiguration (missing packets or extra packets) ● BIOS misconfiguration (NUMA mode, Performance Policy, ...) ● HW: PCIe x4 slot instead of x16, missing RAM bank (mem channel) ● ... ●

  13. Troubleshooting

  14. Packet journey: radio -> uplink host CPU37 host CPU1 host CPU2 host CPU3 VM: testpmd OVS-DPDK OVS-DPDK ACTIVE LOOP virtio VF10 while (1) { RX-packet() SR-IOV forward-packe t () } uplink radio

  15. Packet journey: uplink -> radio host CPU37 host CPU1 host CPU2 host CPU3 VM: testpmd OVS-DPDK OVS-DPDK ACTIVE LOOP virtio VF10 while (1) { RX-packet() SR-IOV forward-packe t () } uplink radio

  16. Packet journey: radio <-> uplink host CPU37 host CPU1 host CPU2 host CPU3 VM: testpmd OVS-DPDK OVS-DPDK ACTIVE LOOP virtio VF10 while (1) { RX-packet() SR-IOV forward-packe t () } uplink radio

  17. No packets left behind! Packet are never lost, packets are dropped We always have a drop counter ● Except in case of a drop counter bug (SW, HW) ● Packets are dropped when a queue is full A queue is full because it is not drained fast enough ● The bottleneck is the entity supposed to drain the queue ●

  18. What if the VM is the bottleneck? host CPU37 host CPU1 host CPU2 host CPU3 VM: testpmd bottleneck OVS-DPDK OVS-DPDK drop virtio VF10 SR-IOV uplink radio

  19. Demo

  20. Final thoughts

  21. Same packet flow with or w/o Kubernetes! RHOSP VM default CNI Kubernetes pod Multus CNI virtio SR-IOV CNI VF10 internet OVS-DPDK OpenStack compute node SR-IOV radio uplink

  22. THANK YOU

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend