patch-2.2.11 linux/include/net/ip_masq.h

Next file: linux/include/net/ip_masq_mod.h
Previous file: linux/include/net/br.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.2.10/linux/include/net/ip_masq.h linux/include/net/ip_masq.h
@@ -11,6 +11,7 @@
 #include <linux/netdevice.h>
 #include <linux/ip.h>
 #include <linux/skbuff.h>
+#include <linux/list.h>
 #endif /* __KERNEL__ */
 
 /*
@@ -57,6 +58,7 @@
 
 #define IP_MASQ_F_MPORT		      0x1000 	/* own mport specified */
 #define IP_MASQ_F_USER		      0x2000	/* from uspace */
+#define IP_MASQ_F_SIMPLE_HASH	      0x8000	/* prevent s+d and m+d hashing */
 
 /*
  *	Delta seq. info structure
@@ -73,7 +75,8 @@
  *	MASQ structure allocated for each masqueraded association
  */
 struct ip_masq {
-        struct ip_masq  *m_link, *s_link; /* hashed link ptrs */
+	struct list_head m_list, s_list, d_list;
+			/* hashed d-linked list heads */
 	atomic_t refcnt;		/* reference count */
 	struct timer_list timer;	/* Expiration timer */
 	__u16 		protocol;	/* Which protocol are we talking? */
@@ -145,8 +148,9 @@
 	int (*info)(char *, char **, off_t, int, int);
 };
 
-extern struct ip_masq *ip_masq_m_tab[IP_MASQ_TAB_SIZE];
-extern struct ip_masq *ip_masq_s_tab[IP_MASQ_TAB_SIZE];
+extern struct list_head ip_masq_m_table[IP_MASQ_TAB_SIZE];
+extern struct list_head ip_masq_s_table[IP_MASQ_TAB_SIZE];
+extern struct list_head ip_masq_d_table[IP_MASQ_TAB_SIZE];
 extern const char * ip_masq_state_name(int state);
 extern struct ip_masq_hook *ip_masq_user_hook;
 extern u32 ip_masq_select_addr(struct device *dev, u32 dst, int scope);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)