Commit 014d730d authored by Al Viro's avatar Al Viro Committed by David S. Miller

[IPVS]: ipvs annotations

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d4263cde
...@@ -100,22 +100,22 @@ ...@@ -100,22 +100,22 @@
struct ip_vs_service_user { struct ip_vs_service_user {
/* virtual service addresses */ /* virtual service addresses */
u_int16_t protocol; u_int16_t protocol;
u_int32_t addr; /* virtual ip address */ __be32 addr; /* virtual ip address */
u_int16_t port; __be16 port;
u_int32_t fwmark; /* firwall mark of service */ u_int32_t fwmark; /* firwall mark of service */
/* virtual service options */ /* virtual service options */
char sched_name[IP_VS_SCHEDNAME_MAXLEN]; char sched_name[IP_VS_SCHEDNAME_MAXLEN];
unsigned flags; /* virtual service flags */ unsigned flags; /* virtual service flags */
unsigned timeout; /* persistent timeout in sec */ unsigned timeout; /* persistent timeout in sec */
u_int32_t netmask; /* persistent netmask */ __be32 netmask; /* persistent netmask */
}; };
struct ip_vs_dest_user { struct ip_vs_dest_user {
/* destination server address */ /* destination server address */
u_int32_t addr; __be32 addr;
u_int16_t port; __be16 port;
/* real server options */ /* real server options */
unsigned conn_flags; /* connection flags */ unsigned conn_flags; /* connection flags */
...@@ -163,15 +163,15 @@ struct ip_vs_getinfo { ...@@ -163,15 +163,15 @@ struct ip_vs_getinfo {
struct ip_vs_service_entry { struct ip_vs_service_entry {
/* which service: user fills in these */ /* which service: user fills in these */
u_int16_t protocol; u_int16_t protocol;
u_int32_t addr; /* virtual address */ __be32 addr; /* virtual address */
u_int16_t port; __be16 port;
u_int32_t fwmark; /* firwall mark of service */ u_int32_t fwmark; /* firwall mark of service */
/* service options */ /* service options */
char sched_name[IP_VS_SCHEDNAME_MAXLEN]; char sched_name[IP_VS_SCHEDNAME_MAXLEN];
unsigned flags; /* virtual service flags */ unsigned flags; /* virtual service flags */
unsigned timeout; /* persistent timeout */ unsigned timeout; /* persistent timeout */
u_int32_t netmask; /* persistent netmask */ __be32 netmask; /* persistent netmask */
/* number of real servers */ /* number of real servers */
unsigned int num_dests; unsigned int num_dests;
...@@ -182,8 +182,8 @@ struct ip_vs_service_entry { ...@@ -182,8 +182,8 @@ struct ip_vs_service_entry {
struct ip_vs_dest_entry { struct ip_vs_dest_entry {
u_int32_t addr; /* destination address */ __be32 addr; /* destination address */
u_int16_t port; __be16 port;
unsigned conn_flags; /* connection flags */ unsigned conn_flags; /* connection flags */
int weight; /* destination weight */ int weight; /* destination weight */
...@@ -203,8 +203,8 @@ struct ip_vs_dest_entry { ...@@ -203,8 +203,8 @@ struct ip_vs_dest_entry {
struct ip_vs_get_dests { struct ip_vs_get_dests {
/* which service: user fills in these */ /* which service: user fills in these */
u_int16_t protocol; u_int16_t protocol;
u_int32_t addr; /* virtual address */ __be32 addr; /* virtual address */
u_int16_t port; __be16 port;
u_int32_t fwmark; /* firwall mark of service */ u_int32_t fwmark; /* firwall mark of service */
/* number of real servers */ /* number of real servers */
...@@ -502,12 +502,12 @@ struct ip_vs_conn { ...@@ -502,12 +502,12 @@ struct ip_vs_conn {
struct list_head c_list; /* hashed list heads */ struct list_head c_list; /* hashed list heads */
/* Protocol, addresses and port numbers */ /* Protocol, addresses and port numbers */
__u32 caddr; /* client address */ __be32 caddr; /* client address */
__u32 vaddr; /* virtual address */ __be32 vaddr; /* virtual address */
__u32 daddr; /* destination address */ __be32 daddr; /* destination address */
__u16 cport; __be16 cport;
__u16 vport; __be16 vport;
__u16 dport; __be16 dport;
__u16 protocol; /* Which protocol (TCP/UDP) */ __u16 protocol; /* Which protocol (TCP/UDP) */
/* counter and timer */ /* counter and timer */
...@@ -554,12 +554,12 @@ struct ip_vs_service { ...@@ -554,12 +554,12 @@ struct ip_vs_service {
atomic_t usecnt; /* use counter */ atomic_t usecnt; /* use counter */
__u16 protocol; /* which protocol (TCP/UDP) */ __u16 protocol; /* which protocol (TCP/UDP) */
__u32 addr; /* IP address for virtual service */ __be32 addr; /* IP address for virtual service */
__u16 port; /* port number for the service */ __be16 port; /* port number for the service */
__u32 fwmark; /* firewall mark of the service */ __u32 fwmark; /* firewall mark of the service */
unsigned flags; /* service status flags */ unsigned flags; /* service status flags */
unsigned timeout; /* persistent timeout in ticks */ unsigned timeout; /* persistent timeout in ticks */
__u32 netmask; /* grouping granularity */ __be32 netmask; /* grouping granularity */
struct list_head destinations; /* real server d-linked list */ struct list_head destinations; /* real server d-linked list */
__u32 num_dests; /* number of servers */ __u32 num_dests; /* number of servers */
...@@ -581,8 +581,8 @@ struct ip_vs_dest { ...@@ -581,8 +581,8 @@ struct ip_vs_dest {
struct list_head n_list; /* for the dests in the service */ struct list_head n_list; /* for the dests in the service */
struct list_head d_list; /* for table with all the dests */ struct list_head d_list; /* for table with all the dests */
__u32 addr; /* IP address of the server */ __be32 addr; /* IP address of the server */
__u16 port; /* port number of the server */ __be16 port; /* port number of the server */
volatile unsigned flags; /* dest status flags */ volatile unsigned flags; /* dest status flags */
atomic_t conn_flags; /* flags to copy to conn */ atomic_t conn_flags; /* flags to copy to conn */
atomic_t weight; /* server weight */ atomic_t weight; /* server weight */
...@@ -605,8 +605,8 @@ struct ip_vs_dest { ...@@ -605,8 +605,8 @@ struct ip_vs_dest {
/* for virtual service */ /* for virtual service */
struct ip_vs_service *svc; /* service it belongs to */ struct ip_vs_service *svc; /* service it belongs to */
__u16 protocol; /* which protocol (TCP/UDP) */ __u16 protocol; /* which protocol (TCP/UDP) */
__u32 vaddr; /* virtual IP address */ __be32 vaddr; /* virtual IP address */
__u16 vport; /* virtual port number */ __be16 vport; /* virtual port number */
__u32 vfwmark; /* firewall mark of service */ __u32 vfwmark; /* firewall mark of service */
}; };
...@@ -648,7 +648,7 @@ struct ip_vs_app ...@@ -648,7 +648,7 @@ struct ip_vs_app
/* members for application incarnations */ /* members for application incarnations */
struct list_head p_list; /* member in proto app list */ struct list_head p_list; /* member in proto app list */
struct ip_vs_app *app; /* its real application */ struct ip_vs_app *app; /* its real application */
__u16 port; /* port number in net order */ __be16 port; /* port number in net order */
atomic_t usecnt; /* usage counter */ atomic_t usecnt; /* usage counter */
/* output hook: return false if can't linearize. diff set for TCP. */ /* output hook: return false if can't linearize. diff set for TCP. */
...@@ -740,11 +740,11 @@ enum { ...@@ -740,11 +740,11 @@ enum {
}; };
extern struct ip_vs_conn *ip_vs_conn_in_get extern struct ip_vs_conn *ip_vs_conn_in_get
(int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port); (int protocol, __be32 s_addr, __be16 s_port, __be32 d_addr, __be16 d_port);
extern struct ip_vs_conn *ip_vs_ct_in_get extern struct ip_vs_conn *ip_vs_ct_in_get
(int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port); (int protocol, __be32 s_addr, __be16 s_port, __be32 d_addr, __be16 d_port);
extern struct ip_vs_conn *ip_vs_conn_out_get extern struct ip_vs_conn *ip_vs_conn_out_get
(int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port); (int protocol, __be32 s_addr, __be16 s_port, __be32 d_addr, __be16 d_port);
/* put back the conn without restarting its timer */ /* put back the conn without restarting its timer */
static inline void __ip_vs_conn_put(struct ip_vs_conn *cp) static inline void __ip_vs_conn_put(struct ip_vs_conn *cp)
...@@ -752,11 +752,11 @@ static inline void __ip_vs_conn_put(struct ip_vs_conn *cp) ...@@ -752,11 +752,11 @@ static inline void __ip_vs_conn_put(struct ip_vs_conn *cp)
atomic_dec(&cp->refcnt); atomic_dec(&cp->refcnt);
} }
extern void ip_vs_conn_put(struct ip_vs_conn *cp); extern void ip_vs_conn_put(struct ip_vs_conn *cp);
extern void ip_vs_conn_fill_cport(struct ip_vs_conn *cp, __u16 cport); extern void ip_vs_conn_fill_cport(struct ip_vs_conn *cp, __be16 cport);
extern struct ip_vs_conn * extern struct ip_vs_conn *
ip_vs_conn_new(int proto, __u32 caddr, __u16 cport, __u32 vaddr, __u16 vport, ip_vs_conn_new(int proto, __be32 caddr, __be16 cport, __be32 vaddr, __be16 vport,
__u32 daddr, __u16 dport, unsigned flags, __be32 daddr, __be16 dport, unsigned flags,
struct ip_vs_dest *dest); struct ip_vs_dest *dest);
extern void ip_vs_conn_expire_now(struct ip_vs_conn *cp); extern void ip_vs_conn_expire_now(struct ip_vs_conn *cp);
...@@ -887,7 +887,7 @@ extern int sysctl_ip_vs_nat_icmp_send; ...@@ -887,7 +887,7 @@ extern int sysctl_ip_vs_nat_icmp_send;
extern struct ip_vs_stats ip_vs_stats; extern struct ip_vs_stats ip_vs_stats;
extern struct ip_vs_service * extern struct ip_vs_service *
ip_vs_service_get(__u32 fwmark, __u16 protocol, __u32 vaddr, __u16 vport); ip_vs_service_get(__u32 fwmark, __u16 protocol, __be32 vaddr, __be16 vport);
static inline void ip_vs_service_put(struct ip_vs_service *svc) static inline void ip_vs_service_put(struct ip_vs_service *svc)
{ {
...@@ -895,7 +895,7 @@ static inline void ip_vs_service_put(struct ip_vs_service *svc) ...@@ -895,7 +895,7 @@ static inline void ip_vs_service_put(struct ip_vs_service *svc)
} }
extern struct ip_vs_dest * extern struct ip_vs_dest *
ip_vs_lookup_real_service(__u16 protocol, __u32 daddr, __u16 dport); ip_vs_lookup_real_service(__u16 protocol, __be32 daddr, __be16 dport);
extern int ip_vs_use_count_inc(void); extern int ip_vs_use_count_inc(void);
extern void ip_vs_use_count_dec(void); extern void ip_vs_use_count_dec(void);
extern int ip_vs_control_init(void); extern int ip_vs_control_init(void);
......
...@@ -115,9 +115,9 @@ static inline void ct_write_unlock_bh(unsigned key) ...@@ -115,9 +115,9 @@ static inline void ct_write_unlock_bh(unsigned key)
/* /*
* Returns hash value for IPVS connection entry * Returns hash value for IPVS connection entry
*/ */
static unsigned int ip_vs_conn_hashkey(unsigned proto, __u32 addr, __u16 port) static unsigned int ip_vs_conn_hashkey(unsigned proto, __be32 addr, __be16 port)
{ {
return jhash_3words(addr, port, proto, ip_vs_conn_rnd) return jhash_3words((__force u32)addr, (__force u32)port, proto, ip_vs_conn_rnd)
& IP_VS_CONN_TAB_MASK; & IP_VS_CONN_TAB_MASK;
} }
...@@ -188,7 +188,7 @@ static inline int ip_vs_conn_unhash(struct ip_vs_conn *cp) ...@@ -188,7 +188,7 @@ static inline int ip_vs_conn_unhash(struct ip_vs_conn *cp)
* d_addr, d_port: pkt dest address (load balancer) * d_addr, d_port: pkt dest address (load balancer)
*/ */
static inline struct ip_vs_conn *__ip_vs_conn_in_get static inline struct ip_vs_conn *__ip_vs_conn_in_get
(int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port) (int protocol, __be32 s_addr, __be16 s_port, __be32 d_addr, __be16 d_port)
{ {
unsigned hash; unsigned hash;
struct ip_vs_conn *cp; struct ip_vs_conn *cp;
...@@ -215,7 +215,7 @@ static inline struct ip_vs_conn *__ip_vs_conn_in_get ...@@ -215,7 +215,7 @@ static inline struct ip_vs_conn *__ip_vs_conn_in_get
} }
struct ip_vs_conn *ip_vs_conn_in_get struct ip_vs_conn *ip_vs_conn_in_get
(int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port) (int protocol, __be32 s_addr, __be16 s_port, __be32 d_addr, __be16 d_port)
{ {
struct ip_vs_conn *cp; struct ip_vs_conn *cp;
...@@ -234,7 +234,7 @@ struct ip_vs_conn *ip_vs_conn_in_get ...@@ -234,7 +234,7 @@ struct ip_vs_conn *ip_vs_conn_in_get
/* Get reference to connection template */ /* Get reference to connection template */
struct ip_vs_conn *ip_vs_ct_in_get struct ip_vs_conn *ip_vs_ct_in_get
(int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port) (int protocol, __be32 s_addr, __be16 s_port, __be32 d_addr, __be16 d_port)
{ {
unsigned hash; unsigned hash;
struct ip_vs_conn *cp; struct ip_vs_conn *cp;
...@@ -274,7 +274,7 @@ struct ip_vs_conn *ip_vs_ct_in_get ...@@ -274,7 +274,7 @@ struct ip_vs_conn *ip_vs_ct_in_get
* d_addr, d_port: pkt dest address (foreign host) * d_addr, d_port: pkt dest address (foreign host)
*/ */
struct ip_vs_conn *ip_vs_conn_out_get struct ip_vs_conn *ip_vs_conn_out_get
(int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port) (int protocol, __be32 s_addr, __be16 s_port, __be32 d_addr, __be16 d_port)
{ {
unsigned hash; unsigned hash;
struct ip_vs_conn *cp, *ret=NULL; struct ip_vs_conn *cp, *ret=NULL;
...@@ -324,7 +324,7 @@ void ip_vs_conn_put(struct ip_vs_conn *cp) ...@@ -324,7 +324,7 @@ void ip_vs_conn_put(struct ip_vs_conn *cp)
/* /*
* Fill a no_client_port connection with a client port number * Fill a no_client_port connection with a client port number
*/ */
void ip_vs_conn_fill_cport(struct ip_vs_conn *cp, __u16 cport) void ip_vs_conn_fill_cport(struct ip_vs_conn *cp, __be16 cport)
{ {
if (ip_vs_conn_unhash(cp)) { if (ip_vs_conn_unhash(cp)) {
spin_lock(&cp->lock); spin_lock(&cp->lock);
...@@ -508,10 +508,10 @@ int ip_vs_check_template(struct ip_vs_conn *ct) ...@@ -508,10 +508,10 @@ int ip_vs_check_template(struct ip_vs_conn *ct)
/* /*
* Invalidate the connection template * Invalidate the connection template
*/ */
if (ct->vport != 65535) { if (ct->vport != htons(0xffff)) {
if (ip_vs_conn_unhash(ct)) { if (ip_vs_conn_unhash(ct)) {
ct->dport = 65535; ct->dport = htons(0xffff);
ct->vport = 65535; ct->vport = htons(0xffff);
ct->cport = 0; ct->cport = 0;
ip_vs_conn_hash(ct); ip_vs_conn_hash(ct);
} }
...@@ -596,8 +596,8 @@ void ip_vs_conn_expire_now(struct ip_vs_conn *cp) ...@@ -596,8 +596,8 @@ void ip_vs_conn_expire_now(struct ip_vs_conn *cp)
* Create a new connection entry and hash it into the ip_vs_conn_tab * Create a new connection entry and hash it into the ip_vs_conn_tab
*/ */
struct ip_vs_conn * struct ip_vs_conn *
ip_vs_conn_new(int proto, __u32 caddr, __u16 cport, __u32 vaddr, __u16 vport, ip_vs_conn_new(int proto, __be32 caddr, __be16 cport, __be32 vaddr, __be16 vport,
__u32 daddr, __u16 dport, unsigned flags, __be32 daddr, __be16 dport, unsigned flags,
struct ip_vs_dest *dest) struct ip_vs_dest *dest)
{ {
struct ip_vs_conn *cp; struct ip_vs_conn *cp;
......
...@@ -209,14 +209,14 @@ int ip_vs_make_skb_writable(struct sk_buff **pskb, int writable_len) ...@@ -209,14 +209,14 @@ int ip_vs_make_skb_writable(struct sk_buff **pskb, int writable_len)
static struct ip_vs_conn * static struct ip_vs_conn *
ip_vs_sched_persist(struct ip_vs_service *svc, ip_vs_sched_persist(struct ip_vs_service *svc,
const struct sk_buff *skb, const struct sk_buff *skb,
__u16 ports[2]) __be16 ports[2])
{ {
struct ip_vs_conn *cp = NULL; struct ip_vs_conn *cp = NULL;
struct iphdr *iph = skb->nh.iph; struct iphdr *iph = skb->nh.iph;
struct ip_vs_dest *dest; struct ip_vs_dest *dest;
struct ip_vs_conn *ct; struct ip_vs_conn *ct;
__u16 dport; /* destination port to forward */ __be16 dport; /* destination port to forward */
__u32 snet; /* source network of the client, after masking */ __be32 snet; /* source network of the client, after masking */
/* Mask saddr with the netmask to adjust template granularity */ /* Mask saddr with the netmask to adjust template granularity */
snet = iph->saddr & svc->netmask; snet = iph->saddr & svc->netmask;
...@@ -383,7 +383,7 @@ ip_vs_schedule(struct ip_vs_service *svc, const struct sk_buff *skb) ...@@ -383,7 +383,7 @@ ip_vs_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
struct ip_vs_conn *cp = NULL; struct ip_vs_conn *cp = NULL;
struct iphdr *iph = skb->nh.iph; struct iphdr *iph = skb->nh.iph;
struct ip_vs_dest *dest; struct ip_vs_dest *dest;
__u16 _ports[2], *pptr; __be16 _ports[2], *pptr;
pptr = skb_header_pointer(skb, iph->ihl*4, pptr = skb_header_pointer(skb, iph->ihl*4,
sizeof(_ports), _ports); sizeof(_ports), _ports);
...@@ -446,7 +446,7 @@ ip_vs_schedule(struct ip_vs_service *svc, const struct sk_buff *skb) ...@@ -446,7 +446,7 @@ ip_vs_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
struct ip_vs_protocol *pp) struct ip_vs_protocol *pp)
{ {
__u16 _ports[2], *pptr; __be16 _ports[2], *pptr;
struct iphdr *iph = skb->nh.iph; struct iphdr *iph = skb->nh.iph;
pptr = skb_header_pointer(skb, iph->ihl*4, pptr = skb_header_pointer(skb, iph->ihl*4,
...@@ -576,7 +576,7 @@ void ip_vs_nat_icmp(struct sk_buff *skb, struct ip_vs_protocol *pp, ...@@ -576,7 +576,7 @@ void ip_vs_nat_icmp(struct sk_buff *skb, struct ip_vs_protocol *pp,
/* the TCP/UDP port */ /* the TCP/UDP port */
if (IPPROTO_TCP == ciph->protocol || IPPROTO_UDP == ciph->protocol) { if (IPPROTO_TCP == ciph->protocol || IPPROTO_UDP == ciph->protocol) {
__u16 *ports = (void *)ciph + ciph->ihl*4; __be16 *ports = (void *)ciph + ciph->ihl*4;
if (inout) if (inout)
ports[1] = cp->vport; ports[1] = cp->vport;
...@@ -775,7 +775,7 @@ ip_vs_out(unsigned int hooknum, struct sk_buff **pskb, ...@@ -775,7 +775,7 @@ ip_vs_out(unsigned int hooknum, struct sk_buff **pskb,
if (sysctl_ip_vs_nat_icmp_send && if (sysctl_ip_vs_nat_icmp_send &&
(pp->protocol == IPPROTO_TCP || (pp->protocol == IPPROTO_TCP ||
pp->protocol == IPPROTO_UDP)) { pp->protocol == IPPROTO_UDP)) {
__u16 _ports[2], *pptr; __be16 _ports[2], *pptr;
pptr = skb_header_pointer(skb, ihl, pptr = skb_header_pointer(skb, ihl,
sizeof(_ports), _ports); sizeof(_ports), _ports);
......
...@@ -283,7 +283,7 @@ static atomic_t ip_vs_nullsvc_counter = ATOMIC_INIT(0); ...@@ -283,7 +283,7 @@ static atomic_t ip_vs_nullsvc_counter = ATOMIC_INIT(0);
* Returns hash value for virtual service * Returns hash value for virtual service
*/ */
static __inline__ unsigned static __inline__ unsigned
ip_vs_svc_hashkey(unsigned proto, __u32 addr, __u16 port) ip_vs_svc_hashkey(unsigned proto, __be32 addr, __be16 port)
{ {
register unsigned porth = ntohs(port); register unsigned porth = ntohs(port);
...@@ -365,7 +365,7 @@ static int ip_vs_svc_unhash(struct ip_vs_service *svc) ...@@ -365,7 +365,7 @@ static int ip_vs_svc_unhash(struct ip_vs_service *svc)
* Get service by {proto,addr,port} in the service table. * Get service by {proto,addr,port} in the service table.
*/ */
static __inline__ struct ip_vs_service * static __inline__ struct ip_vs_service *
__ip_vs_service_get(__u16 protocol, __u32 vaddr, __u16 vport) __ip_vs_service_get(__u16 protocol, __be32 vaddr, __be16 vport)
{ {
unsigned hash; unsigned hash;
struct ip_vs_service *svc; struct ip_vs_service *svc;
...@@ -410,7 +410,7 @@ static __inline__ struct ip_vs_service *__ip_vs_svc_fwm_get(__u32 fwmark) ...@@ -410,7 +410,7 @@ static __inline__ struct ip_vs_service *__ip_vs_svc_fwm_get(__u32 fwmark)
} }
struct ip_vs_service * struct ip_vs_service *
ip_vs_service_get(__u32 fwmark, __u16 protocol, __u32 vaddr, __u16 vport) ip_vs_service_get(__u32 fwmark, __u16 protocol, __be32 vaddr, __be16 vport)
{ {
struct ip_vs_service *svc; struct ip_vs_service *svc;
...@@ -480,7 +480,7 @@ __ip_vs_unbind_svc(struct ip_vs_dest *dest) ...@@ -480,7 +480,7 @@ __ip_vs_unbind_svc(struct ip_vs_dest *dest)
/* /*
* Returns hash value for real service * Returns hash value for real service
*/ */
static __inline__ unsigned ip_vs_rs_hashkey(__u32 addr, __u16 port) static __inline__ unsigned ip_vs_rs_hashkey(__be32 addr, __be16 port)
{ {
register unsigned porth = ntohs(port); register unsigned porth = ntohs(port);
...@@ -531,7 +531,7 @@ static int ip_vs_rs_unhash(struct ip_vs_dest *dest) ...@@ -531,7 +531,7 @@ static int ip_vs_rs_unhash(struct ip_vs_dest *dest)
* Lookup real service by <proto,addr,port> in the real service table. * Lookup real service by <proto,addr,port> in the real service table.
*/ */
struct ip_vs_dest * struct ip_vs_dest *
ip_vs_lookup_real_service(__u16 protocol, __u32 daddr, __u16 dport) ip_vs_lookup_real_service(__u16 protocol, __be32 daddr, __be16 dport)
{ {
unsigned hash; unsigned hash;
struct ip_vs_dest *dest; struct ip_vs_dest *dest;
...@@ -562,7 +562,7 @@ ip_vs_lookup_real_service(__u16 protocol, __u32 daddr, __u16 dport) ...@@ -562,7 +562,7 @@ ip_vs_lookup_real_service(__u16 protocol, __u32 daddr, __u16 dport)
* Lookup destination by {addr,port} in the given service * Lookup destination by {addr,port} in the given service
*/ */
static struct ip_vs_dest * static struct ip_vs_dest *
ip_vs_lookup_dest(struct ip_vs_service *svc, __u32 daddr, __u16 dport) ip_vs_lookup_dest(struct ip_vs_service *svc, __be32 daddr, __be16 dport)
{ {
struct ip_vs_dest *dest; struct ip_vs_dest *dest;
...@@ -591,7 +591,7 @@ ip_vs_lookup_dest(struct ip_vs_service *svc, __u32 daddr, __u16 dport) ...@@ -591,7 +591,7 @@ ip_vs_lookup_dest(struct ip_vs_service *svc, __u32 daddr, __u16 dport)
* scheduling. * scheduling.
*/ */
static struct ip_vs_dest * static struct ip_vs_dest *
ip_vs_trash_get_dest(struct ip_vs_service *svc, __u32 daddr, __u16 dport) ip_vs_trash_get_dest(struct ip_vs_service *svc, __be32 daddr, __be16 dport)
{ {
struct ip_vs_dest *dest, *nxt; struct ip_vs_dest *dest, *nxt;
...@@ -773,8 +773,8 @@ static int ...@@ -773,8 +773,8 @@ static int
ip_vs_add_dest(struct ip_vs_service *svc, struct ip_vs_dest_user *udest) ip_vs_add_dest(struct ip_vs_service *svc, struct ip_vs_dest_user *udest)
{ {
struct ip_vs_dest *dest; struct ip_vs_dest *dest;
__u32 daddr = udest->addr; __be32 daddr = udest->addr;
__u16 dport = udest->port; __be16 dport = udest->port;
int ret; int ret;
EnterFunction(2); EnterFunction(2);
...@@ -879,8 +879,8 @@ static int ...@@ -879,8 +879,8 @@ static int
ip_vs_edit_dest(struct ip_vs_service *svc, struct ip_vs_dest_user *udest) ip_vs_edit_dest(struct ip_vs_service *svc, struct ip_vs_dest_user *udest)
{ {
struct ip_vs_dest *dest; struct ip_vs_dest *dest;
__u32 daddr = udest->addr; __be32 daddr = udest->addr;
__u16 dport = udest->port; __be16 dport = udest->port;
EnterFunction(2); EnterFunction(2);
...@@ -991,8 +991,8 @@ static int ...@@ -991,8 +991,8 @@ static int
ip_vs_del_dest(struct ip_vs_service *svc,struct ip_vs_dest_user *udest) ip_vs_del_dest(struct ip_vs_service *svc,struct ip_vs_dest_user *udest)
{ {
struct ip_vs_dest *dest; struct ip_vs_dest *dest;
__u32 daddr = udest->addr; __be32 daddr = udest->addr;
__u16 dport = udest->port; __be16 dport = udest->port;
EnterFunction(2); EnterFunction(2);
......
...@@ -66,7 +66,7 @@ struct ip_vs_dh_bucket { ...@@ -66,7 +66,7 @@ struct ip_vs_dh_bucket {
/* /*
* Returns hash value for IPVS DH entry * Returns hash value for IPVS DH entry
*/ */
static inline unsigned ip_vs_dh_hashkey(__u32 addr) static inline unsigned ip_vs_dh_hashkey(__be32 addr)
{ {
return (ntohl(addr)*2654435761UL) & IP_VS_DH_TAB_MASK; return (ntohl(addr)*2654435761UL) & IP_VS_DH_TAB_MASK;
} }
...@@ -76,7 +76,7 @@ static inline unsigned ip_vs_dh_hashkey(__u32 addr) ...@@ -76,7 +76,7 @@ static inline unsigned ip_vs_dh_hashkey(__u32 addr)
* Get ip_vs_dest associated with supplied parameters. * Get ip_vs_dest associated with supplied parameters.
*/ */
static inline struct ip_vs_dest * static inline struct ip_vs_dest *
ip_vs_dh_get(struct ip_vs_dh_bucket *tbl, __u32 addr) ip_vs_dh_get(struct ip_vs_dh_bucket *tbl, __be32 addr)
{ {
return (tbl[ip_vs_dh_hashkey(addr)]).dest; return (tbl[ip_vs_dh_hashkey(addr)]).dest;
} }
......
...@@ -74,7 +74,7 @@ ip_vs_ftp_done_conn(struct ip_vs_app *app, struct ip_vs_conn *cp) ...@@ -74,7 +74,7 @@ ip_vs_ftp_done_conn(struct ip_vs_app *app, struct ip_vs_conn *cp)
*/ */
static int ip_vs_ftp_get_addrport(char *data, char *data_limit, static int ip_vs_ftp_get_addrport(char *data, char *data_limit,
const char *pattern, size_t plen, char term, const char *pattern, size_t plen, char term,
__u32 *addr, __u16 *port, __be32 *addr, __be16 *port,
char **start, char **end) char **start, char **end)
{ {
unsigned char p[6]; unsigned char p[6];
...@@ -140,8 +140,8 @@ static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp, ...@@ -140,8 +140,8 @@ static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp,
struct tcphdr *th; struct tcphdr *th;
char *data, *data_limit; char *data, *data_limit;
char *start, *end; char *start, *end;
__u32 from; __be32 from;
__u16 port; __be16 port;
struct ip_vs_conn *n_cp; struct ip_vs_conn *n_cp;
char buf[24]; /* xxx.xxx.xxx.xxx,ppp,ppp\000 */ char buf[24]; /* xxx.xxx.xxx.xxx,ppp,ppp\000 */
unsigned buf_len; unsigned buf_len;
...@@ -199,7 +199,7 @@ static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp, ...@@ -199,7 +199,7 @@ static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp,
from = n_cp->vaddr; from = n_cp->vaddr;
port = n_cp->vport; port = n_cp->vport;
sprintf(buf,"%d,%d,%d,%d,%d,%d", NIPQUAD(from), sprintf(buf,"%d,%d,%d,%d,%d,%d", NIPQUAD(from),
port&255, (port>>8)&255); ntohs(port)&255, (ntohs(port)>>8)&255);
buf_len = strlen(buf); buf_len = strlen(buf);
/* /*
...@@ -243,8 +243,8 @@ static int ip_vs_ftp_in(struct ip_vs_app *app, struct ip_vs_conn *cp, ...@@ -243,8 +243,8 @@ static int ip_vs_ftp_in(struct ip_vs_app *app, struct ip_vs_conn *cp,
struct tcphdr *th; struct tcphdr *th;
char *data, *data_start, *data_limit; char *data, *data_start, *data_limit;
char *start, *end; char *start, *end;
__u32 to; __be32 to;
__u16 port; __be16 port;
struct ip_vs_conn *n_cp; struct ip_vs_conn *n_cp;
/* no diff required for incoming packets */ /* no diff required for incoming packets */
......
...@@ -87,7 +87,7 @@ static int sysctl_ip_vs_lblc_expiration = 24*60*60*HZ; ...@@ -87,7 +87,7 @@ static int sysctl_ip_vs_lblc_expiration = 24*60*60*HZ;
*/ */
struct ip_vs_lblc_entry { struct ip_vs_lblc_entry {
struct list_head list; struct list_head list;
__u32 addr; /* destination IP address */ __be32 addr; /* destination IP address */
struct ip_vs_dest *dest; /* real server (cache) */ struct ip_vs_dest *dest; /* real server (cache) */
unsigned long lastuse; /* last used time */ unsigned long lastuse; /* last used time */
}; };
...@@ -160,7 +160,7 @@ static struct ctl_table_header * sysctl_header; ...@@ -160,7 +160,7 @@ static struct ctl_table_header * sysctl_header;
* IP address to a server. * IP address to a server.
*/ */
static inline struct ip_vs_lblc_entry * static inline struct ip_vs_lblc_entry *
ip_vs_lblc_new(__u32 daddr, struct ip_vs_dest *dest) ip_vs_lblc_new(__be32 daddr, struct ip_vs_dest *dest)
{ {
struct ip_vs_lblc_entry *en; struct ip_vs_lblc_entry *en;
...@@ -195,7 +195,7 @@ static inline void ip_vs_lblc_free(struct ip_vs_lblc_entry *en) ...@@ -195,7 +195,7 @@ static inline void ip_vs_lblc_free(struct ip_vs_lblc_entry *en)
/* /*
* Returns hash value for IPVS LBLC entry * Returns hash value for IPVS LBLC entry
*/ */
static inline unsigned ip_vs_lblc_hashkey(__u32 addr) static inline unsigned ip_vs_lblc_hashkey(__be32 addr)
{ {
return (ntohl(addr)*2654435761UL) & IP_VS_LBLC_TAB_MASK; return (ntohl(addr)*2654435761UL) & IP_VS_LBLC_TAB_MASK;
} }
...@@ -234,7 +234,7 @@ ip_vs_lblc_hash(struct ip_vs_lblc_table *tbl, struct ip_vs_lblc_entry *en) ...@@ -234,7 +234,7 @@ ip_vs_lblc_hash(struct ip_vs_lblc_table *tbl, struct ip_vs_lblc_entry *en)
* Get ip_vs_lblc_entry associated with supplied parameters. * Get ip_vs_lblc_entry associated with supplied parameters.
*/ */
static inline struct ip_vs_lblc_entry * static inline struct ip_vs_lblc_entry *
ip_vs_lblc_get(struct ip_vs_lblc_table *tbl, __u32 addr) ip_vs_lblc_get(struct ip_vs_lblc_table *tbl, __be32 addr)
{ {
unsigned hash; unsigned hash;
struct ip_vs_lblc_entry *en; struct ip_vs_lblc_entry *en;
......
...@@ -276,7 +276,7 @@ static inline struct ip_vs_dest *ip_vs_dest_set_max(struct ip_vs_dest_set *set) ...@@ -276,7 +276,7 @@ static inline struct ip_vs_dest *ip_vs_dest_set_max(struct ip_vs_dest_set *set)
*/ */
struct ip_vs_lblcr_entry { struct ip_vs_lblcr_entry {
struct list_head list; struct list_head list;
__u32 addr; /* destination IP address */ __be32 addr; /* destination IP address */
struct ip_vs_dest_set set; /* destination server set */ struct ip_vs_dest_set set; /* destination server set */
unsigned long lastuse; /* last used time */ unsigned long lastuse; /* last used time */
}; };
...@@ -348,7 +348,7 @@ static struct ctl_table_header * sysctl_header; ...@@ -348,7 +348,7 @@ static struct ctl_table_header * sysctl_header;
* new/free a ip_vs_lblcr_entry, which is a mapping of a destination * new/free a ip_vs_lblcr_entry, which is a mapping of a destination
* IP address to a server. * IP address to a server.
*/ */
static inline struct ip_vs_lblcr_entry *ip_vs_lblcr_new(__u32 daddr) static inline struct ip_vs_lblcr_entry *ip_vs_lblcr_new(__be32 daddr)
{ {
struct ip_vs_lblcr_entry *en; struct ip_vs_lblcr_entry *en;
...@@ -381,7 +381,7 @@ static inline void ip_vs_lblcr_free(struct ip_vs_lblcr_entry *en) ...@@ -381,7 +381,7 @@ static inline void ip_vs_lblcr_free(struct ip_vs_lblcr_entry *en)
/* /*
* Returns hash value for IPVS LBLCR entry * Returns hash value for IPVS LBLCR entry
*/ */
static inline unsigned ip_vs_lblcr_hashkey(__u32 addr) static inline unsigned ip_vs_lblcr_hashkey(__be32 addr)
{ {
return (ntohl(addr)*2654435761UL) & IP_VS_LBLCR_TAB_MASK; return (ntohl(addr)*2654435761UL) & IP_VS_LBLCR_TAB_MASK;
} }
...@@ -420,7 +420,7 @@ ip_vs_lblcr_hash(struct ip_vs_lblcr_table *tbl, struct ip_vs_lblcr_entry *en) ...@@ -420,7 +420,7 @@ ip_vs_lblcr_hash(struct ip_vs_lblcr_table *tbl, struct ip_vs_lblcr_entry *en)
* Get ip_vs_lblcr_entry associated with supplied parameters. * Get ip_vs_lblcr_entry associated with supplied parameters.
*/ */
static inline struct ip_vs_lblcr_entry * static inline struct ip_vs_lblcr_entry *
ip_vs_lblcr_get(struct ip_vs_lblcr_table *tbl, __u32 addr) ip_vs_lblcr_get(struct ip_vs_lblcr_table *tbl, __be32 addr)
{ {
unsigned hash; unsigned hash;
struct ip_vs_lblcr_entry *en; struct ip_vs_lblcr_entry *en;
......
...@@ -176,7 +176,7 @@ ip_vs_tcpudp_debug_packet(struct ip_vs_protocol *pp, ...@@ -176,7 +176,7 @@ ip_vs_tcpudp_debug_packet(struct ip_vs_protocol *pp,
pp->name, NIPQUAD(ih->saddr), pp->name, NIPQUAD(ih->saddr),
NIPQUAD(ih->daddr)); NIPQUAD(ih->daddr));
else { else {
__u16 _ports[2], *pptr __be16 _ports[2], *pptr
; ;
pptr = skb_header_pointer(skb, offset + ih->ihl*4, pptr = skb_header_pointer(skb, offset + ih->ihl*4,
sizeof(_ports), _ports); sizeof(_ports), _ports);
......
...@@ -29,7 +29,7 @@ static struct ip_vs_conn * ...@@ -29,7 +29,7 @@ static struct ip_vs_conn *
tcp_conn_in_get(const struct sk_buff *skb, struct ip_vs_protocol *pp, tcp_conn_in_get(const struct sk_buff *skb, struct ip_vs_protocol *pp,
const struct iphdr *iph, unsigned int proto_off, int inverse) const struct iphdr *iph, unsigned int proto_off, int inverse)
{ {
__u16 _ports[2], *pptr; __be16 _ports[2], *pptr;
pptr = skb_header_pointer(skb, proto_off, sizeof(_ports), _ports); pptr = skb_header_pointer(skb, proto_off, sizeof(_ports), _ports);
if (pptr == NULL) if (pptr == NULL)
...@@ -50,7 +50,7 @@ static struct ip_vs_conn * ...@@ -50,7 +50,7 @@ static struct ip_vs_conn *
tcp_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp, tcp_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp,
const struct iphdr *iph, unsigned int proto_off, int inverse) const struct iphdr *iph, unsigned int proto_off, int inverse)
{ {
__u16 _ports[2], *pptr; __be16 _ports[2], *pptr;
pptr = skb_header_pointer(skb, proto_off, sizeof(_ports), _ports); pptr = skb_header_pointer(skb, proto_off, sizeof(_ports), _ports);
if (pptr == NULL) if (pptr == NULL)
...@@ -112,12 +112,12 @@ tcp_conn_schedule(struct sk_buff *skb, ...@@ -112,12 +112,12 @@ tcp_conn_schedule(struct sk_buff *skb,
static inline void static inline void
tcp_fast_csum_update(struct tcphdr *tcph, u32 oldip, u32 newip, tcp_fast_csum_update(struct tcphdr *tcph, __be32 oldip, __be32 newip,
u16 oldport, u16 newport) __be16 oldport, __be16 newport)
{ {
tcph->check = tcph->check =
ip_vs_check_diff(~oldip, newip, ip_vs_check_diff(~oldip, newip,
ip_vs_check_diff(oldport ^ 0xFFFF, ip_vs_check_diff(oldport ^ htonl(0xFFFF),
newport, tcph->check)); newport, tcph->check));
} }
......
...@@ -29,7 +29,7 @@ udp_conn_in_get(const struct sk_buff *skb, struct ip_vs_protocol *pp, ...@@ -29,7 +29,7 @@ udp_conn_in_get(const struct sk_buff *skb, struct ip_vs_protocol *pp,
const struct iphdr *iph, unsigned int proto_off, int inverse) const struct iphdr *iph, unsigned int proto_off, int inverse)
{ {
struct ip_vs_conn *cp; struct ip_vs_conn *cp;
__u16 _ports[2], *pptr; __be16 _ports[2], *pptr;
pptr = skb_header_pointer(skb, proto_off, sizeof(_ports), _ports); pptr = skb_header_pointer(skb, proto_off, sizeof(_ports), _ports);
if (pptr == NULL) if (pptr == NULL)
...@@ -54,7 +54,7 @@ udp_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp, ...@@ -54,7 +54,7 @@ udp_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp,
const struct iphdr *iph, unsigned int proto_off, int inverse) const struct iphdr *iph, unsigned int proto_off, int inverse)
{ {
struct ip_vs_conn *cp; struct ip_vs_conn *cp;
__u16 _ports[2], *pptr; __be16 _ports[2], *pptr;
pptr = skb_header_pointer(skb, skb->nh.iph->ihl*4, pptr = skb_header_pointer(skb, skb->nh.iph->ihl*4,
sizeof(_ports), _ports); sizeof(_ports), _ports);
...@@ -117,15 +117,15 @@ udp_conn_schedule(struct sk_buff *skb, struct ip_vs_protocol *pp, ...@@ -117,15 +117,15 @@ udp_conn_schedule(struct sk_buff *skb, struct ip_vs_protocol *pp,
static inline void static inline void
udp_fast_csum_update(struct udphdr *uhdr, u32 oldip, u32 newip, udp_fast_csum_update(struct udphdr *uhdr, __be32 oldip, __be32 newip,
u16 oldport, u16 newport) __be16 oldport, __be16 newport)
{ {
uhdr->check = uhdr->check =
ip_vs_check_diff(~oldip, newip, ip_vs_check_diff(~oldip, newip,
ip_vs_check_diff(oldport ^ 0xFFFF, ip_vs_check_diff(oldport ^ htonl(0xFFFF),
newport, uhdr->check)); newport, uhdr->check));
if (!uhdr->check) if (!uhdr->check)
uhdr->check = 0xFFFF; uhdr->check = htonl(0xFFFF);
} }
static int static int
...@@ -173,7 +173,7 @@ udp_snat_handler(struct sk_buff **pskb, ...@@ -173,7 +173,7 @@ udp_snat_handler(struct sk_buff **pskb,
cp->protocol, cp->protocol,
(*pskb)->csum); (*pskb)->csum);
if (udph->check == 0) if (udph->check == 0)
udph->check = 0xFFFF; udph->check = htonl(0xFFFF);
IP_VS_DBG(11, "O-pkt: %s O-csum=%d (+%zd)\n", IP_VS_DBG(11, "O-pkt: %s O-csum=%d (+%zd)\n",
pp->name, udph->check, pp->name, udph->check,
(char*)&(udph->check) - (char*)udph); (char*)&(udph->check) - (char*)udph);
......
...@@ -63,7 +63,7 @@ struct ip_vs_sh_bucket { ...@@ -63,7 +63,7 @@ struct ip_vs_sh_bucket {
/* /*
* Returns hash value for IPVS SH entry * Returns hash value for IPVS SH entry
*/ */
static inline unsigned ip_vs_sh_hashkey(__u32 addr) static inline unsigned ip_vs_sh_hashkey(__be32 addr)
{ {
return (ntohl(addr)*2654435761UL) & IP_VS_SH_TAB_MASK; return (ntohl(addr)*2654435761UL) & IP_VS_SH_TAB_MASK;
} }
...@@ -73,7 +73,7 @@ static inline unsigned ip_vs_sh_hashkey(__u32 addr) ...@@ -73,7 +73,7 @@ static inline unsigned ip_vs_sh_hashkey(__u32 addr)
* Get ip_vs_dest associated with supplied parameters. * Get ip_vs_dest associated with supplied parameters.
*/ */
static inline struct ip_vs_dest * static inline struct ip_vs_dest *
ip_vs_sh_get(struct ip_vs_sh_bucket *tbl, __u32 addr) ip_vs_sh_get(struct ip_vs_sh_bucket *tbl, __be32 addr)
{ {
return (tbl[ip_vs_sh_hashkey(addr)]).dest; return (tbl[ip_vs_sh_hashkey(addr)]).dest;
} }
......
...@@ -48,16 +48,16 @@ struct ip_vs_sync_conn { ...@@ -48,16 +48,16 @@ struct ip_vs_sync_conn {
/* Protocol, addresses and port numbers */ /* Protocol, addresses and port numbers */
__u8 protocol; /* Which protocol (TCP/UDP) */ __u8 protocol; /* Which protocol (TCP/UDP) */
__u16 cport; __be16 cport;
__u16 vport; __be16 vport;
__u16 dport; __be16 dport;
__u32 caddr; /* client address */ __be32 caddr; /* client address */
__u32 vaddr; /* virtual address */ __be32 vaddr; /* virtual address */
__u32 daddr; /* destination address */ __be32 daddr; /* destination address */
/* Flags and state transition */ /* Flags and state transition */
__u16 flags; /* status flags */ __be16 flags; /* status flags */
__u16 state; /* state info */ __be16 state; /* state info */
/* The sequence options start here */ /* The sequence options start here */
}; };
......
...@@ -232,7 +232,7 @@ ip_vs_nat_xmit(struct sk_buff *skb, struct ip_vs_conn *cp, ...@@ -232,7 +232,7 @@ ip_vs_nat_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
/* check if it is a connection of no-client-port */ /* check if it is a connection of no-client-port */
if (unlikely(cp->flags & IP_VS_CONN_F_NO_CPORT)) { if (unlikely(cp->flags & IP_VS_CONN_F_NO_CPORT)) {
__u16 _pt, *p; __be16 _pt, *p;
p = skb_header_pointer(skb, iph->ihl*4, sizeof(_pt), &_pt); p = skb_header_pointer(skb, iph->ihl*4, sizeof(_pt), &_pt);
if (p == NULL) if (p == NULL)
goto tx_error; goto tx_error;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment