[dpdk-dev] ConnectX4 100GbE - Compilation problem

2016-08-18 Thread george....@gmail.com
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

. 
Following this

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


[dpdk-dev] ConnectX4 100GbE - Compilation problem

2016-08-18 Thread george....@gmail.com
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
> >  209&mtag=pmd_for_dpdk>
> > .
> > Following this
> >  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/