Hi DPDK Experts, We are working on expanding our DPDK application to do IPSec based encryption. To that end I was trying out the sample application provided. But, I am hitting an error which is probably configuration related. My DPDK version: dpdk-stable-19.11.5 OS: CentOS Linux release 7.7.1908 (Core) Kernel: 3.10.0-1062.el7.x86_64 Command run with options and output: ./l2fwd-crypto -l 0-1 -n 4 --vdev "crypto_aesni_mb0" --vdev "crypto_aesni_mb1" -- -p 0x3 --chain CIPHER_HASH --cipher_op ENCRYPT --cipher_algo aes-cbc --cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f --auth_op GENERATE --auth_algo aes-xcbc-mac --auth_key 10:11:12:13:14:15:16:17:18:19:1a:1b:1c:1d:1e:1f EAL: Detected 8 lcore(s) EAL: Detected 1 NUMA nodes EAL: failed to parse device "crypto_aesni_mb0" EAL: Unable to parse device 'crypto_aesni_mb0' EAL: Error - exiting with code: 1 Cause: Invalid EAL arguments I am not sure what is causing the error failed to parse device "crypto_aesni_mb0" Is there a specific driver that needs to be loaded? Or is there a hardware dependency? I am using virtio nic to test out the app. Please suggest if the info I have provided is sufficient to determine the cause? NIC and driver details: Network devices using DPDK-compatible driver ============================================ 0000:00:04.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci 0000:00:05.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci 0000:00:06.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci 0000:00:07.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci 00:04.0 Ethernet controller: Red Hat, Inc. Virtio network device Subsystem: Red Hat, Inc. Device 0001 Physical Slot: 4 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 11 Region 0: I/O ports at c060 [size=32] Region 1: Memory at febd2000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at feac0000 [disabled] [size=256K] Capabilities: [40] MSI-X: Enable- Count=3 Masked- Vector table: BAR=1 offset=00000000 PBA: BAR=1 offset=00000800 Kernel driver in use: uio_pci_generic Kernel modules: virtio_pci Processor details: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 1 Core(s) per socket: 8 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 44 Model name: Westmere E56xx/L56xx/X56xx (Nehalem-C) Stepping: 1 CPU MHz: 2693.676 BogoMIPS: 5387.35 Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 4096K NUMA node0 CPU(s): 0-7 Flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm md_clear Regards, Surajit
Hi, I found why I could not get l2fwd-crypto to run. The steps to get it to work is as below: wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.gz tar -xvf nasm-2.15.05.tar.gz cd nasm-2.15.05 ./configure make make install cd git clone https://github.com/intel/intel-ipsec-mb.git cd intel-ipsec-mb make make install export AESNI_MULTI_BUFFER_LIB_PATH=`pwd` cd make config T=x86_64-native-linux-gcc sed -i ‘s/CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n/CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y/g’ ./build/.config make test-build -j ./build/app/test -l 3 -n 4 --vdev "crypto_aesni_mb" cd examples/l2fwd-crypto/ export RTE_SDK="/root/dpdk-stable-19.11.5" make ./build/l2fwd-crypto -l 1 -n 4 --vdev="crypto_aesni_mb" -- -p 1 --cdev SW --chain CIPHER_HASH --cipher_algo "aes-cbc" --auth_algo "sha1-hmac" I just wish to understand if this is not the right forum to ask these kind of queries. If it is not, can someone point me to the right place for any further questions regarding crypto libraries in DPDK? Thanks and Regards, Surajit From: Das, Surajit <Surajit.Das@commscope.com> Date: Friday, 8 January 2021 at 2:38 PM To: users@dpdk.org <users@dpdk.org> Cc: Dharwadkar, Sriram <Sriram.Dharwadkar@commscope.com> Subject: Using l2fwd-crypto sample app Hi DPDK Experts, We are working on expanding our DPDK application to do IPSec based encryption. To that end I was trying out the sample application provided. But, I am hitting an error which is probably configuration related. My DPDK version: dpdk-stable-19.11.5 OS: CentOS Linux release 7.7.1908 (Core) Kernel: 3.10.0-1062.el7.x86_64 Command run with options and output: ./l2fwd-crypto -l 0-1 -n 4 --vdev "crypto_aesni_mb0" --vdev "crypto_aesni_mb1" -- -p 0x3 --chain CIPHER_HASH --cipher_op ENCRYPT --cipher_algo aes-cbc --cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f --auth_op GENERATE --auth_algo aes-xcbc-mac --auth_key 10:11:12:13:14:15:16:17:18:19:1a:1b:1c:1d:1e:1f EAL: Detected 8 lcore(s) EAL: Detected 1 NUMA nodes EAL: failed to parse device "crypto_aesni_mb0" EAL: Unable to parse device 'crypto_aesni_mb0' EAL: Error - exiting with code: 1 Cause: Invalid EAL arguments I am not sure what is causing the error failed to parse device "crypto_aesni_mb0" Is there a specific driver that needs to be loaded? Or is there a hardware dependency? I am using virtio nic to test out the app. Please suggest if the info I have provided is sufficient to determine the cause? NIC and driver details: Network devices using DPDK-compatible driver ============================================ 0000:00:04.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci 0000:00:05.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci 0000:00:06.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci 0000:00:07.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci 00:04.0 Ethernet controller: Red Hat, Inc. Virtio network device Subsystem: Red Hat, Inc. Device 0001 Physical Slot: 4 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 11 Region 0: I/O ports at c060 [size=32] Region 1: Memory at febd2000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at feac0000 [disabled] [size=256K] Capabilities: [40] MSI-X: Enable- Count=3 Masked- Vector table: BAR=1 offset=00000000 PBA: BAR=1 offset=00000800 Kernel driver in use: uio_pci_generic Kernel modules: virtio_pci Processor details: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 1 Core(s) per socket: 8 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 44 Model name: Westmere E56xx/L56xx/X56xx (Nehalem-C) Stepping: 1 CPU MHz: 2693.676 BogoMIPS: 5387.35 Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 4096K NUMA node0 CPU(s): 0-7 Flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm md_clear Regards, Surajit
Hey Surajit, It's difficult to tell from the log output but have you actually installed the required libraries for the IPsec MB PMD on your system. If you're not sure look at the installation guide in the documentation: http://doc.dpdk.org/guides/cryptodevs/aesni_mb.html#installation If your interested in IPsec, you could also have a look at our IPsec Security Gateway sample application, which implements most of the data path of an IPsec security gateway, see the docs here http://doc.dpdk.org/guides/sample_app_ug/ipsec_secgw.html for details Declan On 08/01/2021 9:08 AM, Das, Surajit wrote: > Hi DPDK Experts, > > We are working on expanding our DPDK application to do IPSec based encryption. > To that end I was trying out the sample application provided. > But, I am hitting an error which is probably configuration related. > > My DPDK version: > dpdk-stable-19.11.5 > OS: CentOS Linux release 7.7.1908 (Core) > Kernel: 3.10.0-1062.el7.x86_64 > > Command run with options and output: > ./l2fwd-crypto -l 0-1 -n 4 --vdev "crypto_aesni_mb0" --vdev "crypto_aesni_mb1" -- -p 0x3 --chain CIPHER_HASH --cipher_op ENCRYPT --cipher_algo aes-cbc --cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f --auth_op GENERATE --auth_algo aes-xcbc-mac --auth_key 10:11:12:13:14:15:16:17:18:19:1a:1b:1c:1d:1e:1f > EAL: Detected 8 lcore(s) > EAL: Detected 1 NUMA nodes > EAL: failed to parse device "crypto_aesni_mb0" > EAL: Unable to parse device 'crypto_aesni_mb0' > EAL: Error - exiting with code: 1 > Cause: Invalid EAL arguments > > > I am not sure what is causing the error failed to parse device "crypto_aesni_mb0" > Is there a specific driver that needs to be loaded? Or is there a hardware dependency? > I am using virtio nic to test out the app. > Please suggest if the info I have provided is sufficient to determine the cause? > > NIC and driver details: > > Network devices using DPDK-compatible driver > ============================================ > 0000:00:04.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci > 0000:00:05.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci > 0000:00:06.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci > 0000:00:07.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci > > 00:04.0 Ethernet controller: Red Hat, Inc. Virtio network device > Subsystem: Red Hat, Inc. Device 0001 > Physical Slot: 4 > Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- > Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- > Interrupt: pin A routed to IRQ 11 > Region 0: I/O ports at c060 [size=32] > Region 1: Memory at febd2000 (32-bit, non-prefetchable) [size=4K] > Expansion ROM at feac0000 [disabled] [size=256K] > Capabilities: [40] MSI-X: Enable- Count=3 Masked- > Vector table: BAR=1 offset=00000000 > PBA: BAR=1 offset=00000800 > Kernel driver in use: uio_pci_generic > Kernel modules: virtio_pci > > Processor details: > Architecture: x86_64 > CPU op-mode(s): 32-bit, 64-bit > Byte Order: Little Endian > CPU(s): 8 > On-line CPU(s) list: 0-7 > Thread(s) per core: 1 > Core(s) per socket: 8 > Socket(s): 1 > NUMA node(s): 1 > Vendor ID: GenuineIntel > CPU family: 6 > Model: 44 > Model name: Westmere E56xx/L56xx/X56xx (Nehalem-C) > Stepping: 1 > CPU MHz: 2693.676 > BogoMIPS: 5387.35 > Hypervisor vendor: KVM > Virtualization type: full > L1d cache: 32K > L1i cache: 32K > L2 cache: 4096K > NUMA node0 CPU(s): 0-7 > Flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm md_clear > > Regards, > Surajit >
Hi Declan, Thanks for reaching out. You are right, I had missed installing nasm and intel-ipsec-mb. I also had missed changing ./build/.config file content from CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n to CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y I can see l2fwd-crypto running now. I have started exploring ipsec-secgw and am running into a different set of issues. I will send a new mail with a different subject line, as that issue is unrelated. Regards, Surajit From: Doherty, Declan <declan.doherty@intel.com> Date: Wednesday, 20 January 2021 at 10:59 PM To: Das, Surajit <Surajit.Das@commscope.com>, users@dpdk.org <users@dpdk.org> Cc: Dharwadkar, Sriram <Sriram.Dharwadkar@commscope.com> Subject: Re: [dpdk-users] Using l2fwd-crypto sample app Hey Surajit, It's difficult to tell from the log output but have you actually installed the required libraries for the IPsec MB PMD on your system. If you're not sure look at the installation guide in External (declan.doherty@intel.com<mailto:declan.doherty@intel.com>) Report This Email<https://shared.outlook.inky.com/report?id=Y29tbXNjb3BlL3N1cmFqaXQuZGFzQGNvbW1zY29wZS5jb20vYTk3MzBjZTA1ZTEzNTEyOTMxOWRlNWU2MjU5OTM0NzkvMTYxMTE2Mzc1OC44Nw==#key=26f21be09b1e092baedd19a683948610> FAQ<https://www.inky.com/banner-faq/> Protection by INKY<https://www.inky.com> Hey Surajit, It's difficult to tell from the log output but have you actually installed the required libraries for the IPsec MB PMD on your system. If you're not sure look at the installation guide in the documentation: http://secure-web.cisco.com/1NjR55gubfGtDHwlAchiFTr-HXSHl4UQ5UtHMMa1ok_c5C0LXn5wJZ31GPl60FNZl93nQs0KAeVlnv7Gxk17JQ3qOmBiiC15S-58TFwnvej6wlOPXAasu8JfVxj3RigJ61AZ1d4rCUs5eHea8qcIf-BAAp1tAEv5j5VYLu3cXmBU14YjcXFQMUP5dcRys7NIAe4EpLSR489-yOjplqzmokGNinzWYZAck4o7oCzDxFmhgZX7tmscLR91LDVQBX1rHp_sEsEd4N4DjgH_BOswRLESzVW0U-VRH-VGvU1RS-BdGX1J5reum-z7B-JHUtKGT/http%3A%2F%2Fdoc.dpdk.org%2Fguides%2Fcryptodevs%2Faesni_mb.html%23installation If your interested in IPsec, you could also have a look at our IPsec Security Gateway sample application, which implements most of the data path of an IPsec security gateway, see the docs here http://secure-web.cisco.com/1gvP7htw_7JEIRYud_BFGK9gcGpay2oBR1vWDMF5jREfsxp-UenzrLay0Gt8yAyrw4g8UpgiL4gneDMz6NNWLlqRFfRqWjnmxxOlecnosj-PbQGQmXn9mVKb6c5bW0bB2eIuh74FIHVo1d9uS1hKxZvwsfKrHpf0hy3t2H2wp1ukC4A8-eiJt3QSN-UMJLD-6P9Hl2CxlAERn3sT3TGMLAPWQ_a9mtFrZXVjG3hc7O4BfZaYg_JHxRAx0iQEuhpgz1Z8HbgDWI1QRgkT860OeHnNAKHDQ6wIs10NgX0TfFUKIE8rh9BvyYQtiUlt0j-MC/http%3A%2F%2Fdoc.dpdk.org%2Fguides%2Fsample_app_ug%2Fipsec_secgw.html for details Declan On 08/01/2021 9:08 AM, Das, Surajit wrote: > Hi DPDK Experts, > > We are working on expanding our DPDK application to do IPSec based encryption. > To that end I was trying out the sample application provided. > But, I am hitting an error which is probably configuration related. > > My DPDK version: > dpdk-stable-19.11.5 > OS: CentOS Linux release 7.7.1908 (Core) > Kernel: 3.10.0-1062.el7.x86_64 > > Command run with options and output: > ./l2fwd-crypto -l 0-1 -n 4 --vdev "crypto_aesni_mb0" --vdev "crypto_aesni_mb1" -- -p 0x3 --chain CIPHER_HASH --cipher_op ENCRYPT --cipher_algo aes-cbc --cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f --auth_op GENERATE --auth_algo aes-xcbc-mac --auth_key 10:11:12:13:14:15:16:17:18:19:1a:1b:1c:1d:1e:1f > EAL: Detected 8 lcore(s) > EAL: Detected 1 NUMA nodes > EAL: failed to parse device "crypto_aesni_mb0" > EAL: Unable to parse device 'crypto_aesni_mb0' > EAL: Error - exiting with code: 1 > Cause: Invalid EAL arguments > > > I am not sure what is causing the error failed to parse device "crypto_aesni_mb0" > Is there a specific driver that needs to be loaded? Or is there a hardware dependency? > I am using virtio nic to test out the app. > Please suggest if the info I have provided is sufficient to determine the cause? > > NIC and driver details: > > Network devices using DPDK-compatible driver > ============================================ > 0000:00:04.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci > 0000:00:05.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci > 0000:00:06.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci > 0000:00:07.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci > > 00:04.0 Ethernet controller: Red Hat, Inc. Virtio network device > Subsystem: Red Hat, Inc. Device 0001 > Physical Slot: 4 > Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- > Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- > Interrupt: pin A routed to IRQ 11 > Region 0: I/O ports at c060 [size=32] > Region 1: Memory at febd2000 (32-bit, non-prefetchable) [size=4K] > Expansion ROM at feac0000 [disabled] [size=256K] > Capabilities: [40] MSI-X: Enable- Count=3 Masked- > Vector table: BAR=1 offset=00000000 > PBA: BAR=1 offset=00000800 > Kernel driver in use: uio_pci_generic > Kernel modules: virtio_pci > > Processor details: > Architecture: x86_64 > CPU op-mode(s): 32-bit, 64-bit > Byte Order: Little Endian > CPU(s): 8 > On-line CPU(s) list: 0-7 > Thread(s) per core: 1 > Core(s) per socket: 8 > Socket(s): 1 > NUMA node(s): 1 > Vendor ID: GenuineIntel > CPU family: 6 > Model: 44 > Model name: Westmere E56xx/L56xx/X56xx (Nehalem-C) > Stepping: 1 > CPU MHz: 2693.676 > BogoMIPS: 5387.35 > Hypervisor vendor: KVM > Virtualization type: full > L1d cache: 32K > L1i cache: 32K > L2 cache: 4096K > NUMA node0 CPU(s): 0-7 > Flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm md_clear > > Regards, > Surajit >