/* * IP Virtual Server * data structure and functionality definitions */#ifndef _NET_IP_VS_H#define _NET_IP_VS_H#include <linux/ip_vs.h>/* definitions shared with userland */#include <asm/types.h>/* for __uXX types */#include <linux/list.h>/* for struct list_head */#include <linux/spinlock.h>/* for struct rwlock_t */#include <linux/atomic.h>/* for struct atomic_t */#include <linux/compiler.h>#include <linux/timer.h>#include <linux/bug.h>#include <net/checksum.h>#include <linux/netfilter.h>/* for union nf_inet_addr */#include <linux/ip.h>#include <linux/ipv6.h>/* for struct ipv6hdr */#include <net/ipv6.h>#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)#include <net/netfilter/nf_conntrack.h>#endif#include <net/net_namespace.h>/* Netw namespace *//* * Generic access of ipvs struct */staticinlinestruct netns_ipvs *net_ipvs(struct net* net){return net->ipvs;}/* * Get net ptr from skb in traffic cases * use skb_sknet when call is from userland (ioctl or netlink) */staticinlinestruct net *skb_net(const struct sk_buff *skb){#ifdef CONFIG_NET_NS#ifdef CONFIG_IP_VS_DEBUG/* * This is used for debug only. * Start with the most likely hit * End with BUG */if(