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>
This commit is contained in:
committed by
Simon Horman
parent
c842a3ada9
commit
c860c6b147
@ -399,6 +399,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
|
||||
|
Reference in New Issue
Block a user