diff options
Diffstat (limited to 'net/ipv4/fou.c')
-rw-r--r-- | net/ipv4/fou.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/net/ipv4/fou.c b/net/ipv4/fou.c index a0586b4a197d..a39068b4a4d9 100644 --- a/net/ipv4/fou.c +++ b/net/ipv4/fou.c | |||
@@ -195,6 +195,17 @@ static struct sk_buff **fou_gro_receive(struct sk_buff **head, | |||
195 | u8 proto = NAPI_GRO_CB(skb)->proto; | 195 | u8 proto = NAPI_GRO_CB(skb)->proto; |
196 | const struct net_offload **offloads; | 196 | const struct net_offload **offloads; |
197 | 197 | ||
198 | /* We can clear the encap_mark for FOU as we are essentially doing | ||
199 | * one of two possible things. We are either adding an L4 tunnel | ||
200 | * header to the outer L3 tunnel header, or we are are simply | ||
201 | * treating the GRE tunnel header as though it is a UDP protocol | ||
202 | * specific header such as VXLAN or GENEVE. | ||
203 | */ | ||
204 | NAPI_GRO_CB(skb)->encap_mark = 0; | ||
205 | |||
206 | /* Flag this frame as already having an outer encap header */ | ||
207 | NAPI_GRO_CB(skb)->is_fou = 1; | ||
208 | |||
198 | rcu_read_lock(); | 209 | rcu_read_lock(); |
199 | offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; | 210 | offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; |
200 | ops = rcu_dereference(offloads[proto]); | 211 | ops = rcu_dereference(offloads[proto]); |
@@ -352,6 +363,17 @@ static struct sk_buff **gue_gro_receive(struct sk_buff **head, | |||
352 | } | 363 | } |
353 | } | 364 | } |
354 | 365 | ||
366 | /* We can clear the encap_mark for GUE as we are essentially doing | ||
367 | * one of two possible things. We are either adding an L4 tunnel | ||
368 | * header to the outer L3 tunnel header, or we are are simply | ||
369 | * treating the GRE tunnel header as though it is a UDP protocol | ||
370 | * specific header such as VXLAN or GENEVE. | ||
371 | */ | ||
372 | NAPI_GRO_CB(skb)->encap_mark = 0; | ||
373 | |||
374 | /* Flag this frame as already having an outer encap header */ | ||
375 | NAPI_GRO_CB(skb)->is_fou = 1; | ||
376 | |||
355 | rcu_read_lock(); | 377 | rcu_read_lock(); |
356 | offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; | 378 | offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; |
357 | ops = rcu_dereference(offloads[guehdr->proto_ctype]); | 379 | ops = rcu_dereference(offloads[guehdr->proto_ctype]); |