brintos

brintos / linux-shallow public Read only

0
0
Text · 4.5 KiB · 59843b4 Raw
175 lines · c
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			29#define AF_INET6		1010 11#define SOL_SOCKET		112#define SO_REUSEADDR		213#define SO_SNDBUF		714#define SO_RCVBUF		815#define SO_KEEPALIVE		916#define SO_PRIORITY		1217#define SO_REUSEPORT		1518#define SO_RCVLOWAT		1819#define SO_BINDTODEVICE		2520#define SO_MARK			3621#define SO_MAX_PACING_RATE	4722#define SO_BINDTOIFINDEX	6223#define SO_TXREHASH		7424#define __SO_ACCEPTCON		(1 << 16)25 26#define IP_TOS			127 28#define SOL_IPV6		4129#define IPV6_TCLASS		6730#define IPV6_AUTOFLOWLABEL	7031 32#define TC_ACT_UNSPEC		(-1)33#define TC_ACT_OK		034#define TC_ACT_SHOT		235 36#define SOL_TCP			637#define TCP_NODELAY		138#define TCP_MAXSEG		239#define TCP_KEEPIDLE		440#define TCP_KEEPINTVL		541#define TCP_KEEPCNT		642#define TCP_SYNCNT		743#define TCP_WINDOW_CLAMP	1044#define TCP_CONGESTION		1345#define TCP_THIN_LINEAR_TIMEOUTS	1646#define TCP_USER_TIMEOUT	1847#define TCP_NOTSENT_LOWAT	2548#define TCP_SAVE_SYN		2749#define TCP_SAVED_SYN		2850#define TCP_CA_NAME_MAX		1651#define TCP_NAGLE_OFF		152 53#define TCP_ECN_OK              154#define TCP_ECN_QUEUE_CWR       255#define TCP_ECN_DEMAND_CWR      456#define TCP_ECN_SEEN            857 58#define TCP_CONG_NEEDS_ECN     0x259 60#define ICSK_TIME_RETRANS	161#define ICSK_TIME_PROBE0	362#define ICSK_TIME_LOSS_PROBE	563#define ICSK_TIME_REO_TIMEOUT	664 65#define ETH_ALEN		666#define ETH_HLEN		1467#define ETH_P_IP		0x080068#define ETH_P_IPV6		0x86DD69 70#define NEXTHDR_TCP		671 72#define TCPOPT_NOP		173#define TCPOPT_EOL		074#define TCPOPT_MSS		275#define TCPOPT_WINDOW		376#define TCPOPT_TIMESTAMP	877#define TCPOPT_SACK_PERM	478 79#define TCPOLEN_MSS		480#define TCPOLEN_WINDOW		381#define TCPOLEN_TIMESTAMP	1082#define TCPOLEN_SACK_PERM	283 84#define CHECKSUM_NONE		085#define CHECKSUM_PARTIAL	386 87#define IFNAMSIZ		1688 89#define RTF_GATEWAY		0x000290 91#define TCP_INFINITE_SSTHRESH	0x7fffffff92#define TCP_PINGPONG_THRESH	393 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_dev103#define fib_nh_gw_family	nh_common.nhc_gw_family104#define fib_nh_gw6		nh_common.nhc_gw.ipv6105 106#define inet_daddr		sk.__sk_common.skc_daddr107#define inet_rcv_saddr		sk.__sk_common.skc_rcv_saddr108#define inet_dport		sk.__sk_common.skc_dport109 110#define udp_portaddr_hash	inet.sk.__sk_common.skc_u16hashes[1]111 112#define ir_loc_addr		req.__req_common.skc_rcv_saddr113#define ir_num			req.__req_common.skc_num114#define ir_rmt_addr		req.__req_common.skc_daddr115#define ir_rmt_port		req.__req_common.skc_dport116#define ir_v6_rmt_addr		req.__req_common.skc_v6_daddr117#define ir_v6_loc_addr		req.__req_common.skc_v6_rcv_saddr118 119#define sk_num			__sk_common.skc_num120#define sk_dport		__sk_common.skc_dport121#define sk_family		__sk_common.skc_family122#define sk_rmem_alloc		sk_backlog.rmem_alloc123#define sk_refcnt		__sk_common.skc_refcnt124#define sk_state		__sk_common.skc_state125#define sk_net			__sk_common.skc_net126#define sk_v6_daddr		__sk_common.skc_v6_daddr127#define sk_v6_rcv_saddr		__sk_common.skc_v6_rcv_saddr128#define sk_flags		__sk_common.skc_flags129#define sk_reuse		__sk_common.skc_reuse130#define sk_cookie		__sk_common.skc_cookie131 132#define s6_addr32		in6_u.u6_addr32133 134#define tw_daddr		__tw_common.skc_daddr135#define tw_rcv_saddr		__tw_common.skc_rcv_saddr136#define tw_dport		__tw_common.skc_dport137#define tw_refcnt		__tw_common.skc_refcnt138#define tw_v6_daddr		__tw_common.skc_v6_daddr139#define tw_v6_rcv_saddr		__tw_common.skc_v6_rcv_saddr140 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#endif175