This is in preparation for adding a new version of the
synchronisation protocol.
* Change name of struct ip_vs_sync_mesg to struct ip_vs_sync_mesg_v1
* Change the name of SYNC_MESG_HEADER_LEN to SYNC_MESG_V1_HEADER_LEN
* Define SYNC_MESG_V1_HEADER_LEN as sizeof(struct ip_vs_sync_mesg_v1)
instead of 4
* Always use SYNC_MESG_V1_HEADER_LEN instead of 4
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
Index: lvs-test-2.6/net/netfilter/ipvs/ip_vs_sync.c
===================================================================
--- lvs-test-2.6.orig/net/netfilter/ipvs/ip_vs_sync.c 2010-10-15
07:50:16.000000000 +0900
+++ lvs-test-2.6/net/netfilter/ipvs/ip_vs_sync.c 2010-10-15
07:50:24.000000000 +0900
@@ -81,7 +81,8 @@ struct ip_vs_sync_thread_data {
(sizeof(struct ip_vs_sync_conn) + sizeof(struct ip_vs_sync_conn_options))
-/*
+/* IPVS Connection Synchronisation v1
+
The master mulitcasts messages to the backup load balancers in the
following format.
@@ -102,10 +103,10 @@ struct ip_vs_sync_thread_data {
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*/
-#define SYNC_MESG_HEADER_LEN 4
+#define SYNC_MESG_V1_HEADER_LEN sizeof(struct ip_vs_sync_mesg_v1)
#define MAX_CONNS_PER_SYNCBUFF 255 /* nr_conns in ip_vs_sync_mesg is 8 bit */
-struct ip_vs_sync_mesg {
+struct ip_vs_sync_mesg_v1 {
__u8 nr_conns;
__u8 syncid;
__u16 size;
@@ -122,7 +123,7 @@ struct ip_vs_sync_buff {
unsigned long firstuse;
/* pointers for the message data */
- struct ip_vs_sync_mesg *mesg;
+ struct ip_vs_sync_mesg_v1 *mesg;
unsigned char *head;
unsigned char *end;
};
@@ -188,8 +189,8 @@ static inline struct ip_vs_sync_buff * i
}
sb->mesg->nr_conns = 0;
sb->mesg->syncid = ip_vs_master_syncid;
- sb->mesg->size = 4;
- sb->head = (unsigned char *)sb->mesg + 4;
+ sb->mesg->size = SYNC_MESG_V1_HEADER_LEN;
+ sb->head = (unsigned char *)sb->mesg + SYNC_MESG_V1_HEADER_LEN;
sb->end = (unsigned char *)sb->mesg + sync_send_mesg_maxlen;
sb->firstuse = jiffies;
return sb;
@@ -238,7 +239,7 @@ get_curr_sync_buff(unsigned long time)
*/
void ip_vs_sync_conn(const struct ip_vs_conn *cp)
{
- struct ip_vs_sync_mesg *m;
+ struct ip_vs_sync_mesg_v1 *m;
struct ip_vs_sync_conn *s;
int len;
@@ -305,7 +306,7 @@ ip_vs_conn_fill_param_sync(int af, int p
*/
static void ip_vs_process_message(char *buffer, const size_t buflen)
{
- struct ip_vs_sync_mesg *m = (struct ip_vs_sync_mesg *)buffer;
+ struct ip_vs_sync_mesg_v1 *m = (struct ip_vs_sync_mesg_v1 *)buffer;
struct ip_vs_sync_conn *s;
struct ip_vs_sync_conn_options *opt;
struct ip_vs_conn *cp;
@@ -315,7 +316,7 @@ static void ip_vs_process_message(char *
char *p;
int i;
- if (buflen < sizeof(struct ip_vs_sync_mesg)) {
+ if (buflen < SYNC_MESG_V1_HEADER_LEN) {
IP_VS_ERR_RL("sync message header too short\n");
return;
}
@@ -335,7 +336,7 @@ static void ip_vs_process_message(char *
return;
}
- p = (char *)buffer + sizeof(struct ip_vs_sync_mesg);
+ p = (char *)buffer + SYNC_MESG_V1_HEADER_LEN;
for (i=0; i<m->nr_conns; i++) {
unsigned flags, state;
@@ -540,8 +541,8 @@ static int set_sync_mesg_maxlen(int sync
num = (dev->mtu - sizeof(struct iphdr) -
sizeof(struct udphdr) -
- SYNC_MESG_HEADER_LEN - 20) / SIMPLE_CONN_SIZE;
- sync_send_mesg_maxlen = SYNC_MESG_HEADER_LEN +
+ SYNC_MESG_V1_HEADER_LEN - 20) / SIMPLE_CONN_SIZE;
+ sync_send_mesg_maxlen = SYNC_MESG_V1_HEADER_LEN +
SIMPLE_CONN_SIZE * min(num, MAX_CONNS_PER_SYNCBUFF);
IP_VS_DBG(7, "setting the maximum length of sync sending "
"message %d.\n", sync_send_mesg_maxlen);
@@ -719,7 +720,7 @@ ip_vs_send_async(struct socket *sock, co
}
static void
-ip_vs_send_sync_msg(struct socket *sock, struct ip_vs_sync_mesg *msg)
+ip_vs_send_sync_msg(struct socket *sock, struct ip_vs_sync_mesg_v1 *msg)
{
int msize;
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
|