How to use DPL to create dpni with special DPSECI_QUEUES parameters

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to use DPL to create dpni with special DPSECI_QUEUES parameters

686 Views
cecilia_zhong
Contributor I

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

#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

Tags (1)
0 Kudos
Reply
1 Reply

641 Views
LFGP
NXP TechSupport
NXP TechSupport
dear Cecilia Zhong,
the way you are using the DPL is the right, but keep in mind that the throughput could be affected for many external reasons not only for a wrong configuration.
Please reduce the number of congestion groups that you stated in the DPL file.
please analyze the type trafic in the affected port in order to investigate the reason, I suppose that there a storm flooding UDP.
0 Kudos
Reply