Sirshak,

The JVPP error was caused by a patch (10920) that somehow passed the Verify job, but failed during the merge job.  I have just merged the patch (10965) which reverts the patch which introduced the JVPP build errors.

Thanks,
-daw-

On 3/5/2018 5:44 PM, Sirshak Das wrote:
Hi Marco,

Thanks for replying.
I am not sure if you read the last part of my email:
Finally what is strange is if I copy dpdk-18.02.tar.gz to seperate
location and turn MLx5 config and build this builds fine.

Build drivers/net/mlx5
   CC mlx5.o
   PMDINFO mlx5.o.pmd.c
   CC mlx5.o.pmd.o
   LD mlx5.o
   CC mlx5_glue.o
   CC mlx5_rxq.o
   CC mlx5_txq.o
   CC mlx5_rxtx.o
   CC mlx5_rxtx_vec.o
   CC mlx5_trigger.o
   CC mlx5_ethdev.o
   CC mlx5_mac.o
   CC mlx5_rxmode.o
   CC mlx5_vlan.o
   CC mlx5_stats.o
   CC mlx5_rss.o
   CC mlx5_mr.o
   CC mlx5_flow.o
   CC mlx5_socket.o
   AR librte_pmd_mlx5.a
   INSTALL-LIB librte_pmd_mlx5.a

I dont know if Kernel Version is still an issue as dpdk(mlx5 pmd) works
for me on its own.
So in order to go past the issue I tried this change to vpp.mk:

# DPDK configuration parameters
vpp_uses_dpdk_mlx5_pmd = yes
vpp_uses_external_dpdk = yes
vpp_dpdk_inc_dir = <DPDK INSTALL DIR>/dpdk-18.02/build/include
vpp_dpdk_lib_dir = <DPDK INSTALL DIR>/dpdk-18.02/build/lib
vpp_dpdk_shared_lib = yes

I was able to go past the issue but currently I am facing issue with
jvpp building:

$ javac -version
javac 1.8.0_161

$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)


Entering directory 
'/home/sirdas/code/common/vpp/build-root/build-vpp-native/vpp/vpp-api/java'
   JVPP GEN  jvpp-registry/io_fd_vpp_jvpp_VppJNIConnection.h
   JVPP GEN  jvpp-gtpu/io_fd_vpp_jvpp_gtpu_JVppGtpuImpl.h
   JVPP GEN  jvpp-pppoe/io_fd_vpp_jvpp_pppoe_JVppPppoeImpl.h
   JVPP GEN  jvpp-core/io_fd_vpp_jvpp_core_JVppCoreImpl.h
   JVPP GEN  jvpp-ioampot/io_fd_vpp_jvpp_ioampot_JVppIoampotImpl.h
   JVPP GEN  jvpp-acl/io_fd_vpp_jvpp_acl_JVppAclImpl.h
   JVPP GEN  jvpp-ioamexport/io_fd_vpp_jvpp_ioamexport_JVppIoamexportImpl.h
   JVPP GEN  jvpp-ioamtrace/io_fd_vpp_jvpp_ioamtrace_JVppIoamtraceImpl.h
   JVPP GEN  jvpp-nat/io_fd_vpp_jvpp_nat_JVppNatImpl.h
jvpp-core/target/io/fd/vpp/jvpp/core/callfacade/CallbackJVppCoreFacade.java:2177:
 error: cannot find symbol
     public final void wantIp4NbrStats(io.fd.vpp.jvpp.core.dto.WantIp4NbrStats 
request, io.fd.vpp.jvpp.core.callback.WantIp4NbrStatsCallback callback) throws 
io.fd.vpp.jvpp.VppInvocationException {
                                                                                
                                    ^
   symbol:   class WantIp4NbrStatsCallback
   location: package io.fd.vpp.jvpp.core.callback
jvpp-core/target/io/fd/vpp/jvpp/core/callfacade/CallbackJVppCoreFacade.java:2183:
 error: cannot find symbol
     public final void wantIp6NbrStats(io.fd.vpp.jvpp.core.dto.WantIp6NbrStats 
request, io.fd.vpp.jvpp.core.callback.WantIp6NbrStatsCallback callback) throws 
io.fd.vpp.jvpp.VppInvocationException {
                                                                                
                                    ^
   symbol:   class WantIp6NbrStatsCallback
   location: package io.fd.vpp.jvpp.core.callback
jvpp-core/target/io/fd/vpp/jvpp/core/callfacade/CallbackJVppCore.java:368: 
error: cannot find symbol
     void wantIp4NbrStats(io.fd.vpp.jvpp.core.dto.WantIp4NbrStats request, 
io.fd.vpp.jvpp.core.callback.WantIp4NbrStatsCallback callback) throws 
io.fd.vpp.jvpp.VppInvocationException;
                                                                                
                       ^
   symbol:   class WantIp4NbrStatsCallback
   location: package io.fd.vpp.jvpp.core.callback
jvpp-core/target/io/fd/vpp/jvpp/core/callfacade/CallbackJVppCore.java:369: 
error: cannot find symbol
     void wantIp6NbrStats(io.fd.vpp.jvpp.core.dto.WantIp6NbrStats request, 
io.fd.vpp.jvpp.core.callback.WantIp6NbrStatsCallback callback) throws 
io.fd.vpp.jvpp.VppInvocationException;
                                                                                
                       ^
   symbol:   class WantIp6NbrStatsCallback
   location: package io.fd.vpp.jvpp.core.callback
jvpp-core/target/io/fd/vpp/jvpp/core/future/FutureJVppCoreFacade.java:1815: 
error: incompatible types: inference variable REPLY has incompatible bounds
         return send(request);
                    ^
     equality constraints: WantIp4NbrStats
     upper bounds: JVppReply<REQ>
   where REPLY,REQ are type-variables:
     REPLY extends JVppReply<REQ> declared in method <REQ,REPLY>send(REQ)
     REQ extends JVppRequest declared in method <REQ,REPLY>send(REQ)
jvpp-core/target/io/fd/vpp/jvpp/core/future/FutureJVppCoreFacade.java:1820: 
error: incompatible types: inference variable REPLY has incompatible bounds
         return send(request);
                    ^
     equality constraints: WantIp6NbrStats
     upper bounds: JVppReply<REQ>
   where REPLY,REQ are type-variables:
     REPLY extends JVppReply<REQ> declared in method <REQ,REPLY>send(REQ)
     REQ extends JVppRequest declared in method <REQ,REPLY>send(REQ)


If you or anybody else could help me with the issue it will be great.

Thank you
Sirshak Das


Marco Varlese writes:

Hi Sirshak,

Can you please take a look at this thread:
https://lists.fd.io/g/vpp-dev/message/8219

Also, take a look at http://dpdk.org/doc/guides/nics/mlx5.html for detailed
explanations and steps for DPDK to work with Mellanox NICs...

Likely, it's a kernel issue: for Mellanox latest PMD drivers (DPDK 17.11 and
above) you're required to have 4.15.x whilst I see you're running 4.10.x

Hope this helps.


Cheers,
Marco

On Thu, 2018-03-01 at 18:02 -0600, Sirshak Das wrote:
Hi all,

I am facing an issue with building VPP with DPDK (Mellanox Drivers
enabled) on aarch64.

The OFED version installed:
$ ofed_info -s
MLNX_OFED_LINUX-4.2-1.2.0.0:

Kernel Version:
$ uname -r
4.10.0-28-generic

Operating System Version:
Ubuntu 16.04.4 LTS (GNU/Linux 4.10.0-28-generic aarch64)

gcc version:
gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9)

Target Machine:
Qualcomm Centriq

lspci:
0004:01:00.0 Ethernet controller: Mellanox Technologies MT27700 Family
[ConnectX-4]

Steps I followed:

$ git clone ssh://<my-user-id>@gerrit.fd.io:29418/vpp.git
$ cd vpp/
$ sed -i '/vpp_uses_dpdk_mlx5_pmd/s/^# //g' build-data/platforms/vpp.mk
$ make dpdk-install-dev DPDK_MLX5_PMD=y

<INSTALL DIR>/vpp/dpdk/deb/_build/dpdk-
18.02/drivers/net/mlx5/mlx5_flow.c:38:8: error: redefinition of ‘struct
ibv_flow_spec_counter_action’
  struct ibv_flow_spec_counter_action {
         ^
In file included from <INSTALL DIR>/vpp/dpdk/deb/_build/dpdk-
18.02/drivers/net/mlx5/mlx5_flow.c:14:0:
/usr/include/infiniband/verbs.h:1360:8: note: originally defined here
  struct ibv_flow_spec_counter_action {


By looking at this file:
<INSTALL
DIR>/vpp/dpdk/deb/_build/dpdk-18.02/arm64-armv8a-linuxapp-
gcc/build/drivers/net/mlx5/mlx5_autoconf.h

Which looks like this:

/* HAVE_IBV_DEVICE_VXLAN_SUPPORT is not defined.
*/
/* HAVE_IBV_WQ_FLAG_RX_END_PADDING is not defined.
*/
/* HAVE_IBV_MLX5_MOD_MPW is not defined.
*/
/* HAVE_IBV_MLX5_MOD_CQE_128B_COMP is not defined.
*/
/* HAVE_ETHTOOL_LINK_MODE_25G is not defined. */

/* HAVE_ETHTOOL_LINK_MODE_50G is not defined.
*/
/* HAVE_ETHTOOL_LINK_MODE_100G is not defined.
*/
/* HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT is not defined. */

So I moved my attentions to this file:
<INSTALL DIR>/vpp/dpdk/deb/_build/dpdk-18.02/drivers/net/mlx5/Makefile
This whole section fails:
mlx5_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-
h.sh
$Q $(RM) -f --
'$@'
         $Q sh -- '$<' '$@'
\
                 HAVE_IBV_DEVICE_VXLAN_SUPPORT
\
infiniband/verbs.h
\
                 enum IBV_DEVICE_VXLAN_SUPPORT
\
$(AUTOCONF_OUTPUT) $Q sh -- '$<' '$@'
\
                 HAVE_IBV_WQ_FLAG_RX_END_PADDING
\
infiniband/verbs.h
\
                 enum IBV_WQ_FLAG_RX_END_PADDING
\
$(AUTOCONF_OUTPUT) $Q sh -- '$<' '$@'
\
                 HAVE_IBV_MLX5_MOD_MPW
\
infiniband/mlx5dv.h
\
enum MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED
\
$(AUTOCONF_OUTPUT) $Q sh -- '$<' '$@'
\
                 HAVE_IBV_MLX5_MOD_CQE_128B_COMP
\
infiniband/mlx5dv.h
\
enum MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP
\
$(AUTOCONF_OUTPUT) $Q sh -- '$<' '$@'
\
                 HAVE_ETHTOOL_LINK_MODE_25G
\
                 /usr/include/linux/ethtool.h
\
                 enum ETHTOOL_LINK_MODE_25000baseCR_Full_BIT
\
$(AUTOCONF_OUTPUT) $Q sh -- '$<' '$@'
\
                 HAVE_ETHTOOL_LINK_MODE_50G
\
                 /usr/include/linux/ethtool.h
\
                 enum ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT
\

                 $(AUTOCONF_OUTPUT)
$Q sh -- '$<' '$@'
\
                 HAVE_ETHTOOL_LINK_MODE_100G
\
/usr/include/linux/ethtool.h
\
                 enum ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT
\
$(AUTOCONF_OUTPUT) $Q sh -- '$<' '$@'
\
                 HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT
\
infiniband/verbs.h
\
                 enum IBV_FLOW_SPEC_ACTION_COUNT
\
$(AUTOCONF_OUTPUT)

Which ideally shouldnt because all these files exist:

$ ls -l /usr/include/infiniband/
total 156
-rw-r--r-- 1 root root  1939 Nov 25 12:17 arch.h
-rw-r--r-- 1 root root  2897 Nov 25 12:17 ib.h
-rw-r--r-- 1 root root 27353 Nov 25 12:17 kern-abi.h
-rw-r--r-- 1 root root 12895 Nov 25 12:17 mlx4dv.h
-rw-r--r-- 1 root root 17121 Nov 25 12:17 mlx5dv.h
-rw-r--r-- 1 root root  5694 Nov 25 12:17 opcode.h
-rw-r--r-- 1 root root  4074 Nov 25 12:17 sa.h
-rw-r--r-- 1 root root  1622 Nov 25 12:17 sa-kern-abi.h
-rw-r--r-- 1 root root 67777 Nov 25 12:17 verbs.h

$ ls -l /usr/include/linux/ethtool.h
-rw-r--r-- 1 root root 65636 Feb 12 17:44 /usr/include/linux/ethtool.h


Finally what is strange is if I copy dpdk-18.02.tar.gz to seperate
location and turn MLx5 config and build this builds fine.

Build drivers/net/mlx5
   CC mlx5.o
   PMDINFO mlx5.o.pmd.c
   CC mlx5.o.pmd.o
   LD mlx5.o
   CC mlx5_glue.o
   CC mlx5_rxq.o
   CC mlx5_txq.o
   CC mlx5_rxtx.o
   CC mlx5_rxtx_vec.o
   CC mlx5_trigger.o
   CC mlx5_ethdev.o
   CC mlx5_mac.o
   CC mlx5_rxmode.o
   CC mlx5_vlan.o
   CC mlx5_stats.o
   CC mlx5_rss.o
   CC mlx5_mr.o
   CC mlx5_flow.o
   CC mlx5_socket.o
   AR librte_pmd_mlx5.a
   INSTALL-LIB librte_pmd_mlx5.a

I feel I am missing some trivial step in vpp build process please help
me out I am new to vpp. Let me know if you need any more infor to debug
this issue.

Thank you
Sirshak Das







Reply via email to