139 lines
4.8 KiB
Markdown
139 lines
4.8 KiB
Markdown
# 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 <mb_pool_0>: 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 <mb_pool_0>: 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
|
|
|
|
|