diff options
author | Julius Volz <juliusv@google.com> | 2008-09-02 15:55:36 +0200 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2008-09-05 11:17:04 +1000 |
commit | c860c6b1479992440e4962e9c95d258bfdce4fca (patch) | |
tree | 25172dc157cf23f02f1639af5ae6bbd39521f627 /include/net/ip_vs.h | |
parent | c842a3ada9ba8f0cca38a70de3fe0effcfab254c (diff) | |
download | op-kernel-dev-c860c6b1479992440e4962e9c95d258bfdce4fca.zip op-kernel-dev-c860c6b1479992440e4962e9c95d258bfdce4fca.tar.gz |
IPVS: Add internal versions of sockopt interface structs
Add extended internal versions of struct ip_vs_service_user and struct
ip_vs_dest_user (the originals can't be modified as they are part
of the old sockopt interface). Adjust ip_vs_ctl.c to work with the new
data structures and add some minor AF-awareness.
Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'include/net/ip_vs.h')
-rw-r--r-- | include/net/ip_vs.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h index 0400e59..1adf8a0 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h @@ -400,6 +400,45 @@ struct ip_vs_conn { /* + * Extended internal versions of struct ip_vs_service_user and + * ip_vs_dest_user for IPv6 support. + * + * We need these to conveniently pass around service and destination + * options, but unfortunately, we also need to keep the old definitions to + * maintain userspace backwards compatibility for the setsockopt interface. + */ +struct ip_vs_service_user_kern { + /* virtual service addresses */ + u16 af; + u16 protocol; + union nf_inet_addr addr; /* virtual ip address */ + u16 port; + u32 fwmark; /* firwall mark of service */ + + /* virtual service options */ + char *sched_name; + unsigned flags; /* virtual service flags */ + unsigned timeout; /* persistent timeout in sec */ + u32 netmask; /* persistent netmask */ +}; + + +struct ip_vs_dest_user_kern { + /* destination server address */ + union nf_inet_addr addr; + u16 port; + + /* real server options */ + unsigned conn_flags; /* connection flags */ + int weight; /* destination weight */ + + /* thresholds for active connections */ + u32 u_threshold; /* upper threshold */ + u32 l_threshold; /* lower threshold */ +}; + + +/* * The information about the virtual service offered to the net * and the forwarding entries */ |