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(const struct sock *sk, in inet6_csk_route_req() argument
74 const struct ipv6_pinfo *np = inet6_sk(sk); in inet6_csk_route_req()
91 dst = ip6_dst_lookup_flow(sk, fl6, final_p); in inet6_csk_route_req()
99 void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr) in inet6_csk_addr2sockaddr() argument
104 sin6->sin6_addr = sk->sk_v6_daddr; in inet6_csk_addr2sockaddr()
105 sin6->sin6_port = inet_sk(sk)->inet_dport; in inet6_csk_addr2sockaddr()
109 sk->sk_bound_dev_if); in inet6_csk_addr2sockaddr()
114 struct dst_entry *__inet6_csk_dst_check(struct sock *sk, u32 cookie) in __inet6_csk_dst_check() argument
116 return __sk_dst_check(sk, cookie); in __inet6_csk_dst_check()
119 static struct dst_entry *inet6_csk_route_socket(struct sock *sk, in inet6_csk_route_socket() argument
122 struct inet_sock *inet = inet_sk(sk); in inet6_csk_route_socket()
123 struct ipv6_pinfo *np = inet6_sk(sk); in inet6_csk_route_socket()
128 fl6->flowi6_proto = sk->sk_protocol; in inet6_csk_route_socket()
129 fl6->daddr = sk->sk_v6_daddr; in inet6_csk_route_socket()
132 IP6_ECN_flow_xmit(sk, fl6->flowlabel); in inet6_csk_route_socket()
133 fl6->flowi6_oif = sk->sk_bound_dev_if; in inet6_csk_route_socket()
134 fl6->flowi6_mark = sk->sk_mark; in inet6_csk_route_socket()
137 security_sk_classify_flow(sk, flowi6_to_flowi(fl6)); in inet6_csk_route_socket()
143 dst = __inet6_csk_dst_check(sk, np->dst_cookie); in inet6_csk_route_socket()
145 dst = ip6_dst_lookup_flow(sk, fl6, final_p); in inet6_csk_route_socket()
148 ip6_dst_store(sk, dst, NULL, NULL); in inet6_csk_route_socket()
153 int inet6_csk_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl_unused) in inet6_csk_xmit() argument
155 struct ipv6_pinfo *np = inet6_sk(sk); in inet6_csk_xmit()
160 dst = inet6_csk_route_socket(sk, &fl6); in inet6_csk_xmit()
162 sk->sk_err_soft = -PTR_ERR(dst); in inet6_csk_xmit()
163 sk->sk_route_caps = 0; in inet6_csk_xmit()
172 fl6.daddr = sk->sk_v6_daddr; in inet6_csk_xmit()
174 res = ip6_xmit(sk, skb, &fl6, rcu_dereference(np->opt), in inet6_csk_xmit()
181 struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu) in inet6_csk_update_pmtu() argument
184 struct dst_entry *dst = inet6_csk_route_socket(sk, &fl6); in inet6_csk_update_pmtu()
188 dst->ops->update_pmtu(dst, sk, NULL, mtu); in inet6_csk_update_pmtu()
190 dst = inet6_csk_route_socket(sk, &fl6); in inet6_csk_update_pmtu()