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.
signature.asc
Description: This is a digitally signed message part
_______________________________________________ discuss mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
