#define KMSG_COMPONENT …
#define pr_fmt(fmt) …
#include <linux/in.h>
#include <linux/ip.h>
#include <linux/kernel.h>
#include <linux/netfilter.h>
#include <linux/netfilter_ipv4.h>
#include <linux/udp.h>
#include <linux/indirect_call_wrapper.h>
#include <net/ip_vs.h>
#include <net/ip.h>
#include <net/ip6_checksum.h>
static int
udp_csum_check(int af, struct sk_buff *skb, struct ip_vs_protocol *pp);
static int
udp_conn_schedule(struct netns_ipvs *ipvs, int af, struct sk_buff *skb,
struct ip_vs_proto_data *pd,
int *verdict, struct ip_vs_conn **cpp,
struct ip_vs_iphdr *iph)
{ … }
static inline void
udp_fast_csum_update(int af, struct udphdr *uhdr,
const union nf_inet_addr *oldip,
const union nf_inet_addr *newip,
__be16 oldport, __be16 newport)
{ … }
static inline void
udp_partial_csum_update(int af, struct udphdr *uhdr,
const union nf_inet_addr *oldip,
const union nf_inet_addr *newip,
__be16 oldlen, __be16 newlen)
{ … }
INDIRECT_CALLABLE_SCOPE int
udp_snat_handler(struct sk_buff *skb, struct ip_vs_protocol *pp,
struct ip_vs_conn *cp, struct ip_vs_iphdr *iph)
{ … }
static int
udp_dnat_handler(struct sk_buff *skb, struct ip_vs_protocol *pp,
struct ip_vs_conn *cp, struct ip_vs_iphdr *iph)
{ … }
static int
udp_csum_check(int af, struct sk_buff *skb, struct ip_vs_protocol *pp)
{ … }
static inline __u16 udp_app_hashkey(__be16 port)
{ … }
static int udp_register_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
{ … }
static void
udp_unregister_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
{ … }
static int udp_app_conn_bind(struct ip_vs_conn *cp)
{ … }
static const int udp_timeouts[IP_VS_UDP_S_LAST+1] = …;
static const char *const udp_state_name_table[IP_VS_UDP_S_LAST+1] = …;
static const char * udp_state_name(int state)
{ … }
static void
udp_state_transition(struct ip_vs_conn *cp, int direction,
const struct sk_buff *skb,
struct ip_vs_proto_data *pd)
{ … }
static int __udp_init(struct netns_ipvs *ipvs, struct ip_vs_proto_data *pd)
{ … }
static void __udp_exit(struct netns_ipvs *ipvs, struct ip_vs_proto_data *pd)
{ … }
struct ip_vs_protocol ip_vs_protocol_udp = …;