summaryrefslogtreecommitdiffstats
path: root/lib/libtle_udp/misc.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libtle_udp/misc.h')
-rw-r--r--lib/libtle_udp/misc.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/libtle_udp/misc.h b/lib/libtle_udp/misc.h
index 3874647..359f400 100644
--- a/lib/libtle_udp/misc.h
+++ b/lib/libtle_udp/misc.h
@@ -45,6 +45,21 @@ _mbuf_tx_offload(uint64_t il2, uint64_t il3, uint64_t il4, uint64_t tso,
}
/*
+ * Given the value of mbuf's tx_offload, calculate L4 payload offset.
+ */
+static inline uint32_t
+_tx_offload_l4_offset(uint64_t ofl)
+{
+ uint32_t l2, l3, l4;
+
+ l2 = ofl & 0x7f;
+ l3 = ofl >> 7 & 0x1ff;
+ l4 = ofl >> 16 & UINT8_MAX;
+
+ return l2 + l3 + l4;
+}
+
+/*
* Routines to calculate L3/L4 checksums in SW.
* Pretty similar to ones from DPDK librte_net/rte_ip.h,
* but provide better performance (at least for tested configurations),