aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/inet_sock.h
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2013-01-17 16:15:55 -0500
committerJonathan Herman <hermanjl@cs.unc.edu>2013-01-17 16:15:55 -0500
commit8dea78da5cee153b8af9c07a2745f6c55057fe12 (patch)
treea8f4d49d63b1ecc92f2fddceba0655b2472c5bd9 /include/net/inet_sock.h
parent406089d01562f1e2bf9f089fd7637009ebaad589 (diff)
Patched in Tegra support.
Diffstat (limited to 'include/net/inet_sock.h')
-rw-r--r--include/net/inet_sock.h24
1 files changed, 10 insertions, 14 deletions
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
index a4196cbc84e..b897d6e6d0a 100644
--- a/include/net/inet_sock.h
+++ b/include/net/inet_sock.h
@@ -31,7 +31,6 @@
31/** struct ip_options - IP Options 31/** struct ip_options - IP Options
32 * 32 *
33 * @faddr - Saved first hop address 33 * @faddr - Saved first hop address
34 * @nexthop - Saved nexthop address in LSRR and SSRR
35 * @is_data - Options in __data, rather than skb 34 * @is_data - Options in __data, rather than skb
36 * @is_strictroute - Strict source route 35 * @is_strictroute - Strict source route
37 * @srr_is_hit - Packet destination addr was our one 36 * @srr_is_hit - Packet destination addr was our one
@@ -42,7 +41,6 @@
42 */ 41 */
43struct ip_options { 42struct ip_options {
44 __be32 faddr; 43 __be32 faddr;
45 __be32 nexthop;
46 unsigned char optlen; 44 unsigned char optlen;
47 unsigned char srr; 45 unsigned char srr;
48 unsigned char rr; 46 unsigned char rr;
@@ -71,7 +69,7 @@ struct ip_options_data {
71 69
72struct inet_request_sock { 70struct inet_request_sock {
73 struct request_sock req; 71 struct request_sock req;
74#if IS_ENABLED(CONFIG_IPV6) 72#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
75 u16 inet6_rsk_offset; 73 u16 inet6_rsk_offset;
76#endif 74#endif
77 __be16 loc_port; 75 __be16 loc_port;
@@ -101,8 +99,10 @@ struct inet_cork {
101 __be32 addr; 99 __be32 addr;
102 struct ip_options *opt; 100 struct ip_options *opt;
103 unsigned int fragsize; 101 unsigned int fragsize;
104 int length; /* Total length of all frames */
105 struct dst_entry *dst; 102 struct dst_entry *dst;
103 int length; /* Total length of all frames */
104 struct page *page;
105 u32 off;
106 u8 tx_flags; 106 u8 tx_flags;
107}; 107};
108 108
@@ -130,7 +130,6 @@ struct rtable;
130 * @tos - TOS 130 * @tos - TOS
131 * @mc_ttl - Multicasting TTL 131 * @mc_ttl - Multicasting TTL
132 * @is_icsk - is this an inet_connection_sock? 132 * @is_icsk - is this an inet_connection_sock?
133 * @uc_index - Unicast outgoing device index
134 * @mc_index - Multicast device index 133 * @mc_index - Multicast device index
135 * @mc_list - Group array 134 * @mc_list - Group array
136 * @cork - info to build ip hdr on each ip frag while socket is corked 135 * @cork - info to build ip hdr on each ip frag while socket is corked
@@ -138,17 +137,15 @@ struct rtable;
138struct inet_sock { 137struct inet_sock {
139 /* sk and pinet6 has to be the first two members of inet_sock */ 138 /* sk and pinet6 has to be the first two members of inet_sock */
140 struct sock sk; 139 struct sock sk;
141#if IS_ENABLED(CONFIG_IPV6) 140#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
142 struct ipv6_pinfo *pinet6; 141 struct ipv6_pinfo *pinet6;
143#endif 142#endif
144 /* Socket demultiplex comparisons on incoming packets. */ 143 /* Socket demultiplex comparisons on incoming packets. */
145#define inet_daddr sk.__sk_common.skc_daddr 144#define inet_daddr sk.__sk_common.skc_daddr
146#define inet_rcv_saddr sk.__sk_common.skc_rcv_saddr 145#define inet_rcv_saddr sk.__sk_common.skc_rcv_saddr
147#define inet_addrpair sk.__sk_common.skc_addrpair
148#define inet_dport sk.__sk_common.skc_dport
149#define inet_num sk.__sk_common.skc_num
150#define inet_portpair sk.__sk_common.skc_portpair
151 146
147 __be16 inet_dport;
148 __u16 inet_num;
152 __be32 inet_saddr; 149 __be32 inet_saddr;
153 __s16 uc_ttl; 150 __s16 uc_ttl;
154 __u16 cmsg_flags; 151 __u16 cmsg_flags;
@@ -156,7 +153,6 @@ struct inet_sock {
156 __u16 inet_id; 153 __u16 inet_id;
157 154
158 struct ip_options_rcu __rcu *inet_opt; 155 struct ip_options_rcu __rcu *inet_opt;
159 int rx_dst_ifindex;
160 __u8 tos; 156 __u8 tos;
161 __u8 min_ttl; 157 __u8 min_ttl;
162 __u8 mc_ttl; 158 __u8 mc_ttl;
@@ -169,8 +165,6 @@ struct inet_sock {
169 transparent:1, 165 transparent:1,
170 mc_all:1, 166 mc_all:1,
171 nodefrag:1; 167 nodefrag:1;
172 __u8 rcv_tos;
173 int uc_index;
174 int mc_index; 168 int mc_index;
175 __be32 mc_addr; 169 __be32 mc_addr;
176 struct ip_mc_socklist __rcu *mc_list; 170 struct ip_mc_socklist __rcu *mc_list;
@@ -192,7 +186,7 @@ static inline void __inet_sk_copy_descendant(struct sock *sk_to,
192 memcpy(inet_sk(sk_to) + 1, inet_sk(sk_from) + 1, 186 memcpy(inet_sk(sk_to) + 1, inet_sk(sk_from) + 1,
193 sk_from->sk_prot->obj_size - ancestor_size); 187 sk_from->sk_prot->obj_size - ancestor_size);
194} 188}
195#if !(IS_ENABLED(CONFIG_IPV6)) 189#if !(defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE))
196static inline void inet_sk_copy_descendant(struct sock *sk_to, 190static inline void inet_sk_copy_descendant(struct sock *sk_to,
197 const struct sock *sk_from) 191 const struct sock *sk_from)
198{ 192{
@@ -246,6 +240,8 @@ static inline __u8 inet_sk_flowi_flags(const struct sock *sk)
246 240
247 if (inet_sk(sk)->transparent || inet_sk(sk)->hdrincl) 241 if (inet_sk(sk)->transparent || inet_sk(sk)->hdrincl)
248 flags |= FLOWI_FLAG_ANYSRC; 242 flags |= FLOWI_FLAG_ANYSRC;
243 if (sk->sk_protocol == IPPROTO_TCP)
244 flags |= FLOWI_FLAG_PRECOW_METRICS;
249 return flags; 245 return flags;
250} 246}
251 247