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