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 <didier.pallard@6wind.com> Signed-off-by: David Marchand <david.marchand@6wind.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Helin Zhang <helin.zhang@intel.com>
This commit is contained in:
parent
1c2bbcdfd7
commit
4feec2f44b
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user