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_ALEN		6
55#define ETH_HLEN		14
56#define ETH_P_IP		0x0800
57#define ETH_P_IPV6		0x86DD
58
59#define NEXTHDR_TCP		6
60
61#define TCPOPT_NOP		1
62#define TCPOPT_EOL		0
63#define TCPOPT_MSS		2
64#define TCPOPT_WINDOW		3
65#define TCPOPT_TIMESTAMP	8
66#define TCPOPT_SACK_PERM	4
67
68#define TCPOLEN_MSS		4
69#define TCPOLEN_WINDOW		3
70#define TCPOLEN_TIMESTAMP	10
71#define TCPOLEN_SACK_PERM	2
72
73#define CHECKSUM_NONE		0
74#define CHECKSUM_PARTIAL	3
75
76#define IFNAMSIZ		16
77
78#define RTF_GATEWAY		0x0002
79
80#define TCP_INFINITE_SSTHRESH	0x7fffffff
81#define TCP_PINGPONG_THRESH	3
82
83#define fib_nh_dev		nh_common.nhc_dev
84#define fib_nh_gw_family	nh_common.nhc_gw_family
85#define fib_nh_gw6		nh_common.nhc_gw.ipv6
86
87#define inet_daddr		sk.__sk_common.skc_daddr
88#define inet_rcv_saddr		sk.__sk_common.skc_rcv_saddr
89#define inet_dport		sk.__sk_common.skc_dport
90
91#define udp_portaddr_hash	inet.sk.__sk_common.skc_u16hashes[1]
92
93#define ir_loc_addr		req.__req_common.skc_rcv_saddr
94#define ir_num			req.__req_common.skc_num
95#define ir_rmt_addr		req.__req_common.skc_daddr
96#define ir_rmt_port		req.__req_common.skc_dport
97#define ir_v6_rmt_addr		req.__req_common.skc_v6_daddr
98#define ir_v6_loc_addr		req.__req_common.skc_v6_rcv_saddr
99
100#define sk_num			__sk_common.skc_num
101#define sk_dport		__sk_common.skc_dport
102#define sk_family		__sk_common.skc_family
103#define sk_rmem_alloc		sk_backlog.rmem_alloc
104#define sk_refcnt		__sk_common.skc_refcnt
105#define sk_state		__sk_common.skc_state
106#define sk_net			__sk_common.skc_net
107#define sk_v6_daddr		__sk_common.skc_v6_daddr
108#define sk_v6_rcv_saddr		__sk_common.skc_v6_rcv_saddr
109#define sk_flags		__sk_common.skc_flags
110#define sk_reuse		__sk_common.skc_reuse
111#define sk_cookie		__sk_common.skc_cookie
112
113#define s6_addr32		in6_u.u6_addr32
114
115#define tw_daddr		__tw_common.skc_daddr
116#define tw_rcv_saddr		__tw_common.skc_rcv_saddr
117#define tw_dport		__tw_common.skc_dport
118#define tw_refcnt		__tw_common.skc_refcnt
119#define tw_v6_daddr		__tw_common.skc_v6_daddr
120#define tw_v6_rcv_saddr		__tw_common.skc_v6_rcv_saddr
121
122#endif
123