diff options
Diffstat (limited to 'include/net/fou.h')
-rw-r--r-- | include/net/fou.h | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/include/net/fou.h b/include/net/fou.h index 25b26ff..19b8a0c 100644 --- a/include/net/fou.h +++ b/include/net/fou.h @@ -8,31 +8,12 @@ #include <net/ip_tunnels.h> #include <net/udp.h> +size_t fou_encap_hlen(struct ip_tunnel_encap *e); +static size_t gue_encap_hlen(struct ip_tunnel_encap *e); + int fou_build_header(struct sk_buff *skb, struct ip_tunnel_encap *e, u8 *protocol, struct flowi4 *fl4); int gue_build_header(struct sk_buff *skb, struct ip_tunnel_encap *e, u8 *protocol, struct flowi4 *fl4); -static size_t fou_encap_hlen(struct ip_tunnel_encap *e) -{ - return sizeof(struct udphdr); -} - -static size_t gue_encap_hlen(struct ip_tunnel_encap *e) -{ - 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 |