udp_sk
WRITE_ONCE(udp_sk(sk)->encap_type, 0);
switch (READ_ONCE(udp_sk(sk)->encap_type)) {
u8 type = READ_ONCE(udp_sk(sk)->encap_type);
if (unlikely(READ_ONCE(udp_sk(sk)->encap_type) != UDP_ENCAP_OVPNINUDP))
if ((READ_ONCE(udp_sk(ovpn_sock->sk)->encap_type) == UDP_ENCAP_OVPNINUDP) &&
WRITE_ONCE(udp_sk(sk)->encap_type, 0);
WRITE_ONCE(udp_sk(sk)->encap_rcv, NULL);
WRITE_ONCE(udp_sk(sk)->encap_destroy, NULL);
test_bit(UDP_FLAGS_##nr, &udp_sk(sk)->udp_flags)
set_bit(UDP_FLAGS_##nr, &udp_sk(sk)->udp_flags)
test_and_set_bit(UDP_FLAGS_##nr, &udp_sk(sk)->udp_flags)
clear_bit(UDP_FLAGS_##nr, &udp_sk(sk)->udp_flags)
assign_bit(UDP_FLAGS_##nr, &udp_sk(sk)->udp_flags, val)
WRITE_ONCE(udp_sk(sk)->peeking_with_offset, val >= 0);
READ_ONCE(udp_sk(sk)->encap_rcv) &&
return !hlist_nulls_unhashed(&udp_sk(sk)->udp_lrpa_node);
struct udp_sock *up = udp_sk(sk);
numa_drop_add(&udp_sk(sk)->drop_counters, 1);
return sk_rmem_alloc_get(sk) - READ_ONCE(udp_sk(sk)->forward_deficit);
u16 pcslen = READ_ONCE(udp_sk(sk)->pcslen);
!skb_queue_empty_lockless(&udp_sk(sk)->reader_queue))
if (udp_sk(sk)->encap_err_rcv)
udp_sk(sk)->encap_err_rcv(sk, skb, err, uh->dest, info,
struct udp_sock *up = udp_sk(sk);
struct udp_sock *up = udp_sk(sk);
struct udp_sock *up = udp_sk(sk);
(bitmap || udp_sk(sk2)->udp_port_hash == num) &&
struct udp_sock *up = udp_sk(sk);
struct udp_sock *up = udp_sk(sk);
__set_bit(udp_sk(sk2)->udp_port_hash >> log,
udp_prod_queue = &udp_sk(sk)->udp_prod_queue[numa_node_id()];
numa_drop_add(&udp_sk(sk)->drop_counters, nb);
struct udp_sock *up = udp_sk(sk);
if (unlikely(READ_ONCE(udp_sk(sk)->peeking_with_offset)))
(udp_sk(sk2)->udp_port_hash == num) &&
struct sk_buff_head *rcvq = &udp_sk(sk)->reader_queue;
queue = &udp_sk(sk)->reader_queue;
if (!__sk_queue_drop_skb(sk, &udp_sk(sk)->reader_queue, skb, flags,
(udp_sk(sk2)->udp_port_hash == udp_sk(sk)->udp_port_hash) &&
udp_sk(sk)->udp_port_hash);
hslot2 = udp_hashslot2(udptable, udp_sk(sk)->udp_portaddr_hash);
hlist_del_init_rcu(&udp_sk(sk)->udp_portaddr_node);
udp_sk(sk)->udp_port_hash);
hslot2 = udp_hashslot2(udptable, udp_sk(sk)->udp_portaddr_hash);
hlist_del_init_rcu(&udp_sk(sk)->udp_portaddr_node);
hlist_add_head_rcu(&udp_sk(sk)->udp_portaddr_node,
udp_sk(sk)->udp_portaddr_hash = newhash;
struct udp_sock *up = udp_sk(sk);
unsigned int slot2 = udp_sk(sk)->udp_portaddr_hash ^ snum;
struct udp_sock *up = udp_sk(sk);
if (udp_sk(sk)->gro_receive != new_gro_receive) {
if (udp_sk(sk)->gro_receive)
WRITE_ONCE(udp_sk(sk)->gro_receive, new_gro_receive);
struct udp_sock *up = udp_sk(sk);
struct udp_sock *up = udp_sk(sk);
udp_sk(sk)->udp_port_hash = snum;
udp_sk(sk)->udp_portaddr_hash ^= snum;
if (!skb_queue_empty_lockless(&udp_sk(sk)->reader_queue))
udp_sk(sk)->udp_port_hash = 0;
udp_sk(sk)->udp_portaddr_hash ^= snum;
hslot2 = udp_hashslot2(udptable, udp_sk(sk)->udp_portaddr_hash);
hlist_add_tail_rcu(&udp_sk(sk)->udp_portaddr_node,
hlist_add_head_rcu(&udp_sk(sk)->udp_portaddr_node,
__bpf_md_ptr(struct udp_sock *, udp_sk);
udp_sk(sk)->udp_portaddr_hash = hash2_partial;
struct udp_sock *udp_sk, uid_t uid, int bucket)
ctx.udp_sk = udp_sk;
udp_sk(sk)->udp_port_hash != hnum ||
struct udp_sock *udp_sk, uid_t uid, int bucket)
{ offsetof(struct bpf_iter__udp, udp_sk),
hslot4 = udp_hashslot4(udptable, udp_sk(sk)->udp_lrpa_hash);
udp_sk(sk)->udp_lrpa_hash = newhash4;
hlist_nulls_del_init_rcu(&udp_sk(sk)->udp_lrpa_node);
hlist_nulls_add_head_rcu(&udp_sk(sk)->udp_lrpa_node,
hslot2 = udp_hashslot2(udptable, udp_sk(sk)->udp_portaddr_hash);
hslot4 = udp_hashslot4(udptable, udp_sk(sk)->udp_lrpa_hash);
hlist_nulls_del_init_rcu(&udp_sk(sk)->udp_lrpa_node);
hslot = udp_hashslot(udptable, net, udp_sk(sk)->udp_port_hash);
hslot2 = udp_hashslot2(udptable, udp_sk(sk)->udp_portaddr_hash);
udp_sk(sk)->udp_lrpa_hash = hash;
hlist_nulls_add_head_rcu(&udp_sk(sk)->udp_lrpa_node,
udp_sk(sk)->udp_port_hash != hnum ||
up = udp_sk(sk);
up = udp_sk(sk);
if (!sk || READ_ONCE(udp_sk(sk)->encap_type)) {
return !skb_queue_empty(&udp_sk(sk)->reader_queue) ||
return call_gro_receive_sk(udp_sk(sk)->gro_receive, sk, head, skb);
return call_gro_receive_sk(udp_sk(sk)->gro_receive, sk, head, skb);
struct udp_sock *tup, *up = udp_sk(sk);
if (!sk || !udp_sk(sk)->gro_receive) {
struct udp_sock *up = udp_sk(sk);
if (sk && udp_sk(sk)->gro_complete) {
err = udp_sk(sk)->gro_complete(sk, skb,
udp_sk(sk)->encap_type = cfg->encap_type;
udp_sk(sk)->encap_rcv = cfg->encap_rcv;
udp_sk(sk)->encap_err_rcv = cfg->encap_err_rcv;
udp_sk(sk)->encap_err_lookup = cfg->encap_err_lookup;
udp_sk(sk)->encap_destroy = cfg->encap_destroy;
udp_sk(sk)->gro_receive = cfg->gro_receive;
udp_sk(sk)->gro_complete = cfg->gro_complete;
udp_sk(sk)->encap_type);
struct udp_sock *up = udp_sk(sk);
struct udp_sock *up = udp_sk(sk);
udp_sk(sk)->udp_portaddr_hash = hash2_partial;
struct udp_sock *up = udp_sk(sk);
udp_sk(sk)->udp_port_hash != hnum ||
struct udp_sock *up = udp_sk(sk);
struct udp_sock *up = udp_sk(sk);
struct udp_sock *up = udp_sk(sk);
struct udp_sock *up = udp_sk(sk);
if (!__sk_queue_drop_skb(sk, &udp_sk(sk)->reader_queue, skb, flags,
up = udp_sk(sk);
up = udp_sk(sk);
if (!sk || READ_ONCE(udp_sk(sk)->encap_type)) {
if (udp_sk(sk)->encap_err_rcv)
udp_sk(sk)->encap_err_rcv(sk, skb, err, uh->dest,
struct udp_sock *up = udp_sk(sk);
if (udp_sk(sk)->udp_port_hash != hnum ||
udp_sk(sk)->encap_type);
struct udp_sock *up = udp_sk(sk);
WRITE_ONCE(udp_sk(sk)->encap_type, 0);
udp_sk(sk)->encap_rcv = NULL;
udp_sk(sk)->encap_destroy = NULL;
struct udp_sock *up = udp_sk(sk);
int rxrpc_encap_rcv(struct sock *udp_sk, struct sk_buff *skb)
struct rxrpc_local *local = rcu_dereference_sk_user_data(udp_sk);
struct udp_sock *udp_sk = ctx->udp_sk;
if (udp_sk == (void *)0)
inet = &udp_sk->inet;
inet = &udp_sk->inet;
rqueue = inet->sk.sk_rmem_alloc.counter - udp_sk->forward_deficit;
inet->sk.sk_refcnt.refs.counter, udp_sk,
udp_sk->drop_counters.drops0.counter +
udp_sk->drop_counters.drops1.counter);
struct udp_sock *udp_sk = ctx->udp_sk;
if (udp_sk == (void *)0)
udp6_sk = bpf_skc_to_udp6_sock(udp_sk);
inet = &udp_sk->inet;
rqueue = inet->sk.sk_rmem_alloc.counter - udp_sk->forward_deficit;
inet->sk.sk_refcnt.refs.counter, udp_sk,
udp_sk->drop_counters.drops0.counter +
udp_sk->drop_counters.drops1.counter);
struct udp_sock *udp_sk = ctx->udp_sk;
struct sock *sk = (struct sock *) udp_sk;
struct udp_sock *udp_sk = ctx->udp_sk;
struct sock *sk = (struct sock *) udp_sk;
inet = &udp_sk->inet;
bucket[idx] = udp_sk(sk)->udp_portaddr_hash & udptable->mask;
struct sock *sk = (struct sock *)ctx->udp_sk;