Hi Adrien, Thanks for the prompt reply! You are right, I didn't go via the DPDK route, in the hope that Mellanox will provide the exact source and configuration. DPDK 16.07 from dpdk.org works like a charm and my NIC is in PMD mode, thanks a lot for your guidance!
Best regards, Georgios On Thu, Aug 18, 2016 at 6:05 PM, Adrien Mazarguil < adrien.mazarguil at 6wind.com> wrote: > Hi George, > > On Thu, Aug 18, 2016 at 05:41:38PM +0200, george.dit at gmail.com wrote: > > 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'. > > Please note this is a third party package maintained by Mellanox, therefore > this mailing list is not the right place to discuss related errors, unless > they can be reproduced with a version downloaded from dpdk.org. > > > 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. > > Well fortunately these errors are also present in v2.2.0 and should have > been addressed since v16.07 by the following commit: > > http://dpdk.org/browse/dpdk/commit/?id=d06c608c013c36711e7a693b3fece6 > 8a93ae4369 > > You can either upgrade to v16.07, back-port this commit yourself or wait > for > an update from Mellanox. > > -- > Adrien Mazarguil > 6WIND > -- Georgios Katsikas Ph.D. Student and Research Assistant Network Systems Lab (NSL) *E-Mail:* george <george.katsikas at imdea.org>.dit at gmail.com *Web Site:* http://www.di.uoa.gr/~katsikas/ <http://people.networks.imdea.org/~george_katsikas/index.html>