# DPDK and VPP This is pain. I'm not able to build dpdk / vpp for alpine aarch64. ## DPDK Testing with dpdk-testpmd. Does not seem to like the NIC layout we have here. We get this error complaining when some NICs controlled by linux ``` # dpdk-testpmd -a dpaa_bus:fm1-mac9 -a dpaa_bus:fm1-mac10 -- -i EAL: Detected CPU lcores: 4estpmd -a dpaa_bus:fm1-mac9 -a dpaa_bus:fm1-mac10 -- -i EAL: Detected NUMA nodes: 1 EAL: Detected static linkage of DPDK EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'PA' EAL: Error parsing /proc/mounts EAL: Error parsing /proc/mounts EAL: Error parsing /proc/mounts EAL: VFIO support initialized dpaa: This is LS1046A family SoC. dpaa: FMan version is 0x06 dpaa: /soc/fsl,dpaa/ethernet@1: no fsl,qman-frame-queues-rx(2) dpaa: if_init(/soc/fsl,dpaa/ethernet@1)(2) dpaa: FMAN driver init failed (2) dpaa: netcfg failed: /dev/fsl_usdpaa device not available dpaa: Check if you are using USDPAA based device tree TELEMETRY: No legacy callbacks, legacy socket not created testpmd: No probed ethernet devices Interactive-mode selected testpmd: create a new mbuf pool : n=171456, size=2176, socket=0 testpmd: preferred mempool ops selected: ring_mp_mc Done testpmd> quit ``` Works only when all interfaces are handed over ``` # dpdk-testpmd -a dpaa_bus:fm1-mac9 -a dpaa_bus:fm1-mac10 -- -i EAL: Detected CPU lcores: 4 EAL: Detected NUMA nodes: 1 EAL: Detected static linkage of DPDK EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'PA' EAL: VFIO support initialized dpaa: This is LS1046A family SoC. dpaa: FMan version is 0x06 dpaa: DPAA Bus Detected TELEMETRY: No legacy callbacks, legacy socket not created Interactive-mode selected testpmd: create a new mbuf pool : n=171456, size=2176, socket=0 testpmd: preferred mempool ops selected: dpaa Configuring Port 0 (socket 0) Port 0: link state change event Port 0: E8:F6:D7:00:1E:95 Configuring Port 1 (socket 0) Port 1: link state change event Port 1: E8:F6:D7:00:1E:96 Checking link statuses... Done testpmd> quit Stopping port 0... Stopping ports... Done Stopping port 1... Stopping ports... Done Shutting down port 0... Closing ports... Port 0: link state change event Port 0 is closed Done Shutting down port 1... Closing ports... Port 1: link state change event Port 1 is closed Done Bye... ``` ## VPP (Very Painful Process) ### The fmc hurdle `fmc -c /etc/fmc/config.xml -p /etc/fmc/policy.xml -a -l dbg1` * [x] Kernel oops (fixed due to an incorrect build) * [ ] Finalize config.xml * [ ] Finalize policy.xml Logs ``` DBG1: Invocation of FM_Open from fmc_exec_engine_start for fm0 DBG1: Invocation of FM_Open for fm0 succeeded DBG1: Invocation of FM_PCD_Open from fmc_exec_engine_start for fm0/pcd DBG1: Invocation of FM_PCD_Open for fm0/pcd succeeded DBG1: Invocation of FM_PCD_Enable from fmc_exec_engine_start for fm0/pcd DBG1: Invocation of FM_PCD_Enable for fm0/pcd succeeded DBG1: fmc_exec_engine_start - execution ended DBG1: Invocation of FM_PORT_Open from fmc_exec_port_start for fm0/port/MAC/9 DBG1: Invocation of FM_PORT_Open for fm0/port/MAC/9 succeeded DBG1: Invocation of FM_PCD_NetEnvCharacteristicsSet from fmc_exec_port_start for fm0/port/MAC/9 DBG1: Invocation of FM_PCD_NetEnvCharacteristicsSet for fm0/port/MAC/9 succeeded DBG1: Invocation of FM_PCD_KgSchemeSet from fmc_exec_scheme for fm0/port/MAC/9/dist/dist_dummy DBG1: Invocation of FM_PCD_KgSchemeSet for fm0/port/MAC/9/dist/dist_dummy succeeded DBG1: Invocation of FM_PORT_Disable from fmc_exec_port_end for fm0/port/MAC/9 DBG1: Invocation of FM_PORT_Disable for fm0/port/MAC/9 succeeded DBG1: Invocation of FM_PORT_SetPCD from fmc_exec_port_end for fm0/port/MAC/9 DBG1: Invocation of FM_PORT_SetPCD for fm0/port/MAC/9 succeeded DBG1: Invocation of FM_PORT_Enable from fmc_exec_port_end for fm0/port/MAC/9 DBG1: Invocation of FM_PORT_Enable for fm0/port/MAC/9 succeeded DBG1: Invocation of FM_PORT_Open from fmc_exec_port_start for fm0/port/MAC/10 DBG1: Invocation of FM_PORT_Open for fm0/port/MAC/10 succeeded DBG1: Invocation of FM_PCD_NetEnvCharacteristicsSet from fmc_exec_port_start for fm0/port/MAC/10 DBG1: Invocation of FM_PCD_NetEnvCharacteristicsSet for fm0/port/MAC/10 succeeded DBG1: Invocation of FM_PCD_KgSchemeSet from fmc_exec_scheme for fm0/port/MAC/10/dist/dist_dummy DBG1: Invocation of FM_PCD_KgSchemeSet for fm0/port/MAC/10/dist/dist_dummy succeeded DBG1: Invocation of FM_PORT_Disable from fmc_exec_port_end for fm0/port/MAC/10 DBG1: Invocation of FM_PORT_Disable for fm0/port/MAC/10 succeeded DBG1: Invocation of FM_PORT_SetPCD from fmc_exec_port_end for fm0/port/MAC/10 DBG1: Invocation of FM_PORT_SetPCD for fm0/port/MAC/10 succeeded DBG1: Invocation of FM_PORT_Enable from fmc_exec_port_end for fm0/port/MAC/10 DBG1: Invocation of FM_PORT_Enable for fm0/port/MAC/10 succeeded ``` ### vpp startup blocker `vpp -c /etc/vpp/startup.conf` * [ ] Main heap alloction error