aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorSimon Horman <horms@verge.net.au>2010-08-22 08:37:52 -0400
committerSimon Horman <horms@verge.net.au>2010-10-04 09:45:24 -0400
commitf11017ec2d1859c661f4e2b12c4a8d250e1f47cf (patch)
tree07278dbced3c8c61b9e6bbe9c3d502c65b127f24 /include/net
parent5b57a98c1f0d78a4c238d83c4ac70de3bd237b2f (diff)
IPVS: Add struct ip_vs_conn_param
Signed-off-by: Simon Horman <horms@verge.net.au> Acked-by: Julian Anastasov <ja@ssi.bg>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/ip_vs.h44
1 files changed, 30 insertions, 14 deletions
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
index 3915a4f4cd30..d4da774eca75 100644
--- a/include/net/ip_vs.h
+++ b/include/net/ip_vs.h
@@ -357,6 +357,15 @@ struct ip_vs_protocol {
357 357
358extern struct ip_vs_protocol * ip_vs_proto_get(unsigned short proto); 358extern struct ip_vs_protocol * ip_vs_proto_get(unsigned short proto);
359 359
360struct ip_vs_conn_param {
361 const union nf_inet_addr *caddr;
362 const union nf_inet_addr *vaddr;
363 __be16 cport;
364 __be16 vport;
365 __u16 protocol;
366 u16 af;
367};
368
360/* 369/*
361 * IP_VS structure allocated for each dynamically scheduled connection 370 * IP_VS structure allocated for each dynamically scheduled connection
362 */ 371 */
@@ -626,13 +635,23 @@ enum {
626 IP_VS_DIR_LAST, 635 IP_VS_DIR_LAST,
627}; 636};
628 637
629extern struct ip_vs_conn *ip_vs_conn_in_get 638static inline void ip_vs_conn_fill_param(int af, int protocol,
630(int af, int protocol, const union nf_inet_addr *s_addr, __be16 s_port, 639 const union nf_inet_addr *caddr,
631 const union nf_inet_addr *d_addr, __be16 d_port); 640 __be16 cport,
641 const union nf_inet_addr *vaddr,
642 __be16 vport,
643 struct ip_vs_conn_param *p)
644{
645 p->af = af;
646 p->protocol = protocol;
647 p->caddr = caddr;
648 p->cport = cport;
649 p->vaddr = vaddr;
650 p->vport = vport;
651}
632 652
633extern struct ip_vs_conn *ip_vs_ct_in_get 653struct ip_vs_conn *ip_vs_conn_in_get(const struct ip_vs_conn_param *p);
634(int af, int protocol, const union nf_inet_addr *s_addr, __be16 s_port, 654struct ip_vs_conn *ip_vs_ct_in_get(const struct ip_vs_conn_param *p);
635 const union nf_inet_addr *d_addr, __be16 d_port);
636 655
637struct ip_vs_conn * ip_vs_conn_in_get_proto(int af, const struct sk_buff *skb, 656struct ip_vs_conn * ip_vs_conn_in_get_proto(int af, const struct sk_buff *skb,
638 struct ip_vs_protocol *pp, 657 struct ip_vs_protocol *pp,
@@ -640,9 +659,7 @@ struct ip_vs_conn * ip_vs_conn_in_get_proto(int af, const struct sk_buff *skb,
640 unsigned int proto_off, 659 unsigned int proto_off,
641 int inverse); 660 int inverse);
642 661
643extern struct ip_vs_conn *ip_vs_conn_out_get 662struct ip_vs_conn *ip_vs_conn_out_get(const struct ip_vs_conn_param *p);
644(int af, int protocol, const union nf_inet_addr *s_addr, __be16 s_port,
645 const union nf_inet_addr *d_addr, __be16 d_port);
646 663
647struct ip_vs_conn * ip_vs_conn_out_get_proto(int af, const struct sk_buff *skb, 664struct ip_vs_conn * ip_vs_conn_out_get_proto(int af, const struct sk_buff *skb,
648 struct ip_vs_protocol *pp, 665 struct ip_vs_protocol *pp,
@@ -658,11 +675,10 @@ static inline void __ip_vs_conn_put(struct ip_vs_conn *cp)
658extern void ip_vs_conn_put(struct ip_vs_conn *cp); 675extern void ip_vs_conn_put(struct ip_vs_conn *cp);
659extern void ip_vs_conn_fill_cport(struct ip_vs_conn *cp, __be16 cport); 676extern void ip_vs_conn_fill_cport(struct ip_vs_conn *cp, __be16 cport);
660 677
661extern struct ip_vs_conn * 678struct ip_vs_conn *ip_vs_conn_new(const struct ip_vs_conn_param *p,
662ip_vs_conn_new(int af, int proto, const union nf_inet_addr *caddr, __be16 cport, 679 const union nf_inet_addr *daddr,
663 const union nf_inet_addr *vaddr, __be16 vport, 680 __be16 dport, unsigned flags,
664 const union nf_inet_addr *daddr, __be16 dport, unsigned flags, 681 struct ip_vs_dest *dest);
665 struct ip_vs_dest *dest);
666extern void ip_vs_conn_expire_now(struct ip_vs_conn *cp); 682extern void ip_vs_conn_expire_now(struct ip_vs_conn *cp);
667 683
668extern const char * ip_vs_state_name(__u16 proto, int state); 684extern const char * ip_vs_state_name(__u16 proto, int state);