git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ixgbe: offload VxLAN and NVGRE Rx checksum on X550
[dpdk.git]
/
drivers
/
net
/
ixgbe
/
ixgbe_rxtx.c
diff --git
a/drivers/net/ixgbe/ixgbe_rxtx.c
b/drivers/net/ixgbe/ixgbe_rxtx.c
index
54278ce
..
8d5576b
100644
(file)
--- a/
drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/
drivers/net/ixgbe/ixgbe_rxtx.c
@@
-1003,6
+1003,8
@@
rx_desc_status_to_pkt_flags(uint32_t rx_status)
static inline uint64_t
rx_desc_error_to_pkt_flags(uint32_t rx_status)
{
static inline uint64_t
rx_desc_error_to_pkt_flags(uint32_t rx_status)
{
+ uint64_t pkt_flags;
+
/*
* Bit 31: IPE, IPv4 checksum error
* Bit 30: L4I, L4I integrity error
/*
* Bit 31: IPE, IPv4 checksum error
* Bit 30: L4I, L4I integrity error
@@
-1011,8
+1013,15
@@
rx_desc_error_to_pkt_flags(uint32_t rx_status)
0, PKT_RX_L4_CKSUM_BAD, PKT_RX_IP_CKSUM_BAD,
PKT_RX_IP_CKSUM_BAD | PKT_RX_L4_CKSUM_BAD
};
0, PKT_RX_L4_CKSUM_BAD, PKT_RX_IP_CKSUM_BAD,
PKT_RX_IP_CKSUM_BAD | PKT_RX_L4_CKSUM_BAD
};
-
return
error_to_pkt_flags_map[(rx_status >>
+
pkt_flags =
error_to_pkt_flags_map[(rx_status >>
IXGBE_RXDADV_ERR_CKSUM_BIT) & IXGBE_RXDADV_ERR_CKSUM_MSK];
IXGBE_RXDADV_ERR_CKSUM_BIT) & IXGBE_RXDADV_ERR_CKSUM_MSK];
+
+ if ((rx_status & IXGBE_RXD_STAT_OUTERIPCS) &&
+ (rx_status & IXGBE_RXDADV_ERR_OUTERIPER)) {
+ pkt_flags |= PKT_RX_EIP_CKSUM_BAD;
+ }
+
+ return pkt_flags;
}
/*
}
/*