Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.12 174 lines 4.6 kB view raw
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