Fixed
Created: Oct 22, 2024
Updated: Mar 4, 2025
Resolved Date: Dec 2, 2024
Found In Version: 10.22.33.17
Fix Version: 10.22.33.20
Severity: Severe
Applicable for: Wind River Linux LTS 22
Component/s: Userspace
*1. Testing environment*
[WRL-LTS22/LS1043ARDB] [Spirent/TestCenter]
<eth0:fm1-mac1> <======> UDP 512byte, 256pps traffic rate, Total 35Mbps
<eth1:fm1-mac2> <---> for network capture
<eth2:fm1-mac3> <---> NFS root
<eth3:fm1-mac4> Not connected
<eth4:fm1-mac5> Not connected
<eth5:fm1-mac6> Not connected
<eth5:fm1-mac9> Not connected
*2. Setup WRL project*
$ git clone --branch WRLINUX_10_22_LTS_RCPL0016 https://gateway.delivers.windriver.com/git/linux-lts/release/wrlinux-lts.22/WRLinux-lts-22-Core/wrlinux-x
$ ./wrlinux-x/setup.sh --machines nxp-ls1043 --templates feature/bsp-extras feature/dpdk --layers meta-dpdk --dl-layers
$ source ./environment-setup-x86_64-wrlinuxsdk-linux
$ source ./oe-init-build-env
Modify conf/local.conf:
BB_NO_NETWORK ?= '0
$ bitbake wrlinux-image-std
*3. Creating testing dts for DPDK and NFS rootfs*
$ cp build/tmp-glibc/work-shared/nxp-ls1043/kernel-source/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb-usdpaa.dts build/tmp-glibc/work-shared/nxp-ls1043/kernel-source/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb-usnfs.dts
Deteled the following lines on fsl-ls1043a-rdb-usnfs.dts:
- ethernet@2 {
- compatible = "fsl,dpa-ethernet-init";
- fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
- fsl,qman-frame-queues-rx = <0x54 1 0x55 1>;
- fsl,qman-frame-queues-tx = <0x74 1 0x75 1>;
- };
Added "fsl-ls1043a-rdb-usnfs.dtb" on ls1043.inc and ls1043ardb.conf
$ vi layers/nxp-ls1043/conf/machine/ls1043.inc
KERNEL_DEVICETREE = "freescale/fsl-ls1043a-rdb-sdk.dtb freescale/fsl-ls1043a-rdb-usdpaa.dtb freescale/fsl-ls1043a-rdb-usnfs.dtb \
freescale/fsl-ls1023a-rdb-sdk.dtb freescale/fsl-ls1023a-rdb-usdpaa.dtb"
$ vi layers/meta-freescale/conf/machine/ls1043ardb.conf
# usdpaa dtb is used for dpdk. TODO: rename in kernel
KERNEL_DEVICETREE:prepend:use-nxp-bsp = "\
freescale/fsl-ls1043a-rdb-sdk.dtb \
freescale/fsl-ls1043a-rdb-usdpaa.dtb \
freescale/fsl-ls1043a-rdb-usnfs.dtb \
freescale/fsl-ls1043a-qds-sdk.dtb \
"
$ bitbake virtual/kernel -c compile -f
$ bitbake virtual/kernel
*4. Creating testing xml for DPDK and NFS rootfs*
$ cp build/tmp-glibc/work/cortexa53-wrs-linux/dpdk/21.11-r0/git/nxp/dpaa/usdpaa_config_ls1043.xml build/tmp-glibc/work/cortexa53-wrs-linux/dpdk/21.11-r0/git/nxp/dpaa/usdpaa_config_ls1043_nfs.xml
# vi build/tmp-glibc/work/cortexa53-wrs-linux/dpdk/21.11-r0/git/nxp/dpaa/usdpaa_config_ls1043_nfs.xml
<port type="MAC" number="2" policy="hash_ipsec_src_dst_spi_policy_mac2"/>
<!-- <port type="MAC" number="3" policy="hash_ipsec_src_dst_spi_policy_mac3"/> -->
<port type="MAC" number="4" policy="hash_ipsec_src_dst_spi_policy_mac4"/>
$ bitbake dpdk -c compile -f
$ bitbake dpdk
$ bitbake -f wrlinux-image-std
*5. Setup U-Boot on LS1043A-RDB*
setenv ethact fm1-mac3
setenv nfsroot /srv/nfs/hirano/ls1043ardb/
setenv rootpath /srv/nfs/hirano/ls1043ardb/
setenv ipaddr 172.16.203.251
setenv serverip 172.16.203.193
setenv netmask 255.255.252.0
setenv kernelfile hirano/ls1043ardb/Image
setenv fdtfile hirano/ls1043ardb/fsl-ls1043a-rdb-usnfs.dtb
setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath,nfsvers=3 ip=$ipaddr:$serverip:$gatewayip:$netmask:bspName:eth0:off console=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 default_hugepagesz=2MB hugepagesz=2MB hugepages=256 isolcpus=1-3 bportals=s0 qportals=s0 panic=20
setenv bootargs_nfs setenv bootargs $bootargs iommu.passthrough=1
setenv bootretry 90
tftp $kernel_addr_r $kernelfile;tftp $fdt_addr_r $fdtfile;run bootargs_nfs;booti $kernel_addr_r - $fdt_addr_r
*6. Testing DPDK with WRL-LTS22 on LS1043A-RDB*
After boot up,
# export DPAA_NUM_RX_QUEUES=1
# export DPAA_FMC_MODE=1
# fmc -c /usr/share/dpdk/dpaa/usdpaa_config_ls1043_nfs.xml -p /usr/share/dpdk/dpaa/usdpaa_policy_hash_ipv4_1queue.xml -a
# cd /usr/share/dpdk/examples/
# ./dpdk-ipsec-secgw -l 1 --log-level=8 -- -p 0x3 -P -u 0x2 --config="(0,0,1),(1,0,1)" -f ipsecgw.cfg.1018
sp ipv4 out esp protect 1 pri 1 dst 192.168.0.1/32 sport 0:65535 dport 0:65535
sp ipv4 out esp protect 2 pri 1 dst 192.168.0.2/32 sport 0:65535 dport 0:65535
... <snip> ...
sp ipv4 out esp protect 256 pri 1 dst 192.168.1.128/32 sport 0:65535 dport 0:65535
*7. Running Spirent/TestCenter for high traffic load testing*
*[Spirent/TestCenter]: Starting UDP 512byte, 256pps traffic rate*
*1. Testing environment*
[WRL-LTS22/LS1043ARDB] [Spirent/TestCenter]
<eth0:fm1-mac1> <======> UDP 512byte, 256pps traffic rate, Total 35Mbps
<eth1:fm1-mac2> <---> for network capture
<eth2:fm1-mac3> <---> NFS root
<eth3:fm1-mac4> Not connected
<eth4:fm1-mac5> Not connected
<eth5:fm1-mac6> Not connected
<eth5:fm1-mac9> Not connected
*2. Setup WRL project*
$ git clone --branch WRLINUX_10_22_LTS_RCPL0016 https://gateway.delivers.windriver.com/git/linux-lts/release/wrlinux-lts.22/WRLinux-lts-22-Core/wrlinux-x
$ ./wrlinux-x/setup.sh --machines nxp-ls1043 --templates feature/bsp-extras feature/dpdk --layers meta-dpdk --dl-layers
$ source ./environment-setup-x86_64-wrlinuxsdk-linux
$ source ./oe-init-build-env
Modify conf/local.conf:
BB_NO_NETWORK ?= '0
$ bitbake wrlinux-image-std
*3. Creating testing dts for DPDK and NFS rootfs*
$ cp build/tmp-glibc/work-shared/nxp-ls1043/kernel-source/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb-usdpaa.dts build/tmp-glibc/work-shared/nxp-ls1043/kernel-source/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb-usnfs.dts
Deteled the following lines on fsl-ls1043a-rdb-usnfs.dts:
- ethernet@2 {
- compatible = "fsl,dpa-ethernet-init";
- fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
- fsl,qman-frame-queues-rx = <0x54 1 0x55 1>;
- fsl,qman-frame-queues-tx = <0x74 1 0x75 1>;
- };
Added "fsl-ls1043a-rdb-usnfs.dtb" on ls1043.inc and ls1043ardb.conf
$ vi layers/nxp-ls1043/conf/machine/ls1043.inc
KERNEL_DEVICETREE = "freescale/fsl-ls1043a-rdb-sdk.dtb freescale/fsl-ls1043a-rdb-usdpaa.dtb freescale/fsl-ls1043a-rdb-usnfs.dtb \
freescale/fsl-ls1023a-rdb-sdk.dtb freescale/fsl-ls1023a-rdb-usdpaa.dtb"
$ vi layers/meta-freescale/conf/machine/ls1043ardb.conf
# usdpaa dtb is used for dpdk. TODO: rename in kernel
KERNEL_DEVICETREE:prepend:use-nxp-bsp = "\
freescale/fsl-ls1043a-rdb-sdk.dtb \
freescale/fsl-ls1043a-rdb-usdpaa.dtb \
freescale/fsl-ls1043a-rdb-usnfs.dtb \
freescale/fsl-ls1043a-qds-sdk.dtb \
"
$ bitbake virtual/kernel -c compile -f
$ bitbake virtual/kernel
*4. Creating testing xml for DPDK and NFS rootfs*
$ cp build/tmp-glibc/work/cortexa53-wrs-linux/dpdk/21.11-r0/git/nxp/dpaa/usdpaa_config_ls1043.xml build/tmp-glibc/work/cortexa53-wrs-linux/dpdk/21.11-r0/git/nxp/dpaa/usdpaa_config_ls1043_nfs.xml
# vi build/tmp-glibc/work/cortexa53-wrs-linux/dpdk/21.11-r0/git/nxp/dpaa/usdpaa_config_ls1043_nfs.xml
<port type="MAC" number="2" policy="hash_ipsec_src_dst_spi_policy_mac2"/>
<!-- <port type="MAC" number="3" policy="hash_ipsec_src_dst_spi_policy_mac3"/> -->
<port type="MAC" number="4" policy="hash_ipsec_src_dst_spi_policy_mac4"/>
$ bitbake dpdk -c compile -f
$ bitbake dpdk
$ bitbake -f wrlinux-image-std
*5. Setup U-Boot on LS1043A-RDB*
setenv ethact fm1-mac3
setenv nfsroot /srv/nfs/hirano/ls1043ardb/
setenv rootpath /srv/nfs/hirano/ls1043ardb/
setenv ipaddr 172.16.203.251
setenv serverip 172.16.203.193
setenv netmask 255.255.252.0
setenv kernelfile hirano/ls1043ardb/Image
setenv fdtfile hirano/ls1043ardb/fsl-ls1043a-rdb-usnfs.dtb
setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath,nfsvers=3 ip=$ipaddr:$serverip:$gatewayip:$netmask:bspName:eth0:off console=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 default_hugepagesz=2MB hugepagesz=2MB hugepages=256 isolcpus=1-3 bportals=s0 qportals=s0 panic=20
setenv bootargs_nfs setenv bootargs $bootargs iommu.passthrough=1
setenv bootretry 90
tftp $kernel_addr_r $kernelfile;tftp $fdt_addr_r $fdtfile;run bootargs_nfs;booti $kernel_addr_r - $fdt_addr_r
*6. Testing DPDK with WRL-LTS22 on LS1043A-RDB*
After boot up,
# export DPAA_NUM_RX_QUEUES=1
# export DPAA_FMC_MODE=1
# fmc -c /usr/share/dpdk/dpaa/usdpaa_config_ls1043_nfs.xml -p /usr/share/dpdk/dpaa/usdpaa_policy_hash_ipv4_1queue.xml -a
# cd /usr/share/dpdk/examples/
# ./dpdk-ipsec-secgw -l 1 --log-level=8 -- -p 0x3 -P -u 0x2 --config="(0,0,1),(1,0,1)" -f ipsecgw.cfg.1018
sp ipv4 out esp protect 1 pri 1 dst 192.168.0.1/32 sport 0:65535 dport 0:65535
sp ipv4 out esp protect 2 pri 1 dst 192.168.0.2/32 sport 0:65535 dport 0:65535
... <snip> ...
sp ipv4 out esp protect 256 pri 1 dst 192.168.1.128/32 sport 0:65535 dport 0:65535
*7. Running Spirent/TestCenter for high traffic load testing*
*[Spirent/TestCenter]: Starting UDP 512byte, 256pps traffic rate*