[dpdk-dev,v5,1/3] mbuf:redefine three TX ol_flags
Commit Message
The reason of redefining the PKT_TX_IPV4 and the PKT_TX_IPV6 is listed below,
It will avoid to send a packet with a bad info:
- we receive a Ether/IP6/IP4/L4/data packet
- the driver sets PKT_RX_IPV6_HDR
- the stack decapsulates IP6
- the stack sends the packet, it has the PKT_TX_IPV6 flag but it's an IPv4 packet.
Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
---
lib/librte_mbuf/rte_mbuf.h | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
Comments
Hi Jijiang,
On 12/02/2014 04:06 PM, Jijiang Liu wrote:
> The reason of redefining the PKT_TX_IPV4 and the PKT_TX_IPV6 is listed below,
> It will avoid to send a packet with a bad info:
> - we receive a Ether/IP6/IP4/L4/data packet
> - the driver sets PKT_RX_IPV6_HDR
> - the stack decapsulates IP6
> - the stack sends the packet, it has the PKT_TX_IPV6 flag but it's an IPv4 packet.
>
> Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
> ---
> lib/librte_mbuf/rte_mbuf.h | 10 +++++-----
> 1 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
> index 2e5fce5..cbadf8e 100644
> --- a/lib/librte_mbuf/rte_mbuf.h
> +++ b/lib/librte_mbuf/rte_mbuf.h
> @@ -141,13 +141,13 @@ extern "C" {
> #define PKT_TX_IP_CKSUM (1ULL << 54) /**< IP cksum of TX pkt. computed by NIC. */
> #define PKT_TX_IPV4_CSUM PKT_TX_IP_CKSUM /**< Alias of PKT_TX_IP_CKSUM. */
>
> -/** Tell the NIC it's an IPv4 packet. Required for L4 checksum offload or TSO. */
> -#define PKT_TX_IPV4 PKT_RX_IPV4_HDR
> +/** Packet is IPv4 without requiring IP checksum offload. */
> +#define PKT_TX_IPV4 (1ULL << 55)
>
> -/** Tell the NIC it's an IPv6 packet. Required for L4 checksum offload or TSO. */
> -#define PKT_TX_IPV6 PKT_RX_IPV6_HDR
> +/** Tell the NIC it's an IPv6 packet.*/
> +#define PKT_TX_IPV6 (1ULL << 56)
>
> -#define PKT_TX_VLAN_PKT (1ULL << 55) /**< TX packet is a 802.1q VLAN packet. */
> +#define PKT_TX_VLAN_PKT (1ULL << 57) /**< TX packet is a 802.1q VLAN packet. */
>
> /* Use final bit of flags to indicate a control mbuf */
> #define CTRL_MBUF_FLAG (1ULL << 63) /**< Mbuf contains control data */
>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
@@ -141,13 +141,13 @@ extern "C" {
#define PKT_TX_IP_CKSUM (1ULL << 54) /**< IP cksum of TX pkt. computed by NIC. */
#define PKT_TX_IPV4_CSUM PKT_TX_IP_CKSUM /**< Alias of PKT_TX_IP_CKSUM. */
-/** Tell the NIC it's an IPv4 packet. Required for L4 checksum offload or TSO. */
-#define PKT_TX_IPV4 PKT_RX_IPV4_HDR
+/** Packet is IPv4 without requiring IP checksum offload. */
+#define PKT_TX_IPV4 (1ULL << 55)
-/** Tell the NIC it's an IPv6 packet. Required for L4 checksum offload or TSO. */
-#define PKT_TX_IPV6 PKT_RX_IPV6_HDR
+/** Tell the NIC it's an IPv6 packet.*/
+#define PKT_TX_IPV6 (1ULL << 56)
-#define PKT_TX_VLAN_PKT (1ULL << 55) /**< TX packet is a 802.1q VLAN packet. */
+#define PKT_TX_VLAN_PKT (1ULL << 57) /**< TX packet is a 802.1q VLAN packet. */
/* Use final bit of flags to indicate a control mbuf */
#define CTRL_MBUF_FLAG (1ULL << 63) /**< Mbuf contains control data */