On Mon, 2018-03-05 at 16:44 -0600, 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.
Indeed I missed your last part of email... :(
> > > 
> > > 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.
I reported to you what's stated by the DPDK folks on their guide
(http://dpdk.org/doc/guides/nics/mlx5.html):

<<
22.6.1.1. RMDA Core with Linux Kernel
Minimal kernel version : v4.14 or the most recent 4.14-rc (see Linux
installation documentation)
Minimal rdma-core version: v15+ commit 0c5f5765213a (“Merge pull request #227
from yishaih/tm”) (see RDMA Core installation documentation)
>>

> 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.
I see Dave W already replied to you about this and can confirm that the revert
of that patch fixes the above issue.
> 
> 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
> > > 
> > > 
> > > 
> 
> 
-- 
Marco V

SUSE LINUX GmbH | GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg) Maxfeldstr. 5, D-90409, Nürnberg

-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#8419): https://lists.fd.io/g/vpp-dev/message/8419
View All Messages In Topic (5): https://lists.fd.io/g/vpp-dev/topic/13284116
Mute This Topic: https://lists.fd.io/mt/13284116/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to