aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/fou.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/fou.h')
-rw-r--r--include/net/fou.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/include/net/fou.h b/include/net/fou.h
index cf4ce8874f92..25b26ffcf1df 100644
--- a/include/net/fou.h
+++ b/include/net/fou.h
@@ -20,7 +20,19 @@ static size_t fou_encap_hlen(struct ip_tunnel_encap *e)
static size_t gue_encap_hlen(struct ip_tunnel_encap *e)
{
- return sizeof(struct udphdr) + sizeof(struct guehdr);
+ size_t len;
+ bool need_priv = false;
+
+ len = sizeof(struct udphdr) + sizeof(struct guehdr);
+
+ if (e->flags & TUNNEL_ENCAP_FLAG_REMCSUM) {
+ len += GUE_PLEN_REMCSUM;
+ need_priv = true;
+ }
+
+ len += need_priv ? GUE_LEN_PRIV : 0;
+
+ return len;
}
#endif