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?

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




-- 
DISCLAIMER
--------------------------------------
By sending an email to ANY of my addresses you are agreeing that:
1. I am by definition, "the intended recipient"!
2. All information in the email is mine to do with as I see fit and
make such financial profit, political mileage, or good joke as it lends
itself to. In particular, I may quote it on social media.
3. I may take the contents as representing the views of your company.
4. This overrides any disclaimer or statement of confidentiality that
may be included on your message. 



Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to