On 18/12/2024 16:24, David Marchand wrote: > This commit adds support for DPDK v24.11.1. > It updates the CI script and documentation and includes the following > changes coming from the dpdk-latest branch: > > - netdev-offload-dpdk: Fix build with v24.11-rc1. > https://patchwork.ozlabs.org/project/openvswitch/list/?series=428784&state=* > > Acked-by: Kevin Traynor <[email protected]> > Acked-by: Eelco Chaudron <[email protected]> > Signed-off-by: David Marchand <[email protected]>
Thanks David. LGTM. I will apply tomorrow AM unless there is some more comments. thanks, Kevin. > --- > Changes since v1: > - bump to v24.11.1 (CVE fix), > > --- > .github/workflows/build-and-test.yml | 2 +- > Documentation/faq/releases.rst | 2 +- > Documentation/intro/install/dpdk.rst | 16 ++++++------- > Documentation/topics/dpdk/phy.rst | 12 +++++----- > Documentation/topics/dpdk/vdev.rst | 2 +- > Documentation/topics/dpdk/vhost-user.rst | 2 +- > Documentation/topics/testing.rst | 2 +- > Documentation/topics/userspace-tso.rst | 2 +- > NEWS | 2 +- > debian/control.in | 2 +- > lib/netdev-offload-dpdk.c | 30 ++++++++++++------------ > rhel/openvswitch-fedora.spec.in | 2 +- > 12 files changed, 38 insertions(+), 38 deletions(-) > > diff --git a/.github/workflows/build-and-test.yml > b/.github/workflows/build-and-test.yml > index 95dea3ee7d..724e3e2f0f 100644 > --- a/.github/workflows/build-and-test.yml > +++ b/.github/workflows/build-and-test.yml > @@ -14,7 +14,7 @@ jobs: > dependencies: gcc libnuma-dev libxdp-dev ninja-build pkgconf > CC: gcc > DPDK_GIT: https://dpdk.org/git/dpdk-stable > - DPDK_VER: 23.11.2 > + DPDK_VER: 24.11.1 > name: dpdk gcc > outputs: > dpdk_key: ${{ steps.gen_dpdk_key.outputs.key }} > diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst > index d7d4008f47..c9acc1e80e 100644 > --- a/Documentation/faq/releases.rst > +++ b/Documentation/faq/releases.rst > @@ -238,7 +238,7 @@ Q: Are all the DPDK releases that OVS versions work with > maintained? > The latest information about DPDK stable and LTS releases can be found > at `DPDK stable`_. > > -.. _DPDK stable: http://doc.dpdk.org/guides-23.11/contributing/stable.html > +.. _DPDK stable: http://doc.dpdk.org/guides-24.11/contributing/stable.html > > Q: I get an error like this when I configure Open vSwitch: > > diff --git a/Documentation/intro/install/dpdk.rst > b/Documentation/intro/install/dpdk.rst > index ebd29a45a9..091c552be5 100644 > --- a/Documentation/intro/install/dpdk.rst > +++ b/Documentation/intro/install/dpdk.rst > @@ -42,7 +42,7 @@ Build requirements > In addition to the requirements described in :doc:`general`, building Open > vSwitch with DPDK will require the following: > > -- DPDK 23.11.2 > +- DPDK 24.11.1 > > - A `DPDK supported NIC`_ > > @@ -59,8 +59,8 @@ vSwitch with DPDK will require the following: > > Detailed system requirements can be found at `DPDK requirements`_. > > -.. _DPDK supported NIC: https://doc.dpdk.org/guides-23.11/nics/index.html > -.. _DPDK requirements: > https://doc.dpdk.org/guides-23.11/linux_gsg/sys_reqs.html > +.. _DPDK supported NIC: https://doc.dpdk.org/guides-24.11/nics/index.html > +.. _DPDK requirements: > https://doc.dpdk.org/guides-24.11/linux_gsg/sys_reqs.html > > .. _dpdk-install: > > @@ -73,9 +73,9 @@ Install DPDK > #. Download the `DPDK sources`_, extract the file and set ``DPDK_DIR``:: > > $ cd /usr/src/ > - $ wget https://fast.dpdk.org/rel/dpdk-23.11.2.tar.xz > - $ tar xf dpdk-23.11.2.tar.xz > - $ export DPDK_DIR=/usr/src/dpdk-stable-23.11.2 > + $ wget https://fast.dpdk.org/rel/dpdk-24.11.1.tar.xz > + $ tar xf dpdk-24.11.1.tar.xz > + $ export DPDK_DIR=/usr/src/dpdk-stable-24.11.1 > $ cd $DPDK_DIR > > #. Configure and install DPDK using Meson > @@ -121,7 +121,7 @@ Install DPDK > > .. _DPDK sources: http://dpdk.org/rel > .. _DPDK documentation: > - https://doc.dpdk.org/guides-23.11/linux_gsg/build_dpdk.html > + https://doc.dpdk.org/guides-24.11/linux_gsg/build_dpdk.html > > Install OVS > ~~~~~~~~~~~ > @@ -722,7 +722,7 @@ Limitations > release notes`_. > > .. _DPDK release notes: > - https://doc.dpdk.org/guides-23.11/rel_notes/release_23_11.html > + https://doc.dpdk.org/guides-24.11/rel_notes/release_24_11.html > > - Upper bound MTU: DPDK device drivers differ in how the L2 frame for a > given MTU value is calculated e.g. i40e driver includes 2 x vlan headers in > diff --git a/Documentation/topics/dpdk/phy.rst > b/Documentation/topics/dpdk/phy.rst > index eefc25613d..4704ab21c8 100644 > --- a/Documentation/topics/dpdk/phy.rst > +++ b/Documentation/topics/dpdk/phy.rst > @@ -117,7 +117,7 @@ tool:: > > For more information, refer to the `DPDK drivers documentation`_. > > -.. _DPDK drivers documentation: > https://doc.dpdk.org/guides-23.11/linux_gsg/linux_drivers.html > +.. _DPDK drivers documentation: > https://doc.dpdk.org/guides-24.11/linux_gsg/linux_drivers.html > > .. _dpdk-phy-multiqueue: > > @@ -148,14 +148,14 @@ situation. > Some physical NICs can be programmed to put these protocols in a dedicated > hardware Rx queue using the rte_flow__ API. > > -__ https://doc.dpdk.org/guides-23.11/prog_guide/rte_flow.html > +__ https://doc.dpdk.org/guides-24.11/prog_guide/rte_flow.html > > .. warning:: > > This feature is not compatible with all NICs. Refer to the DPDK > `compatibility matrix`__ and vendor documentation for more details. > > - __ https://doc.dpdk.org/guides-23.11/nics/overview.html > + __ https://doc.dpdk.org/guides-24.11/nics/overview.html > > Rx steering must be enabled for specific protocols per port. The > ``rx-steering`` option takes one of the following values: > @@ -322,7 +322,7 @@ To hotplug a port with igb_uio in this case, DPDK must be > configured to use > physical addressing for IOVA mode. For more information regarding IOVA modes > in DPDK please refer to the `DPDK IOVA Mode Detection`__. > > -__ > https://doc.dpdk.org/guides-23.11/prog_guide/env_abstraction_layer.html#iova-mode-detection > +__ > https://doc.dpdk.org/guides-24.11/prog_guide/env_abstraction_layer.html#iova-mode-detection > > To configure OVS DPDK to use physical addressing for IOVA:: > > @@ -354,7 +354,7 @@ Representors are multi devices created on top of one PF. > > For more information, refer to the `DPDK documentation`__. > > -__ > https://doc.dpdk.org/guides-23.11/prog_guide/switch_representation.html#port-representors > +__ > https://doc.dpdk.org/guides-24.11/prog_guide/switch_representation.html#port-representors > > Prior to port representors there was a one-to-one relationship between the PF > and the eth device. With port representors the relationship becomes one PF to > @@ -488,7 +488,7 @@ in the ``options`` column of the ``Interface`` table. > kernel netdevice, and be inherited from it when Open vSwitch is restarted, > even if the options described in this section are unset from Open vSwitch. > > -.. _bifurcated drivers: > https://doc.dpdk.org/guides-23.11/linux_gsg/linux_drivers.html#bifurcated-driver > +.. _bifurcated drivers: > https://doc.dpdk.org/guides-24.11/linux_gsg/linux_drivers.html#bifurcated-driver > > - Configure the VF MAC address:: > > diff --git a/Documentation/topics/dpdk/vdev.rst > b/Documentation/topics/dpdk/vdev.rst > index f1f59af5d9..9effe6bd07 100644 > --- a/Documentation/topics/dpdk/vdev.rst > +++ b/Documentation/topics/dpdk/vdev.rst > @@ -63,4 +63,4 @@ run:: > More information on the different types of virtual DPDK PMDs can be found in > the `DPDK documentation`__. > > -__ https://doc.dpdk.org/guides-23.11/nics/overview.html > +__ https://doc.dpdk.org/guides-24.11/nics/overview.html > diff --git a/Documentation/topics/dpdk/vhost-user.rst > b/Documentation/topics/dpdk/vhost-user.rst > index 7bba08ac21..3c02738cfc 100644 > --- a/Documentation/topics/dpdk/vhost-user.rst > +++ b/Documentation/topics/dpdk/vhost-user.rst > @@ -541,4 +541,4 @@ shown with:: > > Further information can be found in the > `DPDK documentation > -<https://doc.dpdk.org/guides-23.11/prog_guide/vhost_lib.html>`__ > +<https://doc.dpdk.org/guides-24.11/prog_guide/vhost_lib.html>`__ > diff --git a/Documentation/topics/testing.rst > b/Documentation/topics/testing.rst > index dcf10a4db2..b97bf32a9a 100644 > --- a/Documentation/topics/testing.rst > +++ b/Documentation/topics/testing.rst > @@ -358,7 +358,7 @@ with a mlx5 device:: > All tests are skipped if no hugepages are configured. User must look into > the DPDK > manual to figure out how to `Configure hugepages`_. > > -.. _Configure hugepages: > https://doc.dpdk.org/guides-23.11/linux_gsg/sys_reqs.html > +.. _Configure hugepages: > https://doc.dpdk.org/guides-24.11/linux_gsg/sys_reqs.html > > All the features documented under `Unit Tests`_ are available for the DPDK > testsuite. > diff --git a/Documentation/topics/userspace-tso.rst > b/Documentation/topics/userspace-tso.rst > index a21bb2b5de..ae08496bdd 100644 > --- a/Documentation/topics/userspace-tso.rst > +++ b/Documentation/topics/userspace-tso.rst > @@ -46,7 +46,7 @@ datasheet for compatibility. Secondly, the NIC must have an > associated DPDK > Poll Mode Driver (PMD) which supports `TSO`. For a list of features per PMD, > refer to the `DPDK documentation`__. > > -__ https://doc.dpdk.org/guides-23.11/nics/overview.html > +__ https://doc.dpdk.org/guides-24.11/nics/overview.html > > Enabling TSO > ~~~~~~~~~~~~ > diff --git a/NEWS b/NEWS > index 28ccb18479..83f0513797 100644 > --- a/NEWS > +++ b/NEWS > @@ -41,7 +41,7 @@ Post-v3.4.0 > formats. > * Dropped support for Python < 3.7. > - DPDK: > - * OVS validated with DPDK 23.11.2. > + * Add support for DPDK 24.11.1. > * Add hardware offload support for matching ICMPv6 protocol > (experimental). > - Tunnels: > diff --git a/debian/control.in b/debian/control.in > index 6737672d1a..47b1f8cdd6 100644 > --- a/debian/control.in > +++ b/debian/control.in > @@ -21,7 +21,7 @@ Build-Depends: > iproute2, > libcap-ng-dev, > libdbus-1-dev [amd64 i386 ppc64el arm64], > -# DPDK_NETDEV libdpdk-dev (>= 23.11) [amd64 i386 ppc64el arm64], > +# DPDK_NETDEV libdpdk-dev (>= 24.11) [amd64 i386 ppc64el arm64], > libnuma-dev [amd64 i386 ppc64el arm64], > libpcap-dev [amd64 i386 ppc64el arm64], > libssl-dev, > diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c > index a86d7bd192..cda0e8d13f 100644 > --- a/lib/netdev-offload-dpdk.c > +++ b/lib/netdev-offload-dpdk.c > @@ -547,15 +547,15 @@ dump_flow_pattern(struct ds *s, > if (!ipv6_mask) { > ipv6_mask = &rte_flow_item_ipv6_mask; > } > - memcpy(&addr, ipv6_spec->hdr.src_addr, sizeof addr); > - memcpy(&mask, ipv6_mask->hdr.src_addr, sizeof mask); > + memcpy(&addr, &ipv6_spec->hdr.src_addr, sizeof addr); > + memcpy(&mask, &ipv6_mask->hdr.src_addr, sizeof mask); > ipv6_string_mapped(addr_str, &addr); > ipv6_string_mapped(mask_str, &mask); > DUMP_PATTERN_ITEM(mask, false, "src", "%s", > addr_str, mask_str, ""); > > - memcpy(&addr, ipv6_spec->hdr.dst_addr, sizeof addr); > - memcpy(&mask, ipv6_mask->hdr.dst_addr, sizeof mask); > + memcpy(&addr, &ipv6_spec->hdr.dst_addr, sizeof addr); > + memcpy(&mask, &ipv6_mask->hdr.dst_addr, sizeof mask); > ipv6_string_mapped(addr_str, &addr); > ipv6_string_mapped(mask_str, &mask); > DUMP_PATTERN_ITEM(mask, false, "dst", "%s", > @@ -712,10 +712,10 @@ dump_vxlan_encap(struct ds *s, const struct > rte_flow_item *items) > struct in6_addr addr; > > ds_put_cstr(s, "ip-src "); > - memcpy(&addr, ipv6->hdr.src_addr, sizeof addr); > + memcpy(&addr, &ipv6->hdr.src_addr, sizeof addr); > ipv6_format_mapped(&addr, s); > ds_put_cstr(s, " ip-dst "); > - memcpy(&addr, ipv6->hdr.dst_addr, sizeof addr); > + memcpy(&addr, &ipv6->hdr.dst_addr, sizeof addr); > ipv6_format_mapped(&addr, s); > ds_put_cstr(s, " "); > } > @@ -851,7 +851,7 @@ dump_flow_action(struct ds *s, struct ds *s_extra, > struct in6_addr addr; > > ds_put_cstr(s, "ipv6_addr "); > - memcpy(&addr, set_ipv6->ipv6_addr, sizeof addr); > + memcpy(&addr, &set_ipv6->ipv6_addr, sizeof addr); > ipv6_format_addr(&addr, s); > ds_put_cstr(s, " "); > } > @@ -1227,18 +1227,18 @@ parse_tnl_ip_match(struct flow_patterns *patterns, > spec->hdr.hop_limits = match->flow.tunnel.ip_ttl; > spec->hdr.vtc_flow = htonl((uint32_t) match->flow.tunnel.ip_tos << > RTE_IPV6_HDR_TC_SHIFT); > - memcpy(spec->hdr.src_addr, &match->flow.tunnel.ipv6_src, > + memcpy(&spec->hdr.src_addr, &match->flow.tunnel.ipv6_src, > sizeof spec->hdr.src_addr); > - memcpy(spec->hdr.dst_addr, &match->flow.tunnel.ipv6_dst, > + memcpy(&spec->hdr.dst_addr, &match->flow.tunnel.ipv6_dst, > sizeof spec->hdr.dst_addr); > > mask->hdr.proto = UINT8_MAX; > mask->hdr.hop_limits = match->wc.masks.tunnel.ip_ttl; > mask->hdr.vtc_flow = htonl((uint32_t) match->wc.masks.tunnel.ip_tos > << > RTE_IPV6_HDR_TC_SHIFT); > - memcpy(mask->hdr.src_addr, &match->wc.masks.tunnel.ipv6_src, > + memcpy(&mask->hdr.src_addr, &match->wc.masks.tunnel.ipv6_src, > sizeof mask->hdr.src_addr); > - memcpy(mask->hdr.dst_addr, &match->wc.masks.tunnel.ipv6_dst, > + memcpy(&mask->hdr.dst_addr, &match->wc.masks.tunnel.ipv6_dst, > sizeof mask->hdr.dst_addr); > > consumed_masks->tunnel.ip_tos = 0; > @@ -1549,9 +1549,9 @@ parse_flow_match(struct netdev *netdev, > spec->hdr.hop_limits = match->flow.nw_ttl; > spec->hdr.vtc_flow = > htonl((uint32_t) match->flow.nw_tos << RTE_IPV6_HDR_TC_SHIFT); > - memcpy(spec->hdr.src_addr, &match->flow.ipv6_src, > + memcpy(&spec->hdr.src_addr, &match->flow.ipv6_src, > sizeof spec->hdr.src_addr); > - memcpy(spec->hdr.dst_addr, &match->flow.ipv6_dst, > + memcpy(&spec->hdr.dst_addr, &match->flow.ipv6_dst, > sizeof spec->hdr.dst_addr); > if ((match->wc.masks.nw_frag & FLOW_NW_FRAG_ANY) > && (match->flow.nw_frag & FLOW_NW_FRAG_ANY)) { > @@ -1562,9 +1562,9 @@ parse_flow_match(struct netdev *netdev, > mask->hdr.hop_limits = match->wc.masks.nw_ttl; > mask->hdr.vtc_flow = > htonl((uint32_t) match->wc.masks.nw_tos << > RTE_IPV6_HDR_TC_SHIFT); > - memcpy(mask->hdr.src_addr, &match->wc.masks.ipv6_src, > + memcpy(&mask->hdr.src_addr, &match->wc.masks.ipv6_src, > sizeof mask->hdr.src_addr); > - memcpy(mask->hdr.dst_addr, &match->wc.masks.ipv6_dst, > + memcpy(&mask->hdr.dst_addr, &match->wc.masks.ipv6_dst, > sizeof mask->hdr.dst_addr); > > consumed_masks->nw_ttl = 0; > diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in > index 2ee5d3e72f..715cbf7aa7 100644 > --- a/rhel/openvswitch-fedora.spec.in > +++ b/rhel/openvswitch-fedora.spec.in > @@ -73,7 +73,7 @@ BuildRequires: libcap-ng libcap-ng-devel > %endif > %if %{with dpdk} > BuildRequires: libpcap-devel numactl-devel > -BuildRequires: dpdk-devel >= 23.11 > +BuildRequires: dpdk-devel >= 24.11 > Provides: %{name}-dpdk = %{version}-%{release} > %endif > %if %{with afxdp} _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
