git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bluetooth: Add different pairing timeout for Legacy Pairing
[safe/jmp/linux-2.6]
/
include
/
net
/
inet_sock.h
diff --git
a/include/net/inet_sock.h
b/include/net/inet_sock.h
index
70013c5
..
de0ecc7
100644
(file)
--- a/
include/net/inet_sock.h
+++ b/
include/net/inet_sock.h
@@
-24,7
+24,7
@@
#include <net/flow.h>
#include <net/sock.h>
#include <net/request_sock.h>
#include <net/flow.h>
#include <net/sock.h>
#include <net/request_sock.h>
-#include <net/
route
.h>
+#include <net/
netns/hash
.h>
/** struct ip_options - IP Options
*
/** struct ip_options - IP Options
*
@@
-43,8
+43,7
@@
struct ip_options {
unsigned char srr;
unsigned char rr;
unsigned char ts;
unsigned char srr;
unsigned char rr;
unsigned char ts;
- unsigned char is_data:1,
- is_strictroute:1,
+ unsigned char is_strictroute:1,
srr_is_hit:1,
is_changed:1,
rr_needaddr:1,
srr_is_hit:1,
is_changed:1,
rr_needaddr:1,
@@
-62,8
+61,8
@@
struct inet_request_sock {
struct request_sock req;
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
u16 inet6_rsk_offset;
struct request_sock req;
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
u16 inet6_rsk_offset;
- /* 2 bytes hole, try to pack */
#endif
#endif
+ __be16 loc_port;
__be32 loc_addr;
__be32 rmt_addr;
__be16 rmt_port;
__be32 loc_addr;
__be32 rmt_addr;
__be16 rmt_port;
@@
-73,7
+72,8
@@
struct inet_request_sock {
sack_ok : 1,
wscale_ok : 1,
ecn_ok : 1,
sack_ok : 1,
wscale_ok : 1,
ecn_ok : 1,
- acked : 1;
+ acked : 1,
+ no_srccheck: 1;
struct ip_options *opt;
};
struct ip_options *opt;
};
@@
-129,7
+129,8
@@
struct inet_sock {
is_icsk:1,
freebind:1,
hdrincl:1,
is_icsk:1,
freebind:1,
hdrincl:1,
- mc_loop:1;
+ mc_loop:1,
+ transparent:1;
int mc_index;
__be32 mc_addr;
struct ip_mc_socklist *mc_list;
int mc_index;
__be32 mc_addr;
struct ip_mc_socklist *mc_list;
@@
-137,7
+138,7
@@
struct inet_sock {
unsigned int flags;
unsigned int fragsize;
struct ip_options *opt;
unsigned int flags;
unsigned int fragsize;
struct ip_options *opt;
- struct
rtable *r
t;
+ struct
dst_entry *ds
t;
int length; /* Total length of all frames */
__be32 addr;
struct flowi fl;
int length; /* Total length of all frames */
__be32 addr;
struct flowi fl;
@@
-172,12
+173,14
@@
extern int inet_sk_rebuild_header(struct sock *sk);
extern u32 inet_ehash_secret;
extern void build_ehash_secret(void);
extern u32 inet_ehash_secret;
extern void build_ehash_secret(void);
-static inline unsigned int inet_ehashfn(const __be32 laddr, const __u16 lport,
+static inline unsigned int inet_ehashfn(struct net *net,
+ const __be32 laddr, const __u16 lport,
const __be32 faddr, const __be16 fport)
{
const __be32 faddr, const __be16 fport)
{
- return jhash_2words((__force __u32) laddr ^ (__force __u32) faddr,
+ return jhash_3words((__force __u32) laddr,
+ (__force __u32) faddr,
((__u32) lport) << 16 | (__force __u32)fport,
((__u32) lport) << 16 | (__force __u32)fport,
- inet_ehash_secret);
+ inet_ehash_secret
+ net_hash_mix(net)
);
}
static inline int inet_sk_ehashfn(const struct sock *sk)
}
static inline int inet_sk_ehashfn(const struct sock *sk)
@@
-187,14
+190,24
@@
static inline int inet_sk_ehashfn(const struct sock *sk)
const __u16 lport = inet->num;
const __be32 faddr = inet->daddr;
const __be16 fport = inet->dport;
const __u16 lport = inet->num;
const __be32 faddr = inet->daddr;
const __be16 fport = inet->dport;
+ struct net *net = sock_net(sk);
- return inet_ehashfn(laddr, lport, faddr, fport);
+ return inet_ehashfn(
net,
laddr, lport, faddr, fport);
}
}
+static inline struct request_sock *inet_reqsk_alloc(struct request_sock_ops *ops)
+{
+ struct request_sock *req = reqsk_alloc(ops);
+
+ if (req != NULL)
+ inet_rsk(req)->opt = NULL;
+
+ return req;
+}
-static inline
int inet_iif(const struct sk_buff *skb
)
+static inline
__u8 inet_sk_flowi_flags(const struct sock *sk
)
{
{
- return
((struct rtable *)skb->dst)->rt_iif
;
+ return
inet_sk(sk)->transparent ? FLOWI_FLAG_ANYSRC : 0
;
}
#endif /* _INET_SOCK_H */
}
#endif /* _INET_SOCK_H */