On 9/20/23 06:39, Levente Csikor via discuss wrote:
> Hi All,
> 
> I have a long lasting problem I have been trying to resolve for quite
> some time. I am playing around with an NVidia SmartNIC (Bluefield-2),
> which has OvS installed by default. It works well with the kernel
> driver, and even TC hardware offloading is working.
> 
> I want to experiment with DPDK, though. 
> DPDK is also installed by default on the Bluefield-2.
> The details of the versions are as follows:
> 
> OvS 2.17.7
> DPDK 22.11.1.4.2
> 
> Following the "NVidia tutorials", I manage to add the physical port as
> a netdev device to an OVS-DPDK bridge, however, adding the virtual
> function fails.
> 
> More details about the commands and problem are here:  
> https://forums.developer.nvidia.com/t/error-with-configuring-ovs-dpdk-on-bluefiled-2/256030/4
> 
> 
> Anyway, as a last resort, I thought I give a try to install OvS and
> DPDK from scratch following
> https://docs.openvswitch.org/en/latest/intro/install/dpdk/
> 
> I used the same version for OvS and DPDK; the latter was anyway the one
> recommended by the OvS documentation.
> 
> During the `make` process, I encounter several errors I cannot really
> resolve
> ```
> In file included from lib/dp-packet.h:29,
>                  from lib/bfd.c:28:
> lib/netdev-dpdk.h:95:12: warning: ‘struct rte_flow_tunnel’ declared
> inside parameter list will not be visible outside of this definition or
> declaration
>    95 |     struct rte_flow_tunnel *tunnel OVS_UNUSED,
>       |            ^~~~~~~~~~~~~~~
> lib/netdev-dpdk.h:106:42: warning: ‘struct rte_flow_tunnel’ declared
> inside parameter list will not be visible outside of this definition or
> declaration
>   106 |                                   struct rte_flow_tunnel
> *tunnel OVS_UNUSED,
>       |                                          ^~~~~~~~~~~~~~~
> lib/netdev-dpdk.h:119:12: warning: ‘struct rte_flow_restore_info’
> declared inside parameter list will not be visible outside of this
> definition or declaration
>   119 |     struct rte_flow_restore_info *info OVS_UNUSED,
>       |            ^~~~~~~~~~~~~~~~~~~~~
> In file included from lib/bfd.c:28:
> lib/dp-packet.h:61:40: error: ‘RTE_MBUF_F_RX_RSS_HASH’ undeclared here
> (not in a function)
>    61 |     DEF_OL_FLAG(DP_PACKET_OL_RSS_HASH, RTE_MBUF_F_RX_RSS_HASH,
> 0x1),
>       |                                        ^~~~~~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:63:41: error: ‘RTE_MBUF_F_RX_FDIR_ID’ undeclared here
> (not in a function)
>    63 |     DEF_OL_FLAG(DP_PACKET_OL_FLOW_MARK, RTE_MBUF_F_RX_FDIR_ID,
> 0x2),
>       |                                         ^~~~~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:65:47: error: ‘RTE_MBUF_F_RX_L4_CKSUM_BAD’ undeclared
> here (not in a function)
>    65 |     DEF_OL_FLAG(DP_PACKET_OL_RX_L4_CKSUM_BAD,
> RTE_MBUF_F_RX_L4_CKSUM_BAD, 0x4),
>       |                                              
> ^~~~~~~~~~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:67:47: error: ‘RTE_MBUF_F_RX_IP_CKSUM_BAD’ undeclared
> here (not in a function)
>    67 |     DEF_OL_FLAG(DP_PACKET_OL_RX_IP_CKSUM_BAD,
> RTE_MBUF_F_RX_IP_CKSUM_BAD, 0x8),
>       |                                              
> ^~~~~~~~~~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:69:48: error: ‘RTE_MBUF_F_RX_L4_CKSUM_GOOD’ undeclared
> here (not in a function)
>    69 |     DEF_OL_FLAG(DP_PACKET_OL_RX_L4_CKSUM_GOOD,
> RTE_MBUF_F_RX_L4_CKSUM_GOOD,
>       |                                               
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:72:48: error: ‘RTE_MBUF_F_RX_IP_CKSUM_GOOD’ undeclared
> here (not in a function)
>    72 |     DEF_OL_FLAG(DP_PACKET_OL_RX_IP_CKSUM_GOOD,
> RTE_MBUF_F_RX_IP_CKSUM_GOOD,
>       |                                               
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:75:42: error: ‘RTE_MBUF_F_TX_TCP_SEG’ undeclared here
> (not in a function); did you mean ‘RTE_MBUF_MAX_NB_SEGS’?
>    75 |     DEF_OL_FLAG(DP_PACKET_OL_TX_TCP_SEG, RTE_MBUF_F_TX_TCP_SEG,
> 0x40),
>       |                                          ^~~~~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:77:39: error: ‘RTE_MBUF_F_TX_IPV4’ undeclared here (not
> in a function)
>    77 |     DEF_OL_FLAG(DP_PACKET_OL_TX_IPV4, RTE_MBUF_F_TX_IPV4,
> 0x80),
>       |                                       ^~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:79:39: error: ‘RTE_MBUF_F_TX_IPV6’ undeclared here (not
> in a function)
>    79 |     DEF_OL_FLAG(DP_PACKET_OL_TX_IPV6, RTE_MBUF_F_TX_IPV6,
> 0x100),
>       |                                       ^~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:81:44: error: ‘RTE_MBUF_F_TX_TCP_CKSUM’ undeclared here
> (not in a function)
>    81 |     DEF_OL_FLAG(DP_PACKET_OL_TX_TCP_CKSUM,
> RTE_MBUF_F_TX_TCP_CKSUM, 0x200),
>       |                                           
> ^~~~~~~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:83:44: error: ‘RTE_MBUF_F_TX_UDP_CKSUM’ undeclared here
> (not in a function)
>    83 |     DEF_OL_FLAG(DP_PACKET_OL_TX_UDP_CKSUM,
> RTE_MBUF_F_TX_UDP_CKSUM, 0x400),
>       |                                           
> ^~~~~~~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> lib/dp-packet.h:85:45: error: ‘RTE_MBUF_F_TX_SCTP_CKSUM’ undeclared
> here (not in a function)
>    85 |     DEF_OL_FLAG(DP_PACKET_OL_TX_SCTP_CKSUM,
> RTE_MBUF_F_TX_SCTP_CKSUM, 0x800),
>       |                                            
> ^~~~~~~~~~~~~~~~~~~~~~~~
> lib/dp-packet.h:52:57: note: in definition of macro ‘DEF_OL_FLAG’
>    52 | #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME =
> DPDK_DEF
>       |                                                        
> ^~~~~~~~
> make[2]: *** [Makefile:4645: lib/bfd.lo] Error 1
> make[2]: Leaving directory '/opt/ovs-2.17.7'
> make[1]: *** [Makefile:5409: all-recursive] Error 1
> make[1]: Leaving directory '/opt/ovs-2.17.7'
> make: *** [Makefile:3079: all] Error 2
> ```
> 
> Asking google did not help at all :( 
> Did anyone encounter such errors?

Nvidia is using their closed-source versions of OVS and DPDK, so the
versions you provided are not what you need.

Upstream OVS 2.17 works only with DPDK 21.11.  See the "What DPDK version
does each Open vSwitch release work with?" section of releases FAQ:
  https://docs.openvswitch.org/en/latest/faq/releases/

DPDK 22.11 is supported starting with OVS 3.1.  But I would guess that
Nvidia's DPDK 22.11 is not actually an upstream DPDK 22.11.

Best regards, Ilya Maximets.

> 
> btw. the Ethernet ports/hw that the Bluefield-2 has is a
> Mellanox/Nvidia ConnectX-6, using the mlx5_core driver.
> 
> 
> All comments are welcome :)
> 
> Thanks,
> Levi
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to