diff options
author | Julian Anastasov <ja@ssi.bg> | 2011-03-04 05:18:07 -0500 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2011-03-14 20:36:50 -0400 |
commit | 2553d064ff4bf999f369c8c3dfacaa797dbef1d9 (patch) | |
tree | 2c83d5dd203f252d5e00d2b0ff643478c465f3dc /include/net | |
parent | 06b69390a652bfe4fa7e18e27c938e75ffe86ba0 (diff) |
ipvs: move struct netns_ipvs
Remove include/net/netns/ip_vs.h because it depends on
structures from include/net/ip_vs.h. As ipvs is pointer in
struct net it is better to move struct netns_ipvs into
include/net/ip_vs.h, so that we can easily use other structures
in struct netns_ipvs.
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/ip_vs.h | 122 | ||||
-rw-r--r-- | include/net/net_namespace.h | 2 | ||||
-rw-r--r-- | include/net/netns/ip_vs.h | 143 |
3 files changed, 123 insertions, 144 deletions
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h index 1dcb75da313d..091ca1f76e0e 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h | |||
@@ -803,6 +803,128 @@ struct ip_vs_app { | |||
803 | void (*timeout_change)(struct ip_vs_app *app, int flags); | 803 | void (*timeout_change)(struct ip_vs_app *app, int flags); |
804 | }; | 804 | }; |
805 | 805 | ||
806 | /* IPVS in network namespace */ | ||
807 | struct netns_ipvs { | ||
808 | int gen; /* Generation */ | ||
809 | /* | ||
810 | * Hash table: for real service lookups | ||
811 | */ | ||
812 | #define IP_VS_RTAB_BITS 4 | ||
813 | #define IP_VS_RTAB_SIZE (1 << IP_VS_RTAB_BITS) | ||
814 | #define IP_VS_RTAB_MASK (IP_VS_RTAB_SIZE - 1) | ||
815 | |||
816 | struct list_head rs_table[IP_VS_RTAB_SIZE]; | ||
817 | /* ip_vs_app */ | ||
818 | struct list_head app_list; | ||
819 | struct mutex app_mutex; | ||
820 | struct lock_class_key app_key; /* mutex debuging */ | ||
821 | |||
822 | /* ip_vs_proto */ | ||
823 | #define IP_VS_PROTO_TAB_SIZE 32 /* must be power of 2 */ | ||
824 | struct ip_vs_proto_data *proto_data_table[IP_VS_PROTO_TAB_SIZE]; | ||
825 | /* ip_vs_proto_tcp */ | ||
826 | #ifdef CONFIG_IP_VS_PROTO_TCP | ||
827 | #define TCP_APP_TAB_BITS 4 | ||
828 | #define TCP_APP_TAB_SIZE (1 << TCP_APP_TAB_BITS) | ||
829 | #define TCP_APP_TAB_MASK (TCP_APP_TAB_SIZE - 1) | ||
830 | struct list_head tcp_apps[TCP_APP_TAB_SIZE]; | ||
831 | spinlock_t tcp_app_lock; | ||
832 | #endif | ||
833 | /* ip_vs_proto_udp */ | ||
834 | #ifdef CONFIG_IP_VS_PROTO_UDP | ||
835 | #define UDP_APP_TAB_BITS 4 | ||
836 | #define UDP_APP_TAB_SIZE (1 << UDP_APP_TAB_BITS) | ||
837 | #define UDP_APP_TAB_MASK (UDP_APP_TAB_SIZE - 1) | ||
838 | struct list_head udp_apps[UDP_APP_TAB_SIZE]; | ||
839 | spinlock_t udp_app_lock; | ||
840 | #endif | ||
841 | /* ip_vs_proto_sctp */ | ||
842 | #ifdef CONFIG_IP_VS_PROTO_SCTP | ||
843 | #define SCTP_APP_TAB_BITS 4 | ||
844 | #define SCTP_APP_TAB_SIZE (1 << SCTP_APP_TAB_BITS) | ||
845 | #define SCTP_APP_TAB_MASK (SCTP_APP_TAB_SIZE - 1) | ||
846 | /* Hash table for SCTP application incarnations */ | ||
847 | struct list_head sctp_apps[SCTP_APP_TAB_SIZE]; | ||
848 | spinlock_t sctp_app_lock; | ||
849 | #endif | ||
850 | /* ip_vs_conn */ | ||
851 | atomic_t conn_count; /* connection counter */ | ||
852 | |||
853 | /* ip_vs_ctl */ | ||
854 | struct ip_vs_stats *tot_stats; /* Statistics & est. */ | ||
855 | struct ip_vs_cpu_stats __percpu *cpustats; /* Stats per cpu */ | ||
856 | seqcount_t *ustats_seq; /* u64 read retry */ | ||
857 | |||
858 | int num_services; /* no of virtual services */ | ||
859 | /* 1/rate drop and drop-entry variables */ | ||
860 | struct delayed_work defense_work; /* Work handler */ | ||
861 | int drop_rate; | ||
862 | int drop_counter; | ||
863 | atomic_t dropentry; | ||
864 | /* locks in ctl.c */ | ||
865 | spinlock_t dropentry_lock; /* drop entry handling */ | ||
866 | spinlock_t droppacket_lock; /* drop packet handling */ | ||
867 | spinlock_t securetcp_lock; /* state and timeout tables */ | ||
868 | rwlock_t rs_lock; /* real services table */ | ||
869 | /* semaphore for IPVS sockopts. And, [gs]etsockopt may sleep. */ | ||
870 | struct lock_class_key ctl_key; /* ctl_mutex debuging */ | ||
871 | /* Trash for destinations */ | ||
872 | struct list_head dest_trash; | ||
873 | /* Service counters */ | ||
874 | atomic_t ftpsvc_counter; | ||
875 | atomic_t nullsvc_counter; | ||
876 | |||
877 | /* sys-ctl struct */ | ||
878 | struct ctl_table_header *sysctl_hdr; | ||
879 | struct ctl_table *sysctl_tbl; | ||
880 | /* sysctl variables */ | ||
881 | int sysctl_amemthresh; | ||
882 | int sysctl_am_droprate; | ||
883 | int sysctl_drop_entry; | ||
884 | int sysctl_drop_packet; | ||
885 | int sysctl_secure_tcp; | ||
886 | #ifdef CONFIG_IP_VS_NFCT | ||
887 | int sysctl_conntrack; | ||
888 | #endif | ||
889 | int sysctl_snat_reroute; | ||
890 | int sysctl_sync_ver; | ||
891 | int sysctl_cache_bypass; | ||
892 | int sysctl_expire_nodest_conn; | ||
893 | int sysctl_expire_quiescent_template; | ||
894 | int sysctl_sync_threshold[2]; | ||
895 | int sysctl_nat_icmp_send; | ||
896 | |||
897 | /* ip_vs_lblc */ | ||
898 | int sysctl_lblc_expiration; | ||
899 | struct ctl_table_header *lblc_ctl_header; | ||
900 | struct ctl_table *lblc_ctl_table; | ||
901 | /* ip_vs_lblcr */ | ||
902 | int sysctl_lblcr_expiration; | ||
903 | struct ctl_table_header *lblcr_ctl_header; | ||
904 | struct ctl_table *lblcr_ctl_table; | ||
905 | /* ip_vs_est */ | ||
906 | struct list_head est_list; /* estimator list */ | ||
907 | spinlock_t est_lock; | ||
908 | struct timer_list est_timer; /* Estimation timer */ | ||
909 | /* ip_vs_sync */ | ||
910 | struct list_head sync_queue; | ||
911 | spinlock_t sync_lock; | ||
912 | struct ip_vs_sync_buff *sync_buff; | ||
913 | spinlock_t sync_buff_lock; | ||
914 | struct sockaddr_in sync_mcast_addr; | ||
915 | struct task_struct *master_thread; | ||
916 | struct task_struct *backup_thread; | ||
917 | int send_mesg_maxlen; | ||
918 | int recv_mesg_maxlen; | ||
919 | volatile int sync_state; | ||
920 | volatile int master_syncid; | ||
921 | volatile int backup_syncid; | ||
922 | /* multicast interface name */ | ||
923 | char master_mcast_ifn[IP_VS_IFNAME_MAXLEN]; | ||
924 | char backup_mcast_ifn[IP_VS_IFNAME_MAXLEN]; | ||
925 | /* net name space ptr */ | ||
926 | struct net *net; /* Needed by timer routines */ | ||
927 | }; | ||
806 | 928 | ||
807 | /* | 929 | /* |
808 | * IPVS core functions | 930 | * IPVS core functions |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index b3b4a34cb2cc..3ae491932bc8 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <net/netns/conntrack.h> | 20 | #include <net/netns/conntrack.h> |
21 | #endif | 21 | #endif |
22 | #include <net/netns/xfrm.h> | 22 | #include <net/netns/xfrm.h> |
23 | #include <net/netns/ip_vs.h> | ||
24 | 23 | ||
25 | struct proc_dir_entry; | 24 | struct proc_dir_entry; |
26 | struct net_device; | 25 | struct net_device; |
@@ -28,6 +27,7 @@ struct sock; | |||
28 | struct ctl_table_header; | 27 | struct ctl_table_header; |
29 | struct net_generic; | 28 | struct net_generic; |
30 | struct sock; | 29 | struct sock; |
30 | struct netns_ipvs; | ||
31 | 31 | ||
32 | 32 | ||
33 | #define NETDEV_HASHBITS 8 | 33 | #define NETDEV_HASHBITS 8 |
diff --git a/include/net/netns/ip_vs.h b/include/net/netns/ip_vs.h deleted file mode 100644 index 259ebac904bf..000000000000 --- a/include/net/netns/ip_vs.h +++ /dev/null | |||
@@ -1,143 +0,0 @@ | |||
1 | /* | ||
2 | * IP Virtual Server | ||
3 | * Data structure for network namspace | ||
4 | * | ||
5 | */ | ||
6 | |||
7 | #ifndef IP_VS_H_ | ||
8 | #define IP_VS_H_ | ||
9 | |||
10 | #include <linux/list.h> | ||
11 | #include <linux/mutex.h> | ||
12 | #include <linux/list_nulls.h> | ||
13 | #include <linux/ip_vs.h> | ||
14 | #include <asm/atomic.h> | ||
15 | #include <linux/in.h> | ||
16 | |||
17 | struct ip_vs_stats; | ||
18 | struct ip_vs_sync_buff; | ||
19 | struct ctl_table_header; | ||
20 | |||
21 | struct netns_ipvs { | ||
22 | int gen; /* Generation */ | ||
23 | /* | ||
24 | * Hash table: for real service lookups | ||
25 | */ | ||
26 | #define IP_VS_RTAB_BITS 4 | ||
27 | #define IP_VS_RTAB_SIZE (1 << IP_VS_RTAB_BITS) | ||
28 | #define IP_VS_RTAB_MASK (IP_VS_RTAB_SIZE - 1) | ||
29 | |||
30 | struct list_head rs_table[IP_VS_RTAB_SIZE]; | ||
31 | /* ip_vs_app */ | ||
32 | struct list_head app_list; | ||
33 | struct mutex app_mutex; | ||
34 | struct lock_class_key app_key; /* mutex debuging */ | ||
35 | |||
36 | /* ip_vs_proto */ | ||
37 | #define IP_VS_PROTO_TAB_SIZE 32 /* must be power of 2 */ | ||
38 | struct ip_vs_proto_data *proto_data_table[IP_VS_PROTO_TAB_SIZE]; | ||
39 | /* ip_vs_proto_tcp */ | ||
40 | #ifdef CONFIG_IP_VS_PROTO_TCP | ||
41 | #define TCP_APP_TAB_BITS 4 | ||
42 | #define TCP_APP_TAB_SIZE (1 << TCP_APP_TAB_BITS) | ||
43 | #define TCP_APP_TAB_MASK (TCP_APP_TAB_SIZE - 1) | ||
44 | struct list_head tcp_apps[TCP_APP_TAB_SIZE]; | ||
45 | spinlock_t tcp_app_lock; | ||
46 | #endif | ||
47 | /* ip_vs_proto_udp */ | ||
48 | #ifdef CONFIG_IP_VS_PROTO_UDP | ||
49 | #define UDP_APP_TAB_BITS 4 | ||
50 | #define UDP_APP_TAB_SIZE (1 << UDP_APP_TAB_BITS) | ||
51 | #define UDP_APP_TAB_MASK (UDP_APP_TAB_SIZE - 1) | ||
52 | struct list_head udp_apps[UDP_APP_TAB_SIZE]; | ||
53 | spinlock_t udp_app_lock; | ||
54 | #endif | ||
55 | /* ip_vs_proto_sctp */ | ||
56 | #ifdef CONFIG_IP_VS_PROTO_SCTP | ||
57 | #define SCTP_APP_TAB_BITS 4 | ||
58 | #define SCTP_APP_TAB_SIZE (1 << SCTP_APP_TAB_BITS) | ||
59 | #define SCTP_APP_TAB_MASK (SCTP_APP_TAB_SIZE - 1) | ||
60 | /* Hash table for SCTP application incarnations */ | ||
61 | struct list_head sctp_apps[SCTP_APP_TAB_SIZE]; | ||
62 | spinlock_t sctp_app_lock; | ||
63 | #endif | ||
64 | /* ip_vs_conn */ | ||
65 | atomic_t conn_count; /* connection counter */ | ||
66 | |||
67 | /* ip_vs_ctl */ | ||
68 | struct ip_vs_stats *tot_stats; /* Statistics & est. */ | ||
69 | struct ip_vs_cpu_stats __percpu *cpustats; /* Stats per cpu */ | ||
70 | seqcount_t *ustats_seq; /* u64 read retry */ | ||
71 | |||
72 | int num_services; /* no of virtual services */ | ||
73 | /* 1/rate drop and drop-entry variables */ | ||
74 | struct delayed_work defense_work; /* Work handler */ | ||
75 | int drop_rate; | ||
76 | int drop_counter; | ||
77 | atomic_t dropentry; | ||
78 | /* locks in ctl.c */ | ||
79 | spinlock_t dropentry_lock; /* drop entry handling */ | ||
80 | spinlock_t droppacket_lock; /* drop packet handling */ | ||
81 | spinlock_t securetcp_lock; /* state and timeout tables */ | ||
82 | rwlock_t rs_lock; /* real services table */ | ||
83 | /* semaphore for IPVS sockopts. And, [gs]etsockopt may sleep. */ | ||
84 | struct lock_class_key ctl_key; /* ctl_mutex debuging */ | ||
85 | /* Trash for destinations */ | ||
86 | struct list_head dest_trash; | ||
87 | /* Service counters */ | ||
88 | atomic_t ftpsvc_counter; | ||
89 | atomic_t nullsvc_counter; | ||
90 | |||
91 | /* sys-ctl struct */ | ||
92 | struct ctl_table_header *sysctl_hdr; | ||
93 | struct ctl_table *sysctl_tbl; | ||
94 | /* sysctl variables */ | ||
95 | int sysctl_amemthresh; | ||
96 | int sysctl_am_droprate; | ||
97 | int sysctl_drop_entry; | ||
98 | int sysctl_drop_packet; | ||
99 | int sysctl_secure_tcp; | ||
100 | #ifdef CONFIG_IP_VS_NFCT | ||
101 | int sysctl_conntrack; | ||
102 | #endif | ||
103 | int sysctl_snat_reroute; | ||
104 | int sysctl_sync_ver; | ||
105 | int sysctl_cache_bypass; | ||
106 | int sysctl_expire_nodest_conn; | ||
107 | int sysctl_expire_quiescent_template; | ||
108 | int sysctl_sync_threshold[2]; | ||
109 | int sysctl_nat_icmp_send; | ||
110 | |||
111 | /* ip_vs_lblc */ | ||
112 | int sysctl_lblc_expiration; | ||
113 | struct ctl_table_header *lblc_ctl_header; | ||
114 | struct ctl_table *lblc_ctl_table; | ||
115 | /* ip_vs_lblcr */ | ||
116 | int sysctl_lblcr_expiration; | ||
117 | struct ctl_table_header *lblcr_ctl_header; | ||
118 | struct ctl_table *lblcr_ctl_table; | ||
119 | /* ip_vs_est */ | ||
120 | struct list_head est_list; /* estimator list */ | ||
121 | spinlock_t est_lock; | ||
122 | struct timer_list est_timer; /* Estimation timer */ | ||
123 | /* ip_vs_sync */ | ||
124 | struct list_head sync_queue; | ||
125 | spinlock_t sync_lock; | ||
126 | struct ip_vs_sync_buff *sync_buff; | ||
127 | spinlock_t sync_buff_lock; | ||
128 | struct sockaddr_in sync_mcast_addr; | ||
129 | struct task_struct *master_thread; | ||
130 | struct task_struct *backup_thread; | ||
131 | int send_mesg_maxlen; | ||
132 | int recv_mesg_maxlen; | ||
133 | volatile int sync_state; | ||
134 | volatile int master_syncid; | ||
135 | volatile int backup_syncid; | ||
136 | /* multicast interface name */ | ||
137 | char master_mcast_ifn[IP_VS_IFNAME_MAXLEN]; | ||
138 | char backup_mcast_ifn[IP_VS_IFNAME_MAXLEN]; | ||
139 | /* net name space ptr */ | ||
140 | struct net *net; /* Needed by timer routines */ | ||
141 | }; | ||
142 | |||
143 | #endif /* IP_VS_H_ */ | ||