mtcp-stack / mtcp

mTCP: A Highly Scalable User-level TCP Stack for Multicore Systems

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dell R220 Centos 7.8 mTCP DPDK 18.05 ERROR: This system does not support "AES".

vincentmli opened this issue · comments

Running mTCP on an old Dell PowerEdge R220 with CPU Intel(R) Celeron(R) CPU G1820 @ 2.70GHz that does not support AES

got error when building dpdk-iface-kmod

[35] Exit Script

Option: 35

Setting RTE_TARGET as x86_64-native-linuxapp-gcc
/usr/src/mtcp
Set RTE_SDK env variable as /usr/src/mtcp/dpdk
Set RTE_TARGET env variable as x86_64-native-linuxapp-gcc
Are you using an Intel NIC (y/n)? y
Creating dpdk interface entries
make -C /lib/modules/3.10.0-1127.el7.x86_64/build/ M=/usr/src/mtcp/dpdk-iface-kmod modules
make[1]: Entering directory `/usr/src/kernels/3.10.0-1127.18.2.el7.x86_64'
  Building modules, stage 2.
  MODPOST 1 modules
make[1]: Leaving directory `/usr/src/kernels/3.10.0-1127.18.2.el7.x86_64'
make -C /lib/modules/3.10.0-1127.el7.x86_64/build/ M=/usr/src/mtcp/dpdk-iface-kmod modules
make[1]: Entering directory `/usr/src/kernels/3.10.0-1127.18.2.el7.x86_64'
  Building modules, stage 2.
  MODPOST 1 modules
make[1]: Leaving directory `/usr/src/kernels/3.10.0-1127.18.2.el7.x86_64'
sudo ./dpdk_iface_main
Removing existing device node entry... done.  
Creating device node entry... done.  
Setting permissions on the device node entry... done.  
Scanning the system for dpdk-compatible devices...ERROR: This system does not support "AES".
Please check that RTE_MACHINE is set correctly.
EAL: FATAL: unsupported cpu type.
No Ethernet port detected!
make: *** [run] Error 1

I found commit 88e5b9d "Updated DPDK to v19.08" and did

#git reset --hard HEAD^

to that commit with DPDK to v19.08.

it fixed the "ERROR: This system does not support "AES"." problem

then ran into error:

[60] Exit Script

Option: 60

Setting RTE_TARGET as x86_64-native-linuxapp-gcc
/usr/src/mtcp
Set RTE_SDK env variable as /usr/src/mtcp/dpdk
Set RTE_TARGET env variable as x86_64-native-linuxapp-gcc
Are you using an Intel NIC (y/n)? y
Creating dpdk interface entries
  CC dpdk_iface_main.c
dpdk_iface_main.c:26:20: error: field ‘ports_eth_addr’ has incomplete type
  struct ether_addr ports_eth_addr;
                    ^
dpdk_iface_main.c: In function ‘main’:
dpdk_iface_main.c:264:2: warning: ‘rte_eth_dev_count’ is deprecated (declared at /usr/src/mtcp/dpdk/x86_64-native-linuxapp-gcc/include/rte_ethdev.h:1603) [-Wdeprecated-declarations]
  num_devices = rte_eth_dev_count();
  ^
make: *** [dpdk_iface_main] Error 1
  CC dpdk_iface_main.c
dpdk_iface_main.c:26:20: error: field ‘ports_eth_addr’ has incomplete type
  struct ether_addr ports_eth_addr;
                    ^
dpdk_iface_main.c: In function ‘main’:
dpdk_iface_main.c:264:2: warning: ‘rte_eth_dev_count’ is deprecated (declared at /usr/src/mtcp/dpdk/x86_64-native-linuxapp-gcc/include/rte_ethdev.h:1603) [-Wdeprecated-declarations]
  num_devices = rte_eth_dev_count();
  ^
make: *** [dpdk_iface_main] Error 1

had to add diff below to resolve the issue, this is a hack to run mTCP on an old server.

diff --git a/dpdk-iface-kmod/dpdk_iface_main.c b/dpdk-iface-kmod/dpdk_iface_main.c
index 143cea4..ba8e199 100644
--- a/dpdk-iface-kmod/dpdk_iface_main.c
+++ b/dpdk-iface-kmod/dpdk_iface_main.c
@@ -19,6 +19,13 @@
 #define SYSFS_PCI_UIOPCIGEN            SYSFS_PCI_DRIVER_PATH"uio_pci_generic"
 #define RTE_ARGC_MAX                   (RTE_MAX_ETHPORTS << 1) + 7
 /*--------------------------------------------------------------------------*/
+
+#define ETHER_ADDR_LEN 6
+struct ether_addr {
+        uint8_t addr_bytes[ETHER_ADDR_LEN]; /**< Addr bytes in tx order */
+} __attribute__((__packed__));
+
+
 typedef struct {
        PciDevice pd;
        struct rte_eth_dev_info dev_details;

I am wondering what is the reason revert back from DPDK v19.08 to DPDK 18.05 for mTCP