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

nfv validation and troubleshooting live demo for vran
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 2

controller

Deployment overview 1/3

undercloud controller compute controller controllers controller controller storage compute compute provisioning-network

  • penstack-networks

collectd prometheus Grafana

compute Dedicated session: “Demonstrating at-scale monitoring using Prometheus” Tomorrow at 4:20 room 505

slide-3
SLIDE 3

core site edge site controller

Deployment overview 2/3

undercloud controller controller controllers controller controller computes hci provisioning-network

  • penstack-networks

compute compute-rt provisioning-edge

  • penstack-networks

collectd prometheus Grafana

slide-4
SLIDE 4

Deployment overview 3/3

Focus on the Edge

core site edge site compute-rt compute compute compute-rt provisioning-edge

  • penstack-networks

compute compute-rt router & dhcp-relay vm-k8s vm-k8s

slide-5
SLIDE 5

Deploy the modules you need

Modular & extensible platform

  • SDN
  • Storage
  • Monitoring

Feature enablement:

  • 1 TripleO environment file
  • 1 parameter file

$ openstack overcloud deploy \

  • e $TRIPLEO/environments/collectd-environment.yaml
  • e ./templates/collectd.yaml \

... $ ls ./templates/*.yaml global-config.yaml collectd.yaml ceph.yaml ceph-collectd.yaml dpdk-config.yaml sriov-config.yaml hci-dpdk-config.yaml compute-rt-edge-config.yaml ssl-certificates.yaml

resource_registry: OS::TripleO::Services::Collectd: ../docker/services/collectd.yaml parameter_defaults: CollectdServer: 172.16.0.1

slide-6
SLIDE 6

NFV (auto) Tuning: Mistral workflow

Introspection data + role definition + user intent = generated parameters

workflow_parameters: tripleo.derive_params.v1.derive_parameters: num_phy_cores_per_numa_node_for_pmd: 1 huge_page_allocation_percentage: 95 ComputeOvsDpdkRTEdge0Parameters: IsolCpusList: 2-23,26-47 KernelArgs: default_hugepagesz=1GB hugepagesz=1G hugepages=120 intel_iommu=on iommu=pt isolcpus=2-23,26-47 NovaReservedHostMemory: 8192 NovaVcpuPinSet: 2-6,8-15,17-23,26-30,32-39,41-47 OvsDpdkCoreList: 0-1,24-25 OvsDpdkSocketMemory: 2048,1024 OvsPmdCoreList: 7,16,31,40

  • name: ComputeOvsDpdkRTEdge0

ServicesDefault:

  • OS::TripleO::Services::ComputeNeutronOvsDpdk

"cpu": { "count": 48 }, "memory": {"physical_mb": 131072 }, "numa_topology": {"cpus": [ {"cpu": 0, "thread_siblings": [ 0, 24], "numa_node": 0 }, … ] } "nics": [{"name": "p3p1", "numa_node": 1 }, ... ]

slide-7
SLIDE 7

Enabling vRAN usecase

Generic NFV characteristics

  • Mix virtio + SRIOV VF
  • Device role tagging

RHOSP VM

OVS-DPDK VF10 virtio SR-IOV

vRAN Specific

  • FPGA (PCI passthrough)
  • Real time

FGPA

(overcloud)$ nova boot --nic net-id=$UPLINK_ID,tag=uplink

  • -nic port-id=$RADIO_PORT_ID,tag=radio

Compute RT Kernel & RT KVM

(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"

slide-8
SLIDE 8

Let’s have a look at the deployment

slide-9
SLIDE 9

Post-Deployment validation

slide-10
SLIDE 10

How to validate the NFVI?

compute node VM: VNFc

OVS-DPDK VF10 virtio SR-IOV radio uplink internet

slide-11
SLIDE 11

Simpler catch-all test

This is not a benchmark! Make sure that the VM is not the bottleneck => Use DPDK testpmd to forward packets Check expected Mpps and Latency => zero packet drop expected Single flow, 64 Bytes frames

compute node VM: testpmd

OVS-DPDK VF10 virtio SR-IOV

slide-12
SLIDE 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)
  • ...
slide-13
SLIDE 13

Troubleshooting

slide-14
SLIDE 14

host CPU3 host CPU2

Packet journey: radio -> uplink

host CPU1 OVS-DPDK

VM: testpmd

SR-IOV virtio VF10 host CPU37 OVS-DPDK radio uplink

ACTIVE LOOP while (1) { RX-packet() forward-packet() }

slide-15
SLIDE 15

host CPU3 host CPU2

Packet journey: uplink -> radio

host CPU1 OVS-DPDK

VM: testpmd

SR-IOV virtio VF10 host CPU37 OVS-DPDK radio uplink

ACTIVE LOOP while (1) { RX-packet() forward-packet() }

slide-16
SLIDE 16

host CPU3 host CPU2

Packet journey: radio <-> uplink

host CPU1 OVS-DPDK

VM: testpmd

SR-IOV virtio VF10 host CPU37 OVS-DPDK radio uplink

ACTIVE LOOP while (1) { RX-packet() forward-packet() }

slide-17
SLIDE 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
slide-18
SLIDE 18

host CPU3 host CPU2

What if the VM is the bottleneck?

host CPU1 OVS-DPDK

VM: testpmd

SR-IOV virtio VF10 host CPU37 OVS-DPDK radio uplink drop

bottleneck

slide-19
SLIDE 19

Demo

slide-20
SLIDE 20

Final thoughts

slide-21
SLIDE 21

Same packet flow with or w/o Kubernetes!

OpenStack compute node RHOSP VM Kubernetes pod

OVS-DPDK SR-IOV CNI VF10 virtio SR-IOV radio uplink internet Multus CNI default CNI

slide-22
SLIDE 22

THANK YOU