mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
[IPVS]: ipvs annotations
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d4263cde88
commit
014d730d56
@ -100,22 +100,22 @@
|
||||
struct ip_vs_service_user {
|
||||
/* virtual service addresses */
|
||||
u_int16_t protocol;
|
||||
u_int32_t addr; /* virtual ip address */
|
||||
u_int16_t port;
|
||||
__be32 addr; /* virtual ip address */
|
||||
__be16 port;
|
||||
u_int32_t fwmark; /* firwall mark of service */
|
||||
|
||||
/* virtual service options */
|
||||
char sched_name[IP_VS_SCHEDNAME_MAXLEN];
|
||||
unsigned flags; /* virtual service flags */
|
||||
unsigned timeout; /* persistent timeout in sec */
|
||||
u_int32_t netmask; /* persistent netmask */
|
||||
__be32 netmask; /* persistent netmask */
|
||||
};
|
||||
|
||||
|
||||
struct ip_vs_dest_user {
|
||||
/* destination server address */
|
||||
u_int32_t addr;
|
||||
u_int16_t port;
|
||||
__be32 addr;
|
||||
__be16 port;
|
||||
|
||||
/* real server options */
|
||||
unsigned conn_flags; /* connection flags */
|
||||
@ -163,15 +163,15 @@ struct ip_vs_getinfo {
|
||||
struct ip_vs_service_entry {
|
||||
/* which service: user fills in these */
|
||||
u_int16_t protocol;
|
||||
u_int32_t addr; /* virtual address */
|
||||
u_int16_t port;
|
||||
__be32 addr; /* virtual address */
|
||||
__be16 port;
|
||||
u_int32_t fwmark; /* firwall mark of service */
|
||||
|
||||
/* service options */
|
||||
char sched_name[IP_VS_SCHEDNAME_MAXLEN];
|
||||
unsigned flags; /* virtual service flags */
|
||||
unsigned timeout; /* persistent timeout */
|
||||
u_int32_t netmask; /* persistent netmask */
|
||||
__be32 netmask; /* persistent netmask */
|
||||
|
||||
/* number of real servers */
|
||||
unsigned int num_dests;
|
||||
@ -182,8 +182,8 @@ struct ip_vs_service_entry {
|
||||
|
||||
|
||||
struct ip_vs_dest_entry {
|
||||
u_int32_t addr; /* destination address */
|
||||
u_int16_t port;
|
||||
__be32 addr; /* destination address */
|
||||
__be16 port;
|
||||
unsigned conn_flags; /* connection flags */
|
||||
int weight; /* destination weight */
|
||||
|
||||
@ -203,8 +203,8 @@ struct ip_vs_dest_entry {
|
||||
struct ip_vs_get_dests {
|
||||
/* which service: user fills in these */
|
||||
u_int16_t protocol;
|
||||
u_int32_t addr; /* virtual address */
|
||||
u_int16_t port;
|
||||
__be32 addr; /* virtual address */
|
||||
__be16 port;
|
||||
u_int32_t fwmark; /* firwall mark of service */
|
||||
|
||||
/* number of real servers */
|
||||
@ -502,12 +502,12 @@ struct ip_vs_conn {
|
||||
struct list_head c_list; /* hashed list heads */
|
||||
|
||||
/* Protocol, addresses and port numbers */
|
||||
__u32 caddr; /* client address */
|
||||
__u32 vaddr; /* virtual address */
|
||||
__u32 daddr; /* destination address */
|
||||
__u16 cport;
|
||||
__u16 vport;
|
||||
__u16 dport;
|
||||
__be32 caddr; /* client address */
|
||||
__be32 vaddr; /* virtual address */
|
||||
__be32 daddr; /* destination address */
|
||||
__be16 cport;
|
||||
__be16 vport;
|
||||
__be16 dport;
|
||||
__u16 protocol; /* Which protocol (TCP/UDP) */
|
||||
|
||||
/* counter and timer */
|
||||
@ -554,12 +554,12 @@ struct ip_vs_service {
|
||||
atomic_t usecnt; /* use counter */
|
||||
|
||||
__u16 protocol; /* which protocol (TCP/UDP) */
|
||||
__u32 addr; /* IP address for virtual service */
|
||||
__u16 port; /* port number for the service */
|
||||
__be32 addr; /* IP address for virtual service */
|
||||
__be16 port; /* port number for the service */
|
||||
__u32 fwmark; /* firewall mark of the service */
|
||||
unsigned flags; /* service status flags */
|
||||
unsigned timeout; /* persistent timeout in ticks */
|
||||
__u32 netmask; /* grouping granularity */
|
||||
__be32 netmask; /* grouping granularity */
|
||||
|
||||
struct list_head destinations; /* real server d-linked list */
|
||||
__u32 num_dests; /* number of servers */
|
||||
@ -581,8 +581,8 @@ struct ip_vs_dest {
|
||||
struct list_head n_list; /* for the dests in the service */
|
||||
struct list_head d_list; /* for table with all the dests */
|
||||
|
||||
__u32 addr; /* IP address of the server */
|
||||
__u16 port; /* port number of the server */
|
||||
__be32 addr; /* IP address of the server */
|
||||
__be16 port; /* port number of the server */
|
||||
volatile unsigned flags; /* dest status flags */
|
||||
atomic_t conn_flags; /* flags to copy to conn */
|
||||
atomic_t weight; /* server weight */
|
||||
@ -605,8 +605,8 @@ struct ip_vs_dest {
|
||||
/* for virtual service */
|
||||
struct ip_vs_service *svc; /* service it belongs to */
|
||||
__u16 protocol; /* which protocol (TCP/UDP) */
|
||||
__u32 vaddr; /* virtual IP address */
|
||||
__u16 vport; /* virtual port number */
|
||||
__be32 vaddr; /* virtual IP address */
|
||||
__be16 vport; /* virtual port number */
|
||||
__u32 vfwmark; /* firewall mark of service */
|
||||
};
|
||||
|
||||
@ -648,7 +648,7 @@ struct ip_vs_app
|
||||
/* members for application incarnations */
|
||||
struct list_head p_list; /* member in proto app list */
|
||||
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 */
|
||||
|
||||
/* output hook: return false if can't linearize. diff set for TCP. */
|
||||
@ -740,11 +740,11 @@ enum {
|
||||
};
|
||||
|
||||
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
|
||||
(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
|
||||
(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 */
|
||||
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);
|
||||
}
|
||||
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 *
|
||||
ip_vs_conn_new(int proto, __u32 caddr, __u16 cport, __u32 vaddr, __u16 vport,
|
||||
__u32 daddr, __u16 dport, unsigned flags,
|
||||
ip_vs_conn_new(int proto, __be32 caddr, __be16 cport, __be32 vaddr, __be16 vport,
|
||||
__be32 daddr, __be16 dport, unsigned flags,
|
||||
struct ip_vs_dest *dest);
|
||||
extern void ip_vs_conn_expire_now(struct ip_vs_conn *cp);
|
||||
|
||||
@ -887,7 +887,7 @@ extern int sysctl_ip_vs_nat_icmp_send;
|
||||
extern struct ip_vs_stats ip_vs_stats;
|
||||
|
||||
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)
|
||||
{
|
||||
@ -895,7 +895,7 @@ static inline void ip_vs_service_put(struct ip_vs_service *svc)
|
||||
}
|
||||
|
||||
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 void ip_vs_use_count_dec(void);
|
||||
extern int ip_vs_control_init(void);
|
||||
|
@ -115,9 +115,9 @@ static inline void ct_write_unlock_bh(unsigned key)
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
|
||||
@ -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)
|
||||
*/
|
||||
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;
|
||||
struct ip_vs_conn *cp;
|
||||
@ -215,7 +215,7 @@ static inline 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;
|
||||
|
||||
@ -234,7 +234,7 @@ struct ip_vs_conn *ip_vs_conn_in_get
|
||||
|
||||
/* Get reference to connection template */
|
||||
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;
|
||||
struct ip_vs_conn *cp;
|
||||
@ -274,7 +274,7 @@ struct ip_vs_conn *ip_vs_ct_in_get
|
||||
* d_addr, d_port: pkt dest address (foreign host)
|
||||
*/
|
||||
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;
|
||||
struct ip_vs_conn *cp, *ret=NULL;
|
||||
@ -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
|
||||
*/
|
||||
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)) {
|
||||
spin_lock(&cp->lock);
|
||||
@ -508,10 +508,10 @@ int ip_vs_check_template(struct ip_vs_conn *ct)
|
||||
/*
|
||||
* Invalidate the connection template
|
||||
*/
|
||||
if (ct->vport != 65535) {
|
||||
if (ct->vport != htons(0xffff)) {
|
||||
if (ip_vs_conn_unhash(ct)) {
|
||||
ct->dport = 65535;
|
||||
ct->vport = 65535;
|
||||
ct->dport = htons(0xffff);
|
||||
ct->vport = htons(0xffff);
|
||||
ct->cport = 0;
|
||||
ip_vs_conn_hash(ct);
|
||||
}
|
||||
@ -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
|
||||
*/
|
||||
struct ip_vs_conn *
|
||||
ip_vs_conn_new(int proto, __u32 caddr, __u16 cport, __u32 vaddr, __u16 vport,
|
||||
__u32 daddr, __u16 dport, unsigned flags,
|
||||
ip_vs_conn_new(int proto, __be32 caddr, __be16 cport, __be32 vaddr, __be16 vport,
|
||||
__be32 daddr, __be16 dport, unsigned flags,
|
||||
struct ip_vs_dest *dest)
|
||||
{
|
||||
struct ip_vs_conn *cp;
|
||||
|
@ -209,14 +209,14 @@ int ip_vs_make_skb_writable(struct sk_buff **pskb, int writable_len)
|
||||
static struct ip_vs_conn *
|
||||
ip_vs_sched_persist(struct ip_vs_service *svc,
|
||||
const struct sk_buff *skb,
|
||||
__u16 ports[2])
|
||||
__be16 ports[2])
|
||||
{
|
||||
struct ip_vs_conn *cp = NULL;
|
||||
struct iphdr *iph = skb->nh.iph;
|
||||
struct ip_vs_dest *dest;
|
||||
struct ip_vs_conn *ct;
|
||||
__u16 dport; /* destination port to forward */
|
||||
__u32 snet; /* source network of the client, after masking */
|
||||
__be16 dport; /* destination port to forward */
|
||||
__be32 snet; /* source network of the client, after masking */
|
||||
|
||||
/* Mask saddr with the netmask to adjust template granularity */
|
||||
snet = iph->saddr & svc->netmask;
|
||||
@ -383,7 +383,7 @@ ip_vs_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||
struct ip_vs_conn *cp = NULL;
|
||||
struct iphdr *iph = skb->nh.iph;
|
||||
struct ip_vs_dest *dest;
|
||||
__u16 _ports[2], *pptr;
|
||||
__be16 _ports[2], *pptr;
|
||||
|
||||
pptr = skb_header_pointer(skb, iph->ihl*4,
|
||||
sizeof(_ports), _ports);
|
||||
@ -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,
|
||||
struct ip_vs_protocol *pp)
|
||||
{
|
||||
__u16 _ports[2], *pptr;
|
||||
__be16 _ports[2], *pptr;
|
||||
struct iphdr *iph = skb->nh.iph;
|
||||
|
||||
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,
|
||||
|
||||
/* the TCP/UDP port */
|
||||
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)
|
||||
ports[1] = cp->vport;
|
||||
@ -775,7 +775,7 @@ ip_vs_out(unsigned int hooknum, struct sk_buff **pskb,
|
||||
if (sysctl_ip_vs_nat_icmp_send &&
|
||||
(pp->protocol == IPPROTO_TCP ||
|
||||
pp->protocol == IPPROTO_UDP)) {
|
||||
__u16 _ports[2], *pptr;
|
||||
__be16 _ports[2], *pptr;
|
||||
|
||||
pptr = skb_header_pointer(skb, ihl,
|
||||
sizeof(_ports), _ports);
|
||||
|
@ -283,7 +283,7 @@ static atomic_t ip_vs_nullsvc_counter = ATOMIC_INIT(0);
|
||||
* Returns hash value for virtual service
|
||||
*/
|
||||
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);
|
||||
|
||||
@ -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.
|
||||
*/
|
||||
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;
|
||||
struct ip_vs_service *svc;
|
||||
@ -410,7 +410,7 @@ static __inline__ struct ip_vs_service *__ip_vs_svc_fwm_get(__u32 fwmark)
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
@ -480,7 +480,7 @@ __ip_vs_unbind_svc(struct ip_vs_dest *dest)
|
||||
/*
|
||||
* 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);
|
||||
|
||||
@ -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.
|
||||
*/
|
||||
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;
|
||||
struct ip_vs_dest *dest;
|
||||
@ -562,7 +562,7 @@ ip_vs_lookup_real_service(__u16 protocol, __u32 daddr, __u16 dport)
|
||||
* Lookup destination by {addr,port} in the given service
|
||||
*/
|
||||
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;
|
||||
|
||||
@ -591,7 +591,7 @@ ip_vs_lookup_dest(struct ip_vs_service *svc, __u32 daddr, __u16 dport)
|
||||
* scheduling.
|
||||
*/
|
||||
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;
|
||||
|
||||
@ -773,8 +773,8 @@ static int
|
||||
ip_vs_add_dest(struct ip_vs_service *svc, struct ip_vs_dest_user *udest)
|
||||
{
|
||||
struct ip_vs_dest *dest;
|
||||
__u32 daddr = udest->addr;
|
||||
__u16 dport = udest->port;
|
||||
__be32 daddr = udest->addr;
|
||||
__be16 dport = udest->port;
|
||||
int ret;
|
||||
|
||||
EnterFunction(2);
|
||||
@ -879,8 +879,8 @@ static int
|
||||
ip_vs_edit_dest(struct ip_vs_service *svc, struct ip_vs_dest_user *udest)
|
||||
{
|
||||
struct ip_vs_dest *dest;
|
||||
__u32 daddr = udest->addr;
|
||||
__u16 dport = udest->port;
|
||||
__be32 daddr = udest->addr;
|
||||
__be16 dport = udest->port;
|
||||
|
||||
EnterFunction(2);
|
||||
|
||||
@ -991,8 +991,8 @@ static int
|
||||
ip_vs_del_dest(struct ip_vs_service *svc,struct ip_vs_dest_user *udest)
|
||||
{
|
||||
struct ip_vs_dest *dest;
|
||||
__u32 daddr = udest->addr;
|
||||
__u16 dport = udest->port;
|
||||
__be32 daddr = udest->addr;
|
||||
__be16 dport = udest->port;
|
||||
|
||||
EnterFunction(2);
|
||||
|
||||
|
@ -66,7 +66,7 @@ struct ip_vs_dh_bucket {
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
@ -76,7 +76,7 @@ static inline unsigned ip_vs_dh_hashkey(__u32 addr)
|
||||
* Get ip_vs_dest associated with supplied parameters.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
@ -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,
|
||||
const char *pattern, size_t plen, char term,
|
||||
__u32 *addr, __u16 *port,
|
||||
__be32 *addr, __be16 *port,
|
||||
char **start, char **end)
|
||||
{
|
||||
unsigned char p[6];
|
||||
@ -140,8 +140,8 @@ static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp,
|
||||
struct tcphdr *th;
|
||||
char *data, *data_limit;
|
||||
char *start, *end;
|
||||
__u32 from;
|
||||
__u16 port;
|
||||
__be32 from;
|
||||
__be16 port;
|
||||
struct ip_vs_conn *n_cp;
|
||||
char buf[24]; /* xxx.xxx.xxx.xxx,ppp,ppp\000 */
|
||||
unsigned buf_len;
|
||||
@ -199,7 +199,7 @@ static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp,
|
||||
from = n_cp->vaddr;
|
||||
port = n_cp->vport;
|
||||
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);
|
||||
|
||||
/*
|
||||
@ -243,8 +243,8 @@ static int ip_vs_ftp_in(struct ip_vs_app *app, struct ip_vs_conn *cp,
|
||||
struct tcphdr *th;
|
||||
char *data, *data_start, *data_limit;
|
||||
char *start, *end;
|
||||
__u32 to;
|
||||
__u16 port;
|
||||
__be32 to;
|
||||
__be16 port;
|
||||
struct ip_vs_conn *n_cp;
|
||||
|
||||
/* no diff required for incoming packets */
|
||||
|
@ -87,7 +87,7 @@ static int sysctl_ip_vs_lblc_expiration = 24*60*60*HZ;
|
||||
*/
|
||||
struct ip_vs_lblc_entry {
|
||||
struct list_head list;
|
||||
__u32 addr; /* destination IP address */
|
||||
__be32 addr; /* destination IP address */
|
||||
struct ip_vs_dest *dest; /* real server (cache) */
|
||||
unsigned long lastuse; /* last used time */
|
||||
};
|
||||
@ -160,7 +160,7 @@ static struct ctl_table_header * sysctl_header;
|
||||
* IP address to a server.
|
||||
*/
|
||||
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;
|
||||
|
||||
@ -195,7 +195,7 @@ static inline void ip_vs_lblc_free(struct ip_vs_lblc_entry *en)
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
@ -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.
|
||||
*/
|
||||
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;
|
||||
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)
|
||||
*/
|
||||
struct ip_vs_lblcr_entry {
|
||||
struct list_head list;
|
||||
__u32 addr; /* destination IP address */
|
||||
__be32 addr; /* destination IP address */
|
||||
struct ip_vs_dest_set set; /* destination server set */
|
||||
unsigned long lastuse; /* last used time */
|
||||
};
|
||||
@ -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
|
||||
* 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;
|
||||
|
||||
@ -381,7 +381,7 @@ static inline void ip_vs_lblcr_free(struct ip_vs_lblcr_entry *en)
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
@ -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.
|
||||
*/
|
||||
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;
|
||||
struct ip_vs_lblcr_entry *en;
|
||||
|
@ -176,7 +176,7 @@ ip_vs_tcpudp_debug_packet(struct ip_vs_protocol *pp,
|
||||
pp->name, NIPQUAD(ih->saddr),
|
||||
NIPQUAD(ih->daddr));
|
||||
else {
|
||||
__u16 _ports[2], *pptr
|
||||
__be16 _ports[2], *pptr
|
||||
;
|
||||
pptr = skb_header_pointer(skb, offset + ih->ihl*4,
|
||||
sizeof(_ports), _ports);
|
||||
|
@ -29,7 +29,7 @@ static struct ip_vs_conn *
|
||||
tcp_conn_in_get(const struct sk_buff *skb, struct ip_vs_protocol *pp,
|
||||
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);
|
||||
if (pptr == NULL)
|
||||
@ -50,7 +50,7 @@ static struct ip_vs_conn *
|
||||
tcp_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp,
|
||||
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);
|
||||
if (pptr == NULL)
|
||||
@ -112,12 +112,12 @@ tcp_conn_schedule(struct sk_buff *skb,
|
||||
|
||||
|
||||
static inline void
|
||||
tcp_fast_csum_update(struct tcphdr *tcph, u32 oldip, u32 newip,
|
||||
u16 oldport, u16 newport)
|
||||
tcp_fast_csum_update(struct tcphdr *tcph, __be32 oldip, __be32 newip,
|
||||
__be16 oldport, __be16 newport)
|
||||
{
|
||||
tcph->check =
|
||||
ip_vs_check_diff(~oldip, newip,
|
||||
ip_vs_check_diff(oldport ^ 0xFFFF,
|
||||
ip_vs_check_diff(oldport ^ htonl(0xFFFF),
|
||||
newport, tcph->check));
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
struct ip_vs_conn *cp;
|
||||
__u16 _ports[2], *pptr;
|
||||
__be16 _ports[2], *pptr;
|
||||
|
||||
pptr = skb_header_pointer(skb, proto_off, sizeof(_ports), _ports);
|
||||
if (pptr == NULL)
|
||||
@ -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)
|
||||
{
|
||||
struct ip_vs_conn *cp;
|
||||
__u16 _ports[2], *pptr;
|
||||
__be16 _ports[2], *pptr;
|
||||
|
||||
pptr = skb_header_pointer(skb, skb->nh.iph->ihl*4,
|
||||
sizeof(_ports), _ports);
|
||||
@ -117,15 +117,15 @@ udp_conn_schedule(struct sk_buff *skb, struct ip_vs_protocol *pp,
|
||||
|
||||
|
||||
static inline void
|
||||
udp_fast_csum_update(struct udphdr *uhdr, u32 oldip, u32 newip,
|
||||
u16 oldport, u16 newport)
|
||||
udp_fast_csum_update(struct udphdr *uhdr, __be32 oldip, __be32 newip,
|
||||
__be16 oldport, __be16 newport)
|
||||
{
|
||||
uhdr->check =
|
||||
ip_vs_check_diff(~oldip, newip,
|
||||
ip_vs_check_diff(oldport ^ 0xFFFF,
|
||||
ip_vs_check_diff(oldport ^ htonl(0xFFFF),
|
||||
newport, uhdr->check));
|
||||
if (!uhdr->check)
|
||||
uhdr->check = 0xFFFF;
|
||||
uhdr->check = htonl(0xFFFF);
|
||||
}
|
||||
|
||||
static int
|
||||
@ -173,7 +173,7 @@ udp_snat_handler(struct sk_buff **pskb,
|
||||
cp->protocol,
|
||||
(*pskb)->csum);
|
||||
if (udph->check == 0)
|
||||
udph->check = 0xFFFF;
|
||||
udph->check = htonl(0xFFFF);
|
||||
IP_VS_DBG(11, "O-pkt: %s O-csum=%d (+%zd)\n",
|
||||
pp->name, udph->check,
|
||||
(char*)&(udph->check) - (char*)udph);
|
||||
|
@ -63,7 +63,7 @@ struct ip_vs_sh_bucket {
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
@ -73,7 +73,7 @@ static inline unsigned ip_vs_sh_hashkey(__u32 addr)
|
||||
* Get ip_vs_dest associated with supplied parameters.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
@ -48,16 +48,16 @@ struct ip_vs_sync_conn {
|
||||
|
||||
/* Protocol, addresses and port numbers */
|
||||
__u8 protocol; /* Which protocol (TCP/UDP) */
|
||||
__u16 cport;
|
||||
__u16 vport;
|
||||
__u16 dport;
|
||||
__u32 caddr; /* client address */
|
||||
__u32 vaddr; /* virtual address */
|
||||
__u32 daddr; /* destination address */
|
||||
__be16 cport;
|
||||
__be16 vport;
|
||||
__be16 dport;
|
||||
__be32 caddr; /* client address */
|
||||
__be32 vaddr; /* virtual address */
|
||||
__be32 daddr; /* destination address */
|
||||
|
||||
/* Flags and state transition */
|
||||
__u16 flags; /* status flags */
|
||||
__u16 state; /* state info */
|
||||
__be16 flags; /* status flags */
|
||||
__be16 state; /* state info */
|
||||
|
||||
/* The sequence options start here */
|
||||
};
|
||||
|
@ -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 */
|
||||
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);
|
||||
if (p == NULL)
|
||||
goto tx_error;
|
||||
|
Loading…
Reference in New Issue
Block a user