[ovs-dev,v4,1/2] dp-packet: Add 'dp_packet_l3_size()'.

Message ID 1549326187-82147-1-git-send-email-dlu998@gmail.com
State Changes Requested
Headers show
Series
  • [ovs-dev,v4,1/2] dp-packet: Add 'dp_packet_l3_size()'.
Related show

Commit Message

Darrell Ball Feb. 5, 2019, 12:23 a.m.
The new api will be used in a subsequent patch.

Signed-off-by: Darrell Ball <dlu998@gmail.com>
---

v4: Added function header comments to the new and existing APIs (Ben).
v2: Added patch to series.

 lib/dp-packet.h | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

Patch

diff --git a/lib/dp-packet.h b/lib/dp-packet.h
index 7b85dd9..c297a8f 100644
--- a/lib/dp-packet.h
+++ b/lib/dp-packet.h
@@ -352,10 +352,23 @@  dp_packet_set_l4(struct dp_packet *b, void *l4)
     b->l4_ofs = l4 ? (char *) l4 - (char *) dp_packet_data(b) : UINT16_MAX;
 }
 
+/* Returns the size of the packet from the beginning of the L3 header to the
+ * end of the L3 payload.  Hence L2 padding is not included. */
+static inline size_t
+dp_packet_l3_size(const struct dp_packet *b)
+{
+    return OVS_LIKELY(b->l3_ofs != UINT16_MAX)
+        ? (const char *)dp_packet_tail(b) - (const char *)dp_packet_l3(b)
+        - dp_packet_l2_pad_size(b)
+        : 0;
+}
+
+/* Returns the size of the packet from the beginning of the L4 header to the
+ * end of the L4 payload.  Hence L2 padding is not included. */
 static inline size_t
 dp_packet_l4_size(const struct dp_packet *b)
 {
-    return b->l4_ofs != UINT16_MAX
+    return OVS_LIKELY(b->l4_ofs != UINT16_MAX)
         ? (const char *)dp_packet_tail(b) - (const char *)dp_packet_l4(b)
         - dp_packet_l2_pad_size(b)
         : 0;