mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-28 23:24:50 +00:00

Move fou_build_header out of ip_tunnel.c and into fou.c splitting it up into fou_build_header, gue_build_header, and fou_build_udp. This allows for other users for TX of FOU or GUE. Change ip_tunnel_encap to call fou_build_header or gue_build_header based on the tunnel encapsulation type. Similarly, added fou_encap_hlen and gue_encap_hlen functions which are called by ip_encap_hlen. New net/fou.h has prototypes and defines for this. Added NET_FOU_IP_TUNNELS configuration. When this is set, IP tunnels can use FOU/GUE and fou module is also selected. Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
26 lines
599 B
C
26 lines
599 B
C
#ifndef __NET_FOU_H
|
|
#define __NET_FOU_H
|
|
|
|
#include <linux/skbuff.h>
|
|
|
|
#include <net/flow.h>
|
|
#include <net/gue.h>
|
|
#include <net/ip_tunnels.h>
|
|
#include <net/udp.h>
|
|
|
|
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)
|
|
{
|
|
return sizeof(struct udphdr) + sizeof(struct guehdr);
|
|
}
|
|
|
|
#endif
|