#include <linux/module.h>
#include <linux/errno.h>
#include <linux/socket.h>
#include <linux/kernel.h>
#include <net/dst_metadata.h>
#include <net/udp.h>
#include <net/udp_tunnel.h>
int udp_sock_create4(struct net *net, struct udp_port_cfg *cfg,
struct socket **sockp)
{ … }
EXPORT_SYMBOL(…);
void setup_udp_tunnel_sock(struct net *net, struct socket *sock,
struct udp_tunnel_sock_cfg *cfg)
{ … }
EXPORT_SYMBOL_GPL(…);
void udp_tunnel_push_rx_port(struct net_device *dev, struct socket *sock,
unsigned short type)
{ … }
EXPORT_SYMBOL_GPL(…);
void udp_tunnel_drop_rx_port(struct net_device *dev, struct socket *sock,
unsigned short type)
{ … }
EXPORT_SYMBOL_GPL(…);
void udp_tunnel_notify_add_rx_port(struct socket *sock, unsigned short type)
{ … }
EXPORT_SYMBOL_GPL(…);
void udp_tunnel_notify_del_rx_port(struct socket *sock, unsigned short type)
{ … }
EXPORT_SYMBOL_GPL(…);
void udp_tunnel_xmit_skb(struct rtable *rt, struct sock *sk, struct sk_buff *skb,
__be32 src, __be32 dst, __u8 tos, __u8 ttl,
__be16 df, __be16 src_port, __be16 dst_port,
bool xnet, bool nocheck)
{ … }
EXPORT_SYMBOL_GPL(…);
void udp_tunnel_sock_release(struct socket *sock)
{ … }
EXPORT_SYMBOL_GPL(…);
struct metadata_dst *udp_tun_rx_dst(struct sk_buff *skb, unsigned short family,
const unsigned long *flags,
__be64 tunnel_id, int md_size)
{ … }
EXPORT_SYMBOL_GPL(…);
struct rtable *udp_tunnel_dst_lookup(struct sk_buff *skb,
struct net_device *dev,
struct net *net, int oif,
__be32 *saddr,
const struct ip_tunnel_key *key,
__be16 sport, __be16 dport, u8 tos,
struct dst_cache *dst_cache)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;