Lines Matching refs:sk
30 int inet6_csk_bind_conflict(const struct sock *sk, in inet6_csk_bind_conflict() argument
34 int reuse = sk->sk_reuse; in inet6_csk_bind_conflict()
35 int reuseport = sk->sk_reuseport; in inet6_csk_bind_conflict()
36 kuid_t uid = sock_i_uid((struct sock *)sk); in inet6_csk_bind_conflict()
44 if (sk != sk2 && in inet6_csk_bind_conflict()
45 (!sk->sk_bound_dev_if || in inet6_csk_bind_conflict()
47 sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) { in inet6_csk_bind_conflict()
54 if (ipv6_rcv_saddr_equal(sk, sk2)) in inet6_csk_bind_conflict()
59 ipv6_rcv_saddr_equal(sk, sk2)) in inet6_csk_bind_conflict()
68 struct dst_entry *inet6_csk_route_req(struct sock *sk, in inet6_csk_route_req() argument
73 struct ipv6_pinfo *np = inet6_sk(sk); in inet6_csk_route_req()
90 dst = ip6_dst_lookup_flow(sk, fl6, final_p); in inet6_csk_route_req()
117 struct request_sock *inet6_csk_search_req(struct sock *sk, in inet6_csk_search_req() argument
123 struct inet_connection_sock *icsk = inet_csk(sk); in inet6_csk_search_req()
139 WARN_ON(req->sk != NULL); in inet6_csk_search_req()
149 void inet6_csk_reqsk_queue_hash_add(struct sock *sk, in inet6_csk_reqsk_queue_hash_add() argument
153 struct inet_connection_sock *icsk = inet_csk(sk); in inet6_csk_reqsk_queue_hash_add()
160 inet_csk_reqsk_queue_added(sk, timeout); in inet6_csk_reqsk_queue_hash_add()
164 void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr) in inet6_csk_addr2sockaddr() argument
169 sin6->sin6_addr = sk->sk_v6_daddr; in inet6_csk_addr2sockaddr()
170 sin6->sin6_port = inet_sk(sk)->inet_dport; in inet6_csk_addr2sockaddr()
174 sk->sk_bound_dev_if); in inet6_csk_addr2sockaddr()
179 void __inet6_csk_dst_store(struct sock *sk, struct dst_entry *dst, in __inet6_csk_dst_store() argument
183 __ip6_dst_store(sk, dst, daddr, saddr); in __inet6_csk_dst_store()
187 struct dst_entry *__inet6_csk_dst_check(struct sock *sk, u32 cookie) in __inet6_csk_dst_check() argument
189 return __sk_dst_check(sk, cookie); in __inet6_csk_dst_check()
192 static struct dst_entry *inet6_csk_route_socket(struct sock *sk, in inet6_csk_route_socket() argument
195 struct inet_sock *inet = inet_sk(sk); in inet6_csk_route_socket()
196 struct ipv6_pinfo *np = inet6_sk(sk); in inet6_csk_route_socket()
201 fl6->flowi6_proto = sk->sk_protocol; in inet6_csk_route_socket()
202 fl6->daddr = sk->sk_v6_daddr; in inet6_csk_route_socket()
205 IP6_ECN_flow_xmit(sk, fl6->flowlabel); in inet6_csk_route_socket()
206 fl6->flowi6_oif = sk->sk_bound_dev_if; in inet6_csk_route_socket()
207 fl6->flowi6_mark = sk->sk_mark; in inet6_csk_route_socket()
210 security_sk_classify_flow(sk, flowi6_to_flowi(fl6)); in inet6_csk_route_socket()
216 dst = __inet6_csk_dst_check(sk, np->dst_cookie); in inet6_csk_route_socket()
218 dst = ip6_dst_lookup_flow(sk, fl6, final_p); in inet6_csk_route_socket()
221 __inet6_csk_dst_store(sk, dst, NULL, NULL); in inet6_csk_route_socket()
226 int inet6_csk_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl_unused) in inet6_csk_xmit() argument
228 struct ipv6_pinfo *np = inet6_sk(sk); in inet6_csk_xmit()
233 dst = inet6_csk_route_socket(sk, &fl6); in inet6_csk_xmit()
235 sk->sk_err_soft = -PTR_ERR(dst); in inet6_csk_xmit()
236 sk->sk_route_caps = 0; in inet6_csk_xmit()
245 fl6.daddr = sk->sk_v6_daddr; in inet6_csk_xmit()
247 res = ip6_xmit(sk, skb, &fl6, rcu_dereference(np->opt), in inet6_csk_xmit()
254 struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu) in inet6_csk_update_pmtu() argument
257 struct dst_entry *dst = inet6_csk_route_socket(sk, &fl6); in inet6_csk_update_pmtu()
261 dst->ops->update_pmtu(dst, sk, NULL, mtu); in inet6_csk_update_pmtu()
263 dst = inet6_csk_route_socket(sk, &fl6); in inet6_csk_update_pmtu()