[PATCH v8 07/18] enic: replace bit mask based packet type with unified packet type
From: Helin Zhang <hidden>
Date: 2015-06-23 01:51:09
Subsystem:
networking drivers, the rest · Maintainers:
Andrew Lunn, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds
To unify packet types among all PMDs, bit masks of packet type for 'ol_flags' are replaced by unified packet type. To avoid breaking ABI compatibility, all the changes would be enabled by RTE_NEXT_ABI, which is disabled by default. Signed-off-by: Helin Zhang <redacted> --- drivers/net/enic/enic_main.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) v2 changes: * Used redefined packet types and enlarged packet_type field in mbuf. v5 changes: * Re-worded the commit logs. v6 changes: * Disabled the code changes for unified packet type by default, to avoid breaking ABI compatibility. v7 changes: * Renamed RTE_UNIFIED_PKT_TYPE to RTE_NEXT_ABI.
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 15313c2..f47e96c 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c@@ -423,7 +423,11 @@ static int enic_rq_indicate_buf(struct vnic_rq *rq, rx_pkt->pkt_len = bytes_written; if (ipv4) { +#ifdef RTE_NEXT_ABI + rx_pkt->packet_type = RTE_PTYPE_L3_IPV4; +#else rx_pkt->ol_flags |= PKT_RX_IPV4_HDR; +#endif if (!csum_not_calc) { if (unlikely(!ipv4_csum_ok)) rx_pkt->ol_flags |= PKT_RX_IP_CKSUM_BAD;
@@ -432,7 +436,11 @@ static int enic_rq_indicate_buf(struct vnic_rq *rq, rx_pkt->ol_flags |= PKT_RX_L4_CKSUM_BAD; } } else if (ipv6) +#ifdef RTE_NEXT_ABI + rx_pkt->packet_type = RTE_PTYPE_L3_IPV6; +#else rx_pkt->ol_flags |= PKT_RX_IPV6_HDR; +#endif } else { /* Header split */ if (sop && !eop) {
@@ -445,7 +453,11 @@ static int enic_rq_indicate_buf(struct vnic_rq *rq, *rx_pkt_bucket = rx_pkt; rx_pkt->pkt_len = bytes_written; if (ipv4) { +#ifdef RTE_NEXT_ABI + rx_pkt->packet_type = RTE_PTYPE_L3_IPV4; +#else rx_pkt->ol_flags |= PKT_RX_IPV4_HDR; +#endif if (!csum_not_calc) { if (unlikely(!ipv4_csum_ok)) rx_pkt->ol_flags |=
@@ -457,13 +469,22 @@ static int enic_rq_indicate_buf(struct vnic_rq *rq, PKT_RX_L4_CKSUM_BAD; } } else if (ipv6) +#ifdef RTE_NEXT_ABI + rx_pkt->packet_type = RTE_PTYPE_L3_IPV6; +#else rx_pkt->ol_flags |= PKT_RX_IPV6_HDR; +#endif } else { /* Payload */ hdr_rx_pkt = *rx_pkt_bucket; hdr_rx_pkt->pkt_len += bytes_written; if (ipv4) { +#ifdef RTE_NEXT_ABI + hdr_rx_pkt->packet_type = + RTE_PTYPE_L3_IPV4; +#else hdr_rx_pkt->ol_flags |= PKT_RX_IPV4_HDR; +#endif if (!csum_not_calc) { if (unlikely(!ipv4_csum_ok)) hdr_rx_pkt->ol_flags |=
@@ -475,7 +496,12 @@ static int enic_rq_indicate_buf(struct vnic_rq *rq, PKT_RX_L4_CKSUM_BAD; } } else if (ipv6) +#ifdef RTE_NEXT_ABI + hdr_rx_pkt->packet_type = + RTE_PTYPE_L3_IPV6; +#else hdr_rx_pkt->ol_flags |= PKT_RX_IPV6_HDR; +#endif } }
--
1.9.3