From: Didier Pallard Date: Mon, 22 Jun 2015 14:21:18 +0000 (+0200) Subject: ixgbe: fix TSO in IPv6 X-Git-Tag: spdx-start~9030 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=4feec2f44ba9ba19c4a046311b3ee4757c1282e4;p=dpdk.git ixgbe: fix TSO in IPv6 When TSO is used with IPv6, generated frames are incorrect. L4 frame is OK, but length field of IPv6 header was not populated correctly. IXGBE_ADVTXD_TUCMD_IPV6 flag is set for better readability, even if it does nothing. Signed-off-by: Didier Pallard Signed-off-by: David Marchand Acked-by: Konstantin Ananyev Acked-by: Helin Zhang --- diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c index 7cc26efa17..3ace8a879a 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx.c +++ b/drivers/net/ixgbe/ixgbe_rxtx.c @@ -375,10 +375,15 @@ ixgbe_set_xmit_ctx(struct ixgbe_tx_queue *txq, /* check if TCP segmentation required for this packet */ if (ol_flags & PKT_TX_TCP_SEG) { - /* implies IP cksum and TCP cksum */ - type_tucmd_mlhl = IXGBE_ADVTXD_TUCMD_IPV4 | - IXGBE_ADVTXD_TUCMD_L4T_TCP | - IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT; + /* implies IP cksum in IPv4 */ + if (ol_flags & PKT_TX_IP_CKSUM) + type_tucmd_mlhl = IXGBE_ADVTXD_TUCMD_IPV4 | + IXGBE_ADVTXD_TUCMD_L4T_TCP | + IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT; + else + type_tucmd_mlhl = IXGBE_ADVTXD_TUCMD_IPV6 | + IXGBE_ADVTXD_TUCMD_L4T_TCP | + IXGBE_ADVTXD_DTYP_CTXT | IXGBE_ADVTXD_DCMD_DEXT; tx_offload_mask.l2_len |= ~0; tx_offload_mask.l3_len |= ~0;