summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorHarald Welte <laforge@netfilter.org>2004-10-21 08:35:43 -0700
committerDavid S. Miller <davem@nuts.davemloft.net>2004-10-21 08:35:43 -0700
commit11a79e833030e45b6e72230de68ffa072d47e328 (patch)
treebc499bb8dd5caa9aadc86b65f5b271710481e00f /include/linux
parent1ced208c6c27a87c4e769566dc9baa6e9b2beece (diff)
[NETFILTER]: Add iptables CLUSTERIP target, seq_file version
This enables you to build a static load sharing cluster between multiple nodes - without the requirement to have a load balancer. It uses a series of [evil] tricks like replying with linklayer multicast addresses to ARP requests, and using CONNMARK for stateful blocking all traffic not intended for the local node. Signed-off-by: Harald Welte <laforge@netfilter.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/netfilter_ipv4/ipt_CLUSTERIP.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h b/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
new file mode 100644
index 000000000000..baa83e757156
--- /dev/null
+++ b/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
@@ -0,0 +1,32 @@
+#ifndef _IPT_CLUSTERIP_H_target
+#define _IPT_CLUSTERIP_H_target
+
+enum clusterip_hashmode {
+ CLUSTERIP_HASHMODE_SIP = 0,
+ CLUSTERIP_HASHMODE_SIP_SPT,
+ CLUSTERIP_HASHMODE_SIP_SPT_DPT,
+};
+
+#define CLUSTERIP_HASHMODE_MAX CLUSTERIP_HASHMODE_SIP_SPT_DPT
+
+#define CLUSTERIP_MAX_NODES 16
+
+#define CLUSTERIP_FLAG_NEW 0x00000001
+
+struct clusterip_config;
+
+struct ipt_clusterip_tgt_info {
+
+ u_int32_t flags;
+ struct clusterip_config *config;
+
+ /* only relevant for new ones */
+ u_int8_t clustermac[6];
+ u_int16_t num_total_nodes;
+ u_int16_t num_local_nodes;
+ u_int16_t local_nodes[CLUSTERIP_MAX_NODES];
+ enum clusterip_hashmode hash_mode;
+ u_int32_t hash_initval;
+};
+
+#endif /*_IPT_CLUSTERIP_H_target*/