Lines Matching refs:sk

69 static void inet_diag_msg_common_fill(struct inet_diag_msg *r, struct sock *sk)  in inet_diag_msg_common_fill()  argument
71 r->idiag_family = sk->sk_family; in inet_diag_msg_common_fill()
73 r->id.idiag_sport = htons(sk->sk_num); in inet_diag_msg_common_fill()
74 r->id.idiag_dport = sk->sk_dport; in inet_diag_msg_common_fill()
75 r->id.idiag_if = sk->sk_bound_dev_if; in inet_diag_msg_common_fill()
76 sock_diag_save_cookie(sk, r->id.idiag_cookie); in inet_diag_msg_common_fill()
79 if (sk->sk_family == AF_INET6) { in inet_diag_msg_common_fill()
80 *(struct in6_addr *)r->id.idiag_src = sk->sk_v6_rcv_saddr; in inet_diag_msg_common_fill()
81 *(struct in6_addr *)r->id.idiag_dst = sk->sk_v6_daddr; in inet_diag_msg_common_fill()
88 r->id.idiag_src[0] = sk->sk_rcv_saddr; in inet_diag_msg_common_fill()
89 r->id.idiag_dst[0] = sk->sk_daddr; in inet_diag_msg_common_fill()
107 int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk, in inet_sk_diag_fill() argument
113 const struct inet_sock *inet = inet_sk(sk); in inet_sk_diag_fill()
131 BUG_ON(!sk_fullsock(sk)); in inet_sk_diag_fill()
133 inet_diag_msg_common_fill(r, sk); in inet_sk_diag_fill()
134 r->idiag_state = sk->sk_state; in inet_sk_diag_fill()
138 if (nla_put_u8(skb, INET_DIAG_SHUTDOWN, sk->sk_shutdown)) in inet_sk_diag_fill()
152 inet6_sk(sk)->tclass) < 0) in inet_sk_diag_fill()
157 r->idiag_uid = from_kuid_munged(user_ns, sock_i_uid(sk)); in inet_sk_diag_fill()
158 r->idiag_inode = sock_i_ino(sk); in inet_sk_diag_fill()
162 .idiag_rmem = sk_rmem_alloc_get(sk), in inet_sk_diag_fill()
163 .idiag_wmem = sk->sk_wmem_queued, in inet_sk_diag_fill()
164 .idiag_fmem = sk->sk_forward_alloc, in inet_sk_diag_fill()
165 .idiag_tmem = sk_wmem_alloc_get(sk), in inet_sk_diag_fill()
173 if (sock_diag_put_meminfo(sk, skb, INET_DIAG_SKMEMINFO)) in inet_sk_diag_fill()
177 handler->idiag_get_info(sk, r, NULL); in inet_sk_diag_fill()
193 } else if (timer_pending(&sk->sk_timer)) { in inet_sk_diag_fill()
196 r->idiag_expires = EXPIRES_IN_MS(sk->sk_timer.expires); in inet_sk_diag_fill()
224 handler->idiag_get_info(sk, r, info); in inet_sk_diag_fill()
226 if (sk->sk_state < TCP_TIME_WAIT) { in inet_sk_diag_fill()
234 sz = ca_ops->get_info(sk, ext, &attr, &info); in inet_sk_diag_fill()
250 static int inet_csk_diag_fill(struct sock *sk, in inet_csk_diag_fill() argument
257 return inet_sk_diag_fill(sk, inet_csk(sk), skb, req, in inet_csk_diag_fill()
261 static int inet_twsk_diag_fill(struct sock *sk, in inet_twsk_diag_fill() argument
266 struct inet_timewait_sock *tw = inet_twsk(sk); in inet_twsk_diag_fill()
283 inet_diag_msg_common_fill(r, sk); in inet_twsk_diag_fill()
298 static int inet_req_diag_fill(struct sock *sk, struct sk_buff *skb, in inet_req_diag_fill() argument
312 inet_diag_msg_common_fill(r, sk); in inet_req_diag_fill()
315 r->idiag_retrans = inet_reqsk(sk)->num_retrans; in inet_req_diag_fill()
320 tmo = inet_reqsk(sk)->rsk_timer.expires - jiffies; in inet_req_diag_fill()
331 static int sk_diag_fill(struct sock *sk, struct sk_buff *skb, in sk_diag_fill() argument
337 if (sk->sk_state == TCP_TIME_WAIT) in sk_diag_fill()
338 return inet_twsk_diag_fill(sk, skb, portid, seq, in sk_diag_fill()
341 if (sk->sk_state == TCP_NEW_SYN_RECV) in sk_diag_fill()
342 return inet_req_diag_fill(sk, skb, portid, seq, in sk_diag_fill()
345 return inet_csk_diag_fill(sk, skb, r, user_ns, portid, seq, in sk_diag_fill()
354 struct net *net = sock_net(in_skb->sk); in inet_diag_dump_one_icsk()
356 struct sock *sk; in inet_diag_dump_one_icsk() local
361 sk = inet_lookup(net, hashinfo, req->id.idiag_dst[0], in inet_diag_dump_one_icsk()
366 sk = inet6_lookup(net, hashinfo, in inet_diag_dump_one_icsk()
377 if (!sk) in inet_diag_dump_one_icsk()
380 err = sock_diag_check_cookie(sk, req->id.idiag_cookie); in inet_diag_dump_one_icsk()
390 err = sk_diag_fill(sk, rep, req, in inet_diag_dump_one_icsk()
391 sk_user_ns(NETLINK_CB(in_skb).sk), in inet_diag_dump_one_icsk()
405 if (sk) in inet_diag_dump_one_icsk()
406 sock_gen_put(sk); in inet_diag_dump_one_icsk()
544 const struct sock *sk) in entry_fill_addrs() argument
547 if (sk->sk_family == AF_INET6) { in entry_fill_addrs()
548 entry->saddr = sk->sk_v6_rcv_saddr.s6_addr32; in entry_fill_addrs()
549 entry->daddr = sk->sk_v6_daddr.s6_addr32; in entry_fill_addrs()
553 entry->saddr = &sk->sk_rcv_saddr; in entry_fill_addrs()
554 entry->daddr = &sk->sk_daddr; in entry_fill_addrs()
558 int inet_diag_bc_sk(const struct nlattr *bc, struct sock *sk) in inet_diag_bc_sk() argument
560 struct inet_sock *inet = inet_sk(sk); in inet_diag_bc_sk()
566 entry.family = sk->sk_family; in inet_diag_bc_sk()
567 entry_fill_addrs(&entry, sk); in inet_diag_bc_sk()
570 entry.userlocks = sk_fullsock(sk) ? sk->sk_userlocks : 0; in inet_diag_bc_sk()
688 static int inet_csk_diag_dump(struct sock *sk, in inet_csk_diag_dump() argument
694 if (!inet_diag_bc_sk(bc, sk)) in inet_csk_diag_dump()
697 return inet_csk_diag_fill(sk, skb, r, in inet_csk_diag_dump()
698 sk_user_ns(NETLINK_CB(cb->skb).sk), in inet_csk_diag_dump()
729 static int inet_diag_dump_reqs(struct sk_buff *skb, struct sock *sk, in inet_diag_dump_reqs() argument
734 struct inet_connection_sock *icsk = inet_csk(sk); in inet_diag_dump_reqs()
735 struct inet_sock *inet = inet_sk(sk); in inet_diag_dump_reqs()
747 entry.family = sk->sk_family; in inet_diag_dump_reqs()
757 entry.userlocks = sk->sk_userlocks; in inet_diag_dump_reqs()
806 struct net *net = sock_net(skb->sk); in inet_diag_dump_icsk()
819 struct sock *sk; in inet_diag_dump_icsk() local
824 sk_nulls_for_each(sk, node, &ilb->head) { in inet_diag_dump_icsk()
825 struct inet_sock *inet = inet_sk(sk); in inet_diag_dump_icsk()
827 if (!net_eq(sock_net(sk), net)) in inet_diag_dump_icsk()
836 sk->sk_family != r->sdiag_family) in inet_diag_dump_icsk()
848 if (inet_csk_diag_dump(sk, skb, cb, r, bc) < 0) { in inet_diag_dump_icsk()
857 if (inet_diag_dump_reqs(skb, sk, cb, r, bc) < 0) { in inet_diag_dump_icsk()
885 struct sock *sk; in inet_diag_dump_icsk() local
896 sk_nulls_for_each(sk, node, &head->chain) { in inet_diag_dump_icsk()
899 if (!net_eq(sock_net(sk), net)) in inet_diag_dump_icsk()
903 state = (sk->sk_state == TCP_TIME_WAIT) ? in inet_diag_dump_icsk()
904 inet_twsk(sk)->tw_substate : sk->sk_state; in inet_diag_dump_icsk()
908 sk->sk_family != r->sdiag_family) in inet_diag_dump_icsk()
910 if (r->id.idiag_sport != htons(sk->sk_num) && in inet_diag_dump_icsk()
913 if (r->id.idiag_dport != sk->sk_dport && in inet_diag_dump_icsk()
918 if (!inet_diag_bc_sk(bc, sk)) in inet_diag_dump_icsk()
921 res = sk_diag_fill(sk, skb, r, in inet_diag_dump_icsk()
922 sk_user_ns(NETLINK_CB(cb->skb).sk), in inet_diag_dump_icsk()
1023 struct net *net = sock_net(skb->sk); in inet_diag_rcv_msg_compat()
1054 struct net *net = sock_net(skb->sk); in inet_diag_handler_dump()