| Message ID | 20251112170420.3155127-4-david.marchand@redhat.com |
|---|---|
| State | Changes Requested |
| Headers | show |
| Series | Outer UDP checksum optimisations. | expand |
| Context | Check | Description |
|---|---|---|
| ovsrobot/apply-robot | success | apply and check: success |
| ovsrobot/github-robot-_Build_and_Test | success | github build: passed |
On Wed, Nov 12, 2025 at 12:04 PM David Marchand <david.marchand@redhat.com> wrote: > The header length was not taking into account the outer headers. > > Fixes: 084c8087292c ("userspace: Support VXLAN and GENEVE TSO.") > Signed-off-by: David Marchand <david.marchand@redhat.com> > --- > > This looks correct. Acked-by: Mike Pattrick <mkp@redhat.com>
On 12/11/2025 17:04, David Marchand via dev wrote: > The header length was not taking into account the outer headers. > > Fixes: 084c8087292c ("userspace: Support VXLAN and GENEVE TSO.") > Signed-off-by: David Marchand <david.marchand@redhat.com> > --- > lib/netdev-dpdk.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c > index 0cb9fae9f0..f6ae235af3 100644 > --- a/lib/netdev-dpdk.c > +++ b/lib/netdev-dpdk.c LGTM Acked-by: Kevin Traynor <ktraynor@redhat.com>
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 0cb9fae9f0..f6ae235af3 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -2748,18 +2748,18 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, struct rte_mbuf *mbuf) int hdr_len; mbuf->l4_len = TCP_OFFSET(th->tcp_ctl) * 4; + + hdr_len = mbuf->l2_len + mbuf->l3_len + mbuf->l4_len; + link_tso_segsz = dev->mtu - mbuf->l3_len - mbuf->l4_len; if (dp_packet_tunnel(pkt)) { - link_tso_segsz = dev->mtu - mbuf->l2_len - mbuf->l3_len - - mbuf->l4_len - mbuf->outer_l3_len; - } else { - link_tso_segsz = dev->mtu - mbuf->l3_len - mbuf->l4_len; + hdr_len += mbuf->outer_l2_len + mbuf->outer_l3_len; + link_tso_segsz -= mbuf->outer_l3_len + mbuf->l2_len; } if (mbuf->tso_segsz > link_tso_segsz) { mbuf->tso_segsz = link_tso_segsz; } - hdr_len = mbuf->l2_len + mbuf->l3_len + mbuf->l4_len; if (OVS_UNLIKELY((hdr_len + mbuf->tso_segsz) > dev->max_packet_len)) { VLOG_WARN_RL(&rl, "%s: Oversized TSO packet. hdr: %"PRIu32", " "gso: %"PRIu32", max len: %"PRIu32"",
The header length was not taking into account the outer headers. Fixes: 084c8087292c ("userspace: Support VXLAN and GENEVE TSO.") Signed-off-by: David Marchand <david.marchand@redhat.com> --- lib/netdev-dpdk.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)