gre: Call gso_make_checksum
Call gso_make_checksum. This should have the benefit of using a checksum that may have been previously computed for the packet. This also adds NETIF_F_GSO_GRE_CSUM to differentiate devices that offload GRE GSO with and without the GRE checksum offloaed. Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
0f4f4ffa7b
commit
4749c09c37
@@ -42,6 +42,7 @@ enum {
|
||||
NETIF_F_TSO6_BIT, /* ... TCPv6 segmentation */
|
||||
NETIF_F_FSO_BIT, /* ... FCoE segmentation */
|
||||
NETIF_F_GSO_GRE_BIT, /* ... GRE with TSO */
|
||||
NETIF_F_GSO_GRE_CSUM_BIT, /* ... GRE with csum with TSO */
|
||||
NETIF_F_GSO_IPIP_BIT, /* ... IPIP tunnel with TSO */
|
||||
NETIF_F_GSO_SIT_BIT, /* ... SIT tunnel with TSO */
|
||||
NETIF_F_GSO_UDP_TUNNEL_BIT, /* ... UDP TUNNEL with TSO */
|
||||
@@ -112,6 +113,7 @@ enum {
|
||||
#define NETIF_F_RXFCS __NETIF_F(RXFCS)
|
||||
#define NETIF_F_RXALL __NETIF_F(RXALL)
|
||||
#define NETIF_F_GSO_GRE __NETIF_F(GSO_GRE)
|
||||
#define NETIF_F_GSO_GRE_CSUM __NETIF_F(GSO_GRE_CSUM)
|
||||
#define NETIF_F_GSO_IPIP __NETIF_F(GSO_IPIP)
|
||||
#define NETIF_F_GSO_SIT __NETIF_F(GSO_SIT)
|
||||
#define NETIF_F_GSO_UDP_TUNNEL __NETIF_F(GSO_UDP_TUNNEL)
|
||||
|
||||
@@ -347,6 +347,8 @@ enum {
|
||||
SKB_GSO_MPLS = 1 << 10,
|
||||
|
||||
SKB_GSO_UDP_TUNNEL_CSUM = 1 << 11,
|
||||
|
||||
SKB_GSO_GRE_CSUM = 1 << 12,
|
||||
};
|
||||
|
||||
#if BITS_PER_LONG > 32
|
||||
|
||||
+3
-2
@@ -37,9 +37,10 @@ void gre_build_header(struct sk_buff *skb, const struct tnl_ptk_info *tpi,
|
||||
int hdr_len);
|
||||
|
||||
static inline struct sk_buff *gre_handle_offloads(struct sk_buff *skb,
|
||||
bool gre_csum)
|
||||
bool csum)
|
||||
{
|
||||
return iptunnel_handle_offloads(skb, gre_csum, SKB_GSO_GRE);
|
||||
return iptunnel_handle_offloads(skb, csum,
|
||||
csum ? SKB_GSO_GRE_CSUM : SKB_GSO_GRE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user