Hi team,
In previous, we created the dpdk dpni under the default dpl after the kernel is up and do the traffic bifurcation between DPDK and Linux Kernel with DPDMUX. In order to improve the encryption throughput, we set the DPSECI_QUEUES as 6 and set the DPSECI_PRIORITIES as "2,2,2,2,2,2", anyway the encryption throughput is ok.
Now we want to use the DPL to create the dpdk dpni in uboot, but we found that the encryption throughput is low, the data received from dpdk dpni.4 is low. The only change is the way we creating the dpdk dpni.
Please help to check the way we creating and using the DPL is right?
the connection in default dpl as below.
root@localhost:~# ls-listni
dprc.1/dpni.0 (interface: eth0, end point: dpmac.3)
dprc.1/dpni.1 (interface: eth1, end point: dpmac.4)
dprc.1/dpni.2 (interface: eth2, end point: dpmac.5)
1. The steps I creating dpni after kernel up as below, the thp is ok
export PATH=/usr/local/bin:$PATH
export DPSECI_PRIORITIES="2,2,2,2,2,2"
restool dprc disconnect dprc.1 --endpoint=dpni.0
#dprc.2, dpni.3
/usr/local/dpdk/dpaa2/dynamic_dpl.sh dpni && sleep 1
#dprc.3, dpni.4
/usr/local/dpdk/dpaa2/dynamic_dpl.sh dpni && sleep 1
#Creating a DPDMUX
restool dpdmux create --default-if=1 --num-ifs=2 --method DPDMUX_METHOD_CUSTOM --manip=DPDMUX_MANIP_NONE \
--option=DPDMUX_OPT_CLS_MASK_SUPPORT --container=dprc.1
#Connecting the DPDMUX
restool dprc connect dprc.1 --endpoint1=dpdmux.0.0 --endpoint2=dpmac.3
restool dprc connect dprc.1 --endpoint1=dpdmux.0.1 --endpoint2=dpni.0
restool dprc connect dprc.1 --endpoint1=dpdmux.0.2 --endpoint2=dpni.4
#Enabling the DPDMUX
restool dprc assign dprc.1 --object=dpdmux.0 --child=dprc.3 --plugged=1 && sleep 2
root@localhost:~# ls-listni
dprc.1/dpni.0 (interface: eth_WAN, end point: dpdmux.0.1)
dprc.1/dpni.1 (interface: eth_X2, end point: dpmac.4)
dprc.1/dpni.2 (interface: eth2, end point: dpmac.5)
dprc.1/dprc.2/dpni.3
dprc.1/dprc.3/dpni.4 (end point: dpdmux.0.2)
2. The steps I creating dpni with DPL as below, the thp is low
(1) Firstly, we create the dts and dtb
export PATH=/usr/local/bin:$PATH
export DPIO_COUNT=16
export DPMCP_COUNT=2
export DPSECI_QUEUES=6
export DPSECI_PRIORITIES="2,2,2,2,2,2"
#dprc.2, dpni.3
/usr/local/dpdk/dpaa2/dynamic_dpl.sh dpni && sleep 1
#dprc.3, dpni.4
/usr/local/dpdk/dpaa2/dynamic_dpl.sh dpni && sleep 1
root@localhost:~# ls-listni
dprc.1/dpni.0 (interface: eth0, end point: dpmac.3)
dprc.1/dpni.1 (interface: eth1, end point: dpmac.4)
dprc.1/dpni.2 (interface: eth2, end point: dpmac.5)
dprc.1/dprc.2/dpni.3
dprc.1/dprc.3/dpni.4
restool dprc generate-dpl dprc.1 > fast_dpl_test.dts
dtc -I dts -O dtb fast_dpl_test.dts -o fast_dpl_test.dtb
(2) Secondly, we update the dpl and reboot the device.
dd if=fast_dpl_test.dtb of=/dev/mtdblock0 bs=1 seek=$((0xd00000)) conv=notrunc
(3) Finally, we create and enable the DPDMUX after kernel up
export PATH=/usr/local/bin:$PATH
export DPIO_COUNT=16
export DPMCP_COUNT=2
export DPSECI_QUEUES=6
export DPSECI_PRIORITIES="2,2,2,2,2,2"
restool dprc disconnect dprc.1 --endpoint=dpni.0
#Creating a DPDMUX
restool dpdmux create --default-if=1 --num-ifs=2 --method DPDMUX_METHOD_CUSTOM --manip=DPDMUX_MANIP_NONE \
--option=DPDMUX_OPT_CLS_MASK_SUPPORT --container=dprc.1
#Connecting the DPDMUX
restool dprc connect dprc.1 --endpoint1=dpdmux.0.0 --endpoint2=dpmac.3
restool dprc connect dprc.1 --endpoint1=dpdmux.0.1 --endpoint2=dpni.0
restool dprc connect dprc.1 --endpoint1=dpdmux.0.2 --endpoint2=dpni.4
echo 1 > /sys/module/vfio_iommu_type1/parameters/allow_unsafe_interrupts
echo vfio-fsl-mc > /sys/bus/fsl-mc/devices/dprc.2/driver_override
echo dprc.2 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/bind
echo vfio-fsl-mc > /sys/bus/fsl-mc/devices/dprc.3/driver_override
echo dprc.3 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/bind
#Enabling the DPDMUX
restool dprc assign dprc.1 --object=dpdmux.0 --child=dprc.3 --plugged=1 && sleep 2
root@localhost:~# ls-listni
dprc.1/dpni.0 (interface: eth_WAN, end point: dpdmux.0.1)
dprc.1/dpni.1 (interface: eth_X2, end point: dpmac.4)
dprc.1/dpni.2 (interface: eth2, end point: dpmac.5)
dprc.1/dprc.2/dpni.3
dprc.1/dprc.3/dpni.4 (end point: dpdmux.0.2)
BR,
Cecilia Zhong