[dpdk-dev] ConnectX4 100GbE - Compilation problem

george.dit at gmail.com george.dit at gmail.com
Thu Aug 18 17:41:38 CEST 2016


Hi,

I have a single port Mellanox ConnectX 4 100GbE NIC and I want to test its
Rx/Tx capabilites  using DPDK.
My system runs a Linux kernel 4.4 compiled from sources.

I found the PMD driver for this NIC as provided by Mellanox here
<http://www.mellanox.com/page/products_dyn?product_family=209&mtag=pmd_for_dpdk>
.
Following this
<http://www.mellanox.com/related-docs/prod_software/MLNX_DPDK_Quick_Start_Guide_v2.2_2.7.pdf>
guideline, I put my NIC in Ethernet mode, configured the 3 options
regarding mlx5 in the config/common_linuxapp file and applied 'make install
T=x86_64-native-linuxapp-gcc'.

Then, I stumbled upon a compilation problem in the mlx4 module.
The compiler's output is as follows:

== Build drivers/net/mlx4
  CC mlx4.o
In file included from /usr/include/linux/if.h:31:0,
                 from /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:57:
/usr/include/linux/hdlc/ioctl.h:73:14: error: ‘IFNAMSIZ’ undeclared here
(not in a function)
  char master[IFNAMSIZ]; /* Name of master FRAD device */
              ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:612:53: error: ‘struct
ifreq’ declared inside parameter list [-Werror]
 priv_ifreq(const struct priv *priv, int req, struct ifreq *ifr)
                                                     ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:612:53: error: its scope is
only this definition or declaration, which is probably not what you want
[-Werror]
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function ‘priv_ifreq’:
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:619:32: error: dereferencing
pointer to incomplete type ‘struct ifreq’
  if (priv_get_ifname(priv, &ifr->ifr_name) == 0)
                                ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function ‘rxq_setup’:
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:3735:29: error: unused
parameter ‘inactive’ [-Werror=unused-parameter]
    unsigned int socket, int inactive, const struct rte_eth_rxconf *conf,
                             ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function
‘mlx4_link_update_unlocked’:
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4712:15: error: storage size
of ‘ifr’ isn’t known
  struct ifreq ifr;
               ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4724:43: error: ‘IFF_UP’
undeclared (first use in this function)
  dev_link.link_status = ((ifr.ifr_flags & IFF_UP) &&
                                           ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4724:43: note: each
undeclared identifier is reported only once for each function it appears in
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4725:22: error:
‘IFF_RUNNING’ undeclared (first use in this function)
     (ifr.ifr_flags & IFF_RUNNING));
                      ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4712:15: error: unused
variable ‘ifr’ [-Werror=unused-variable]
  struct ifreq ifr;
               ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function
‘mlx4_dev_get_flow_ctrl’:
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4880:15: error: storage size
of ‘ifr’ isn’t known
  struct ifreq ifr;
               ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4880:15: error: unused
variable ‘ifr’ [-Werror=unused-variable]
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function
‘mlx4_dev_set_flow_ctrl’:
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4930:15: error: storage size
of ‘ifr’ isn’t known
  struct ifreq ifr;
               ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4930:15: error: unused
variable ‘ifr’ [-Werror=unused-variable]
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function ‘priv_get_mac’:
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:5184:15: error: storage size
of ‘request’ isn’t known
  struct ifreq request;
               ^
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:5184:15: error: unused
variable ‘request’ [-Werror=unused-variable]
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function
‘mlx4_pci_devinit’:
/opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:5725:25: error: ‘IFF_UP’
undeclared (first use in this function)
   priv_set_flags(priv, ~IFF_UP, IFF_UP);
                         ^
cc1: all warnings being treated as errors
/opt/MLNX_DPDK_2.2_2.7/mk/internal/rte.compile-pre.mk:126: recipe for
target 'mlx4.o' failed

Iwould appreciate any suggestions and guidance.

Best regards,
Georgios Katsikas


More information about the dev mailing list