diff mbox series

[ovs-dev,v5,10/12] dp-packet: Remove direct access to DPDK offloads.

Message ID 20250603094637.1250238-11-david.marchand@redhat.com
State Superseded
Delegated to: Ilya Maximets
Headers show
Series OVS checksum offloads revamp. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/github-robot-_Build_and_Test success github build: passed

Commit Message

David Marchand June 3, 2025, 9:46 a.m. UTC
Now that every use of ol_flags have been reworked, we can remove helper
and additional field in dp_packet when not building with DPDK.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 lib/dp-packet-gso.c |  5 -----
 lib/dp-packet.c     |  3 ---
 lib/dp-packet.h     | 22 ----------------------
 lib/netdev-linux.c  |  8 ++------
 4 files changed, 2 insertions(+), 36 deletions(-)
diff mbox series

Patch

diff --git a/lib/dp-packet-gso.c b/lib/dp-packet-gso.c
index a55238d189..58b4401f60 100644
--- a/lib/dp-packet-gso.c
+++ b/lib/dp-packet-gso.c
@@ -56,11 +56,6 @@  dp_packet_gso_seg_new(const struct dp_packet *p, size_t hdr_len,
     seg->has_mark = p->has_mark;
     *dp_packet_flow_mark_ptr(seg) = *dp_packet_flow_mark_ptr(p);
 
-    /* The segment should inherit all the offloading flags from the
-     * original packet, except for the TCP segmentation, external
-     * buffer and indirect buffer flags. */
-    *dp_packet_ol_flags_ptr(seg) = *dp_packet_ol_flags_ptr(p)
-        & DP_PACKET_OL_SUPPORTED_MASK;
     seg->offloads = p->offloads;
 
     return seg;
diff --git a/lib/dp-packet.c b/lib/dp-packet.c
index 40246ca420..b34bcf26f3 100644
--- a/lib/dp-packet.c
+++ b/lib/dp-packet.c
@@ -198,9 +198,6 @@  dp_packet_clone_with_headroom(const struct dp_packet *buffer, size_t headroom)
             sizeof(struct dp_packet) -
             offsetof(struct dp_packet, l2_pad_size));
 
-    *dp_packet_ol_flags_ptr(new_buffer) = *dp_packet_ol_flags_ptr(buffer);
-    *dp_packet_ol_flags_ptr(new_buffer) &= DP_PACKET_OL_SUPPORTED_MASK;
-
     dp_packet_set_tso_segsz(new_buffer, dp_packet_get_tso_segsz(buffer));
 
     if (dp_packet_rss_valid(buffer)) {
diff --git a/lib/dp-packet.h b/lib/dp-packet.h
index 768b31b066..285d0e43f6 100644
--- a/lib/dp-packet.h
+++ b/lib/dp-packet.h
@@ -49,14 +49,6 @@  enum OVS_PACKED_ENUM dp_packet_source {
 
 #define DP_PACKET_CONTEXT_SIZE 64
 
-#ifdef DPDK_NETDEV
-#define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME = DPDK_DEF
-#else
-#define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME = GENERIC_DEF
-#endif
-
-#define DP_PACKET_OL_SUPPORTED_MASK 0
-
 /* Bit masks for the 'offloads' member of the 'dp_packet' structure. */
 enum OVS_PACKED_ENUM dp_packet_offload_mask {
     /* Bad IP checksum in the packet. */
@@ -133,7 +125,6 @@  struct dp_packet {
     uint16_t allocated_;        /* Number of bytes allocated. */
     uint16_t data_ofs;          /* First byte actually in use. */
     uint32_t size_;             /* Number of bytes in use. */
-    uint32_t ol_flags;          /* Offloading flags. */
     uint32_t rss_hash;          /* Packet hash. */
     uint32_t flow_mark;         /* Packet flow mark. */
     uint16_t tso_segsz;         /* TCP segment size. */
@@ -623,12 +614,6 @@  dp_packet_get_nd_payload(const struct dp_packet *b)
 }
 
 #ifdef DPDK_NETDEV
-static inline uint64_t *
-dp_packet_ol_flags_ptr(const struct dp_packet *b)
-{
-    return CONST_CAST(uint64_t *, &b->mbuf.ol_flags);
-}
-
 static inline uint32_t *
 dp_packet_rss_ptr(const struct dp_packet *b)
 {
@@ -642,12 +627,6 @@  dp_packet_flow_mark_ptr(const struct dp_packet *b)
 }
 
 #else
-static inline uint32_t *
-dp_packet_ol_flags_ptr(const struct dp_packet *b)
-{
-    return CONST_CAST(uint32_t *, &b->ol_flags);
-}
-
 static inline uint32_t *
 dp_packet_rss_ptr(const struct dp_packet *b)
 {
@@ -1043,7 +1022,6 @@  dp_packet_rss_valid(const struct dp_packet *p)
 static inline void
 dp_packet_reset_offload(struct dp_packet *p)
 {
-    *dp_packet_ol_flags_ptr(p) &= ~DP_PACKET_OL_SUPPORTED_MASK;
     p->has_hash = p->has_mark = false;
     p->offloads = 0;
 }
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 5416f29170..2d5616261c 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
@@ -7223,9 +7223,7 @@  netdev_linux_prepend_vnet_hdr(struct dp_packet *b, int mtu)
             vnet->gso_type = VIRTIO_NET_HDR_GSO_TCPV6;
         } else {
             VLOG_ERR_RL(&rl, "Unknown gso_type for TSO packet. "
-                        "Flags: %#"PRIx64", Offloads: %"PRIu32,
-                        (uint64_t) *dp_packet_ol_flags_ptr(b),
-                        b->offloads);
+                        "Offloads: %"PRIu32, b->offloads);
             return EINVAL;
         }
     } else {
@@ -7324,9 +7322,7 @@  netdev_linux_prepend_vnet_hdr(struct dp_packet *b, int mtu)
             /* This should only happen when a new L4 proto
              * is not covered in above checks. */
             VLOG_WARN_RL(&rl, "Unsupported L4 checksum offload. "
-                         "Flags: %"PRIu64", Offloads: %"PRIu32,
-                         (uint64_t)*dp_packet_ol_flags_ptr(b),
-                         b->offloads);
+                         "Offloads: %"PRIu32, b->offloads);
             vnet->csum_start = vnet->csum_offset = (OVS_FORCE __virtio16) 0;
             vnet->flags = 0;
         }