net/sfc: factor out function to get IPv4 packet ID for TSO
[dpdk.git] / drivers / net / sfc / sfc_tso.h
index cd15178..8ecefdf 100644 (file)
@@ -26,6 +26,18 @@ extern "C" {
  */
 #define SFC_EF10_TSO_HDR_DESCS_NUM     1
 
+static inline uint16_t
+sfc_tso_ip4_get_ipid(const uint8_t *pkt_hdrp, size_t ip_hdr_off)
+{
+       const struct ipv4_hdr *ip_hdrp;
+       uint16_t ipid;
+
+       ip_hdrp = (const struct ipv4_hdr *)(pkt_hdrp + ip_hdr_off);
+       rte_memcpy(&ipid, &ip_hdrp->packet_id, sizeof(ipid));
+
+       return rte_be_to_cpu_16(ipid);
+}
+
 unsigned int sfc_tso_prepare_header(uint8_t *tsoh, size_t header_len,
                                    struct rte_mbuf **in_seg, size_t *in_off);