Linux Audio

Check our new training course

Loading...
v6.13.7
  1/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */
  2#ifndef __BPF_TRACING_NET_H__
  3#define __BPF_TRACING_NET_H__
  4
  5#include <vmlinux.h>
  6#include <bpf/bpf_core_read.h>
  7
  8#define AF_INET			2
  9#define AF_INET6		10
 10
 11#define SOL_SOCKET		1
 12#define SO_REUSEADDR		2
 13#define SO_SNDBUF		7
 14#define SO_RCVBUF		8
 15#define SO_KEEPALIVE		9
 16#define SO_PRIORITY		12
 17#define SO_REUSEPORT		15
 18#define SO_RCVLOWAT		18
 19#define SO_BINDTODEVICE		25
 20#define SO_MARK			36
 21#define SO_MAX_PACING_RATE	47
 22#define SO_BINDTOIFINDEX	62
 23#define SO_TXREHASH		74
 24#define __SO_ACCEPTCON		(1 << 16)
 25
 26#define IP_TOS			1
 27
 28#define SOL_IPV6		41
 29#define IPV6_TCLASS		67
 30#define IPV6_AUTOFLOWLABEL	70
 31
 32#define TC_ACT_UNSPEC		(-1)
 33#define TC_ACT_OK		0
 34#define TC_ACT_SHOT		2
 35
 36#define SOL_TCP			6
 37#define TCP_NODELAY		1
 38#define TCP_MAXSEG		2
 39#define TCP_KEEPIDLE		4
 40#define TCP_KEEPINTVL		5
 41#define TCP_KEEPCNT		6
 42#define TCP_SYNCNT		7
 43#define TCP_WINDOW_CLAMP	10
 44#define TCP_CONGESTION		13
 45#define TCP_THIN_LINEAR_TIMEOUTS	16
 46#define TCP_USER_TIMEOUT	18
 47#define TCP_NOTSENT_LOWAT	25
 48#define TCP_SAVE_SYN		27
 49#define TCP_SAVED_SYN		28
 50#define TCP_CA_NAME_MAX		16
 51#define TCP_NAGLE_OFF		1
 52
 53#define TCP_ECN_OK              1
 54#define TCP_ECN_QUEUE_CWR       2
 55#define TCP_ECN_DEMAND_CWR      4
 56#define TCP_ECN_SEEN            8
 57
 58#define TCP_CONG_NEEDS_ECN     0x2
 59
 60#define ICSK_TIME_RETRANS	1
 61#define ICSK_TIME_PROBE0	3
 62#define ICSK_TIME_LOSS_PROBE	5
 63#define ICSK_TIME_REO_TIMEOUT	6
 64
 65#define ETH_ALEN		6
 66#define ETH_HLEN		14
 67#define ETH_P_IP		0x0800
 68#define ETH_P_IPV6		0x86DD
 69
 70#define NEXTHDR_TCP		6
 71
 72#define TCPOPT_NOP		1
 73#define TCPOPT_EOL		0
 74#define TCPOPT_MSS		2
 75#define TCPOPT_WINDOW		3
 76#define TCPOPT_TIMESTAMP	8
 77#define TCPOPT_SACK_PERM	4
 78
 79#define TCPOLEN_MSS		4
 80#define TCPOLEN_WINDOW		3
 81#define TCPOLEN_TIMESTAMP	10
 82#define TCPOLEN_SACK_PERM	2
 83
 84#define CHECKSUM_NONE		0
 85#define CHECKSUM_PARTIAL	3
 86
 87#define IFNAMSIZ		16
 88
 89#define RTF_GATEWAY		0x0002
 90
 91#define TCP_INFINITE_SSTHRESH	0x7fffffff
 92#define TCP_PINGPONG_THRESH	3
 93
 94#define FLAG_DATA_ACKED 0x04 /* This ACK acknowledged new data.		*/
 95#define FLAG_SYN_ACKED 0x10 /* This ACK acknowledged SYN.		*/
 96#define FLAG_DATA_SACKED 0x20 /* New SACK.				*/
 97#define FLAG_SND_UNA_ADVANCED \
 98	0x400 /* Snd_una was changed (!= FLAG_DATA_ACKED) */
 99#define FLAG_ACKED (FLAG_DATA_ACKED | FLAG_SYN_ACKED)
100#define FLAG_FORWARD_PROGRESS (FLAG_ACKED | FLAG_DATA_SACKED)
101
102#define fib_nh_dev		nh_common.nhc_dev
103#define fib_nh_gw_family	nh_common.nhc_gw_family
104#define fib_nh_gw6		nh_common.nhc_gw.ipv6
105
106#define inet_daddr		sk.__sk_common.skc_daddr
107#define inet_rcv_saddr		sk.__sk_common.skc_rcv_saddr
108#define inet_dport		sk.__sk_common.skc_dport
109
110#define udp_portaddr_hash	inet.sk.__sk_common.skc_u16hashes[1]
111
112#define ir_loc_addr		req.__req_common.skc_rcv_saddr
113#define ir_num			req.__req_common.skc_num
114#define ir_rmt_addr		req.__req_common.skc_daddr
115#define ir_rmt_port		req.__req_common.skc_dport
116#define ir_v6_rmt_addr		req.__req_common.skc_v6_daddr
117#define ir_v6_loc_addr		req.__req_common.skc_v6_rcv_saddr
118
119#define sk_num			__sk_common.skc_num
120#define sk_dport		__sk_common.skc_dport
121#define sk_family		__sk_common.skc_family
122#define sk_rmem_alloc		sk_backlog.rmem_alloc
123#define sk_refcnt		__sk_common.skc_refcnt
124#define sk_state		__sk_common.skc_state
125#define sk_net			__sk_common.skc_net
126#define sk_v6_daddr		__sk_common.skc_v6_daddr
127#define sk_v6_rcv_saddr		__sk_common.skc_v6_rcv_saddr
128#define sk_flags		__sk_common.skc_flags
129#define sk_reuse		__sk_common.skc_reuse
130#define sk_cookie		__sk_common.skc_cookie
131
132#define s6_addr32		in6_u.u6_addr32
133
134#define tw_daddr		__tw_common.skc_daddr
135#define tw_rcv_saddr		__tw_common.skc_rcv_saddr
136#define tw_dport		__tw_common.skc_dport
137#define tw_refcnt		__tw_common.skc_refcnt
138#define tw_v6_daddr		__tw_common.skc_v6_daddr
139#define tw_v6_rcv_saddr		__tw_common.skc_v6_rcv_saddr
140
141#define tcp_jiffies32 ((__u32)bpf_jiffies64())
142
143static inline struct inet_connection_sock *inet_csk(const struct sock *sk)
144{
145	return (struct inet_connection_sock *)sk;
146}
147
148static inline void *inet_csk_ca(const struct sock *sk)
149{
150	return (void *)inet_csk(sk)->icsk_ca_priv;
151}
152
153static inline struct tcp_sock *tcp_sk(const struct sock *sk)
154{
155	return (struct tcp_sock *)sk;
156}
157
158static inline bool tcp_in_slow_start(const struct tcp_sock *tp)
159{
160	return tp->snd_cwnd < tp->snd_ssthresh;
161}
162
163static inline bool tcp_is_cwnd_limited(const struct sock *sk)
164{
165	const struct tcp_sock *tp = tcp_sk(sk);
166
167	/* If in slow start, ensure cwnd grows to twice what was ACKed. */
168	if (tcp_in_slow_start(tp))
169		return tp->snd_cwnd < 2 * tp->max_packets_out;
170
171	return !!BPF_CORE_READ_BITFIELD(tp, is_cwnd_limited);
172}
173
174#endif
v6.8
  1/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */
  2#ifndef __BPF_TRACING_NET_H__
  3#define __BPF_TRACING_NET_H__
  4
 
 
 
  5#define AF_INET			2
  6#define AF_INET6		10
  7
  8#define SOL_SOCKET		1
  9#define SO_REUSEADDR		2
 10#define SO_SNDBUF		7
 11#define SO_RCVBUF		8
 12#define SO_KEEPALIVE		9
 13#define SO_PRIORITY		12
 14#define SO_REUSEPORT		15
 15#define SO_RCVLOWAT		18
 16#define SO_BINDTODEVICE		25
 17#define SO_MARK			36
 18#define SO_MAX_PACING_RATE	47
 19#define SO_BINDTOIFINDEX	62
 20#define SO_TXREHASH		74
 21#define __SO_ACCEPTCON		(1 << 16)
 22
 23#define IP_TOS			1
 24
 
 25#define IPV6_TCLASS		67
 26#define IPV6_AUTOFLOWLABEL	70
 27
 28#define TC_ACT_UNSPEC		(-1)
 29#define TC_ACT_OK		0
 30#define TC_ACT_SHOT		2
 31
 32#define SOL_TCP			6
 33#define TCP_NODELAY		1
 34#define TCP_MAXSEG		2
 35#define TCP_KEEPIDLE		4
 36#define TCP_KEEPINTVL		5
 37#define TCP_KEEPCNT		6
 38#define TCP_SYNCNT		7
 39#define TCP_WINDOW_CLAMP	10
 40#define TCP_CONGESTION		13
 41#define TCP_THIN_LINEAR_TIMEOUTS	16
 42#define TCP_USER_TIMEOUT	18
 43#define TCP_NOTSENT_LOWAT	25
 44#define TCP_SAVE_SYN		27
 45#define TCP_SAVED_SYN		28
 46#define TCP_CA_NAME_MAX		16
 47#define TCP_NAGLE_OFF		1
 48
 
 
 
 
 
 
 
 49#define ICSK_TIME_RETRANS	1
 50#define ICSK_TIME_PROBE0	3
 51#define ICSK_TIME_LOSS_PROBE	5
 52#define ICSK_TIME_REO_TIMEOUT	6
 53
 
 54#define ETH_HLEN		14
 
 55#define ETH_P_IPV6		0x86DD
 56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 57#define CHECKSUM_NONE		0
 58#define CHECKSUM_PARTIAL	3
 59
 60#define IFNAMSIZ		16
 61
 62#define RTF_GATEWAY		0x0002
 63
 64#define TCP_INFINITE_SSTHRESH	0x7fffffff
 65#define TCP_PINGPONG_THRESH	3
 66
 
 
 
 
 
 
 
 
 67#define fib_nh_dev		nh_common.nhc_dev
 68#define fib_nh_gw_family	nh_common.nhc_gw_family
 69#define fib_nh_gw6		nh_common.nhc_gw.ipv6
 70
 71#define inet_daddr		sk.__sk_common.skc_daddr
 72#define inet_rcv_saddr		sk.__sk_common.skc_rcv_saddr
 73#define inet_dport		sk.__sk_common.skc_dport
 74
 75#define udp_portaddr_hash	inet.sk.__sk_common.skc_u16hashes[1]
 76
 77#define ir_loc_addr		req.__req_common.skc_rcv_saddr
 78#define ir_num			req.__req_common.skc_num
 79#define ir_rmt_addr		req.__req_common.skc_daddr
 80#define ir_rmt_port		req.__req_common.skc_dport
 81#define ir_v6_rmt_addr		req.__req_common.skc_v6_daddr
 82#define ir_v6_loc_addr		req.__req_common.skc_v6_rcv_saddr
 83
 84#define sk_num			__sk_common.skc_num
 85#define sk_dport		__sk_common.skc_dport
 86#define sk_family		__sk_common.skc_family
 87#define sk_rmem_alloc		sk_backlog.rmem_alloc
 88#define sk_refcnt		__sk_common.skc_refcnt
 89#define sk_state		__sk_common.skc_state
 90#define sk_net			__sk_common.skc_net
 91#define sk_v6_daddr		__sk_common.skc_v6_daddr
 92#define sk_v6_rcv_saddr		__sk_common.skc_v6_rcv_saddr
 93#define sk_flags		__sk_common.skc_flags
 94#define sk_reuse		__sk_common.skc_reuse
 95#define sk_cookie		__sk_common.skc_cookie
 96
 97#define s6_addr32		in6_u.u6_addr32
 98
 99#define tw_daddr		__tw_common.skc_daddr
100#define tw_rcv_saddr		__tw_common.skc_rcv_saddr
101#define tw_dport		__tw_common.skc_dport
102#define tw_refcnt		__tw_common.skc_refcnt
103#define tw_v6_daddr		__tw_common.skc_v6_daddr
104#define tw_v6_rcv_saddr		__tw_common.skc_v6_rcv_saddr
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
106#endif