Skip to content
Navigation Menu
Toggle navigation
Sign in
In this repository
All GitHub Enterprise
↵
Jump to
↵
No suggested jump to results
In this repository
All GitHub Enterprise
↵
Jump to
↵
In this organization
All GitHub Enterprise
↵
Jump to
↵
In this repository
All GitHub Enterprise
↵
Jump to
↵
Sign in
Reseting focus
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
mariux64
/
linux
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
1
Pull requests
0
Actions
Projects
0
Wiki
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security
Insights
Files
3bdfb04
Documentation
LICENSES
arch
block
certs
crypto
drivers
fs
include
acpi
asm-generic
clocksource
crypto
drm
dt-bindings
keys
kunit
kvm
linux
math-emu
media
memory
misc
net
9p
bluetooth
caif
iucv
netfilter
netns
nfc
phonet
sctp
tc_act
6lowpan.h
Space.h
act_api.h
addrconf.h
af_ieee802154.h
af_rxrpc.h
af_unix.h
af_vsock.h
ah.h
amt.h
arp.h
atmclip.h
ax25.h
ax88796.h
bareudp.h
bond_3ad.h
bond_alb.h
bond_options.h
bonding.h
bpf_sk_storage.h
busy_poll.h
calipso.h
cfg80211-wext.h
cfg80211.h
cfg802154.h
checksum.h
cipso_ipv4.h
cls_cgroup.h
codel.h
codel_impl.h
codel_qdisc.h
compat.h
datalink.h
dcbevent.h
dcbnl.h
devlink.h
dropreason.h
dsa.h
dsfield.h
dst.h
dst_cache.h
dst_metadata.h
dst_ops.h
erspan.h
esp.h
espintcp.h
ethoc.h
failover.h
fib_notifier.h
fib_rules.h
firewire.h
flow.h
flow_dissector.h
flow_offload.h
fou.h
fq.h
fq_impl.h
garp.h
gen_stats.h
genetlink.h
geneve.h
gre.h
gro.h
gro_cells.h
gtp.h
gue.h
hwbm.h
icmp.h
ieee80211_radiotap.h
ieee802154_netdev.h
if_inet6.h
ife.h
ila.h
inet6_connection_sock.h
inet6_hashtables.h
inet_common.h
inet_connection_sock.h
inet_dscp.h
inet_ecn.h
inet_frag.h
inet_hashtables.h
inet_sock.h
inet_timewait_sock.h
inetpeer.h
ioam6.h
ip.h
ip6_checksum.h
ip6_fib.h
ip6_route.h
ip6_tunnel.h
ip_fib.h
ip_tunnels.h
ip_vs.h
ipcomp.h
ipconfig.h
ipv6.h
ipv6_frag.h
ipv6_stubs.h
iw_handler.h
kcm.h
l3mdev.h
lag.h
lapb.h
lib80211.h
llc.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
lwtunnel.h
mac80211.h
mac802154.h
macsec.h
mctp.h
mctpdevice.h
mip6.h
mld.h
mpls.h
mpls_iptunnel.h
mptcp.h
mrp.h
ncsi.h
ndisc.h
neighbour.h
net_debug.h
net_failover.h
net_namespace.h
net_ratelimit.h
net_trackers.h
netevent.h
netlabel.h
netlink.h
netprio_cgroup.h
netrom.h
nexthop.h
nl802154.h
nsh.h
p8022.h
page_pool.h
pie.h
ping.h
pkt_cls.h
pkt_sched.h
pptp.h
protocol.h
psample.h
psnap.h
raw.h
rawv6.h
red.h
regulatory.h
request_sock.h
rose.h
route.h
rpl.h
rsi_91x.h
rtnetlink.h
rtnh.h
sch_generic.h
scm.h
secure_seq.h
seg6.h
seg6_hmac.h
seg6_local.h
selftests.h
slhc_vj.h
smc.h
snmp.h
sock.h
sock_reuseport.h
stp.h
strparser.h
switchdev.h
tcp.h
tcp_states.h
timewait_sock.h
tipc.h
tls.h
tls_toe.h
transp_v6.h
tso.h
tun_proto.h
udp.h
udp_tunnel.h
udplite.h
vsock_addr.h
vxlan.h
wext.h
x25.h
x25device.h
xdp.h
xdp_priv.h
xdp_sock.h
xdp_sock_drv.h
xfrm.h
xsk_buff_pool.h
pcmcia
ras
rdma
rv
scsi
soc
sound
target
trace
uapi
ufs
vdso
video
xen
init
io_uring
ipc
kernel
lib
mm
net
rust
samples
scripts
security
sound
tools
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile
README
Breadcrumbs
linux
/
include
/
net
/
dropreason.h
Copy path
Blame
Blame
Latest commit
History
History
337 lines (331 loc) · 10.5 KB
Breadcrumbs
linux
/
include
/
net
/
dropreason.h
Top
File metadata and controls
Code
Blame
337 lines (331 loc) · 10.5 KB
Raw
/* SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef _LINUX_DROPREASON_H #define _LINUX_DROPREASON_H #define DEFINE_DROP_REASON(FN, FNe) \ FN(NOT_SPECIFIED) \ FN(NO_SOCKET) \ FN(PKT_TOO_SMALL) \ FN(TCP_CSUM) \ FN(SOCKET_FILTER) \ FN(UDP_CSUM) \ FN(NETFILTER_DROP) \ FN(OTHERHOST) \ FN(IP_CSUM) \ FN(IP_INHDR) \ FN(IP_RPFILTER) \ FN(UNICAST_IN_L2_MULTICAST) \ FN(XFRM_POLICY) \ FN(IP_NOPROTO) \ FN(SOCKET_RCVBUFF) \ FN(PROTO_MEM) \ FN(TCP_MD5NOTFOUND) \ FN(TCP_MD5UNEXPECTED) \ FN(TCP_MD5FAILURE) \ FN(SOCKET_BACKLOG) \ FN(TCP_FLAGS) \ FN(TCP_ZEROWINDOW) \ FN(TCP_OLD_DATA) \ FN(TCP_OVERWINDOW) \ FN(TCP_OFOMERGE) \ FN(TCP_RFC7323_PAWS) \ FN(TCP_INVALID_SEQUENCE) \ FN(TCP_RESET) \ FN(TCP_INVALID_SYN) \ FN(TCP_CLOSE) \ FN(TCP_FASTOPEN) \ FN(TCP_OLD_ACK) \ FN(TCP_TOO_OLD_ACK) \ FN(TCP_ACK_UNSENT_DATA) \ FN(TCP_OFO_QUEUE_PRUNE) \ FN(TCP_OFO_DROP) \ FN(IP_OUTNOROUTES) \ FN(BPF_CGROUP_EGRESS) \ FN(IPV6DISABLED) \ FN(NEIGH_CREATEFAIL) \ FN(NEIGH_FAILED) \ FN(NEIGH_QUEUEFULL) \ FN(NEIGH_DEAD) \ FN(TC_EGRESS) \ FN(QDISC_DROP) \ FN(CPU_BACKLOG) \ FN(XDP) \ FN(TC_INGRESS) \ FN(UNHANDLED_PROTO) \ FN(SKB_CSUM) \ FN(SKB_GSO_SEG) \ FN(SKB_UCOPY_FAULT) \ FN(DEV_HDR) \ FN(DEV_READY) \ FN(FULL_RING) \ FN(NOMEM) \ FN(HDR_TRUNC) \ FN(TAP_FILTER) \ FN(TAP_TXFILTER) \ FN(ICMP_CSUM) \ FN(INVALID_PROTO) \ FN(IP_INADDRERRORS) \ FN(IP_INNOROUTES) \ FN(PKT_TOO_BIG) \ FN(DUP_FRAG) \ FN(FRAG_REASM_TIMEOUT) \ FN(FRAG_TOO_FAR) \ FNe(MAX) /** * enum skb_drop_reason - the reasons of skb drops * * The reason of skb drop, which is used in kfree_skb_reason(). */ enum skb_drop_reason { /** * @SKB_NOT_DROPPED_YET: skb is not dropped yet (used for no-drop case) */ SKB_NOT_DROPPED_YET = 0, /** @SKB_CONSUMED: packet has been consumed */ SKB_CONSUMED, /** @SKB_DROP_REASON_NOT_SPECIFIED: drop reason is not specified */ SKB_DROP_REASON_NOT_SPECIFIED, /** @SKB_DROP_REASON_NO_SOCKET: socket not found */ SKB_DROP_REASON_NO_SOCKET, /** @SKB_DROP_REASON_PKT_TOO_SMALL: packet size is too small */ SKB_DROP_REASON_PKT_TOO_SMALL, /** @SKB_DROP_REASON_TCP_CSUM: TCP checksum error */ SKB_DROP_REASON_TCP_CSUM, /** @SKB_DROP_REASON_SOCKET_FILTER: dropped by socket filter */ SKB_DROP_REASON_SOCKET_FILTER, /** @SKB_DROP_REASON_UDP_CSUM: UDP checksum error */ SKB_DROP_REASON_UDP_CSUM, /** @SKB_DROP_REASON_NETFILTER_DROP: dropped by netfilter */ SKB_DROP_REASON_NETFILTER_DROP, /** * @SKB_DROP_REASON_OTHERHOST: packet don't belong to current host * (interface is in promisc mode) */ SKB_DROP_REASON_OTHERHOST, /** @SKB_DROP_REASON_IP_CSUM: IP checksum error */ SKB_DROP_REASON_IP_CSUM, /** * @SKB_DROP_REASON_IP_INHDR: there is something wrong with IP header (see * IPSTATS_MIB_INHDRERRORS) */ SKB_DROP_REASON_IP_INHDR, /** * @SKB_DROP_REASON_IP_RPFILTER: IP rpfilter validate failed. see the * document for rp_filter in ip-sysctl.rst for more information */ SKB_DROP_REASON_IP_RPFILTER, /** * @SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST: destination address of L2 is * multicast, but L3 is unicast. */ SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST, /** @SKB_DROP_REASON_XFRM_POLICY: xfrm policy check failed */ SKB_DROP_REASON_XFRM_POLICY, /** @SKB_DROP_REASON_IP_NOPROTO: no support for IP protocol */ SKB_DROP_REASON_IP_NOPROTO, /** @SKB_DROP_REASON_SOCKET_RCVBUFF: socket receive buff is full */ SKB_DROP_REASON_SOCKET_RCVBUFF, /** * @SKB_DROP_REASON_PROTO_MEM: proto memory limition, such as udp packet * drop out of udp_memory_allocated. */ SKB_DROP_REASON_PROTO_MEM, /** * @SKB_DROP_REASON_TCP_MD5NOTFOUND: no MD5 hash and one expected, * corresponding to LINUX_MIB_TCPMD5NOTFOUND */ SKB_DROP_REASON_TCP_MD5NOTFOUND, /** * @SKB_DROP_REASON_TCP_MD5UNEXPECTED: MD5 hash and we're not expecting * one, corresponding to LINUX_MIB_TCPMD5UNEXPECTED */ SKB_DROP_REASON_TCP_MD5UNEXPECTED, /** * @SKB_DROP_REASON_TCP_MD5FAILURE: MD5 hash and its wrong, corresponding * to LINUX_MIB_TCPMD5FAILURE */ SKB_DROP_REASON_TCP_MD5FAILURE, /** * @SKB_DROP_REASON_SOCKET_BACKLOG: failed to add skb to socket backlog ( * see LINUX_MIB_TCPBACKLOGDROP) */ SKB_DROP_REASON_SOCKET_BACKLOG, /** @SKB_DROP_REASON_TCP_FLAGS: TCP flags invalid */ SKB_DROP_REASON_TCP_FLAGS, /** * @SKB_DROP_REASON_TCP_ZEROWINDOW: TCP receive window size is zero, * see LINUX_MIB_TCPZEROWINDOWDROP */ SKB_DROP_REASON_TCP_ZEROWINDOW, /** * @SKB_DROP_REASON_TCP_OLD_DATA: the TCP data reveived is already * received before (spurious retrans may happened), see * LINUX_MIB_DELAYEDACKLOST */ SKB_DROP_REASON_TCP_OLD_DATA, /** * @SKB_DROP_REASON_TCP_OVERWINDOW: the TCP data is out of window, * the seq of the first byte exceed the right edges of receive * window */ SKB_DROP_REASON_TCP_OVERWINDOW, /** * @SKB_DROP_REASON_TCP_OFOMERGE: the data of skb is already in the ofo * queue, corresponding to LINUX_MIB_TCPOFOMERGE */ SKB_DROP_REASON_TCP_OFOMERGE, /** * @SKB_DROP_REASON_TCP_RFC7323_PAWS: PAWS check, corresponding to * LINUX_MIB_PAWSESTABREJECTED */ SKB_DROP_REASON_TCP_RFC7323_PAWS, /** @SKB_DROP_REASON_TCP_INVALID_SEQUENCE: Not acceptable SEQ field */ SKB_DROP_REASON_TCP_INVALID_SEQUENCE, /** @SKB_DROP_REASON_TCP_RESET: Invalid RST packet */ SKB_DROP_REASON_TCP_RESET, /** * @SKB_DROP_REASON_TCP_INVALID_SYN: Incoming packet has unexpected * SYN flag */ SKB_DROP_REASON_TCP_INVALID_SYN, /** @SKB_DROP_REASON_TCP_CLOSE: TCP socket in CLOSE state */ SKB_DROP_REASON_TCP_CLOSE, /** @SKB_DROP_REASON_TCP_FASTOPEN: dropped by FASTOPEN request socket */ SKB_DROP_REASON_TCP_FASTOPEN, /** @SKB_DROP_REASON_TCP_OLD_ACK: TCP ACK is old, but in window */ SKB_DROP_REASON_TCP_OLD_ACK, /** @SKB_DROP_REASON_TCP_TOO_OLD_ACK: TCP ACK is too old */ SKB_DROP_REASON_TCP_TOO_OLD_ACK, /** * @SKB_DROP_REASON_TCP_ACK_UNSENT_DATA: TCP ACK for data we haven't * sent yet */ SKB_DROP_REASON_TCP_ACK_UNSENT_DATA, /** @SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE: pruned from TCP OFO queue */ SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE, /** @SKB_DROP_REASON_TCP_OFO_DROP: data already in receive queue */ SKB_DROP_REASON_TCP_OFO_DROP, /** @SKB_DROP_REASON_IP_OUTNOROUTES: route lookup failed */ SKB_DROP_REASON_IP_OUTNOROUTES, /** * @SKB_DROP_REASON_BPF_CGROUP_EGRESS: dropped by BPF_PROG_TYPE_CGROUP_SKB * eBPF program */ SKB_DROP_REASON_BPF_CGROUP_EGRESS, /** @SKB_DROP_REASON_IPV6DISABLED: IPv6 is disabled on the device */ SKB_DROP_REASON_IPV6DISABLED, /** @SKB_DROP_REASON_NEIGH_CREATEFAIL: failed to create neigh entry */ SKB_DROP_REASON_NEIGH_CREATEFAIL, /** @SKB_DROP_REASON_NEIGH_FAILED: neigh entry in failed state */ SKB_DROP_REASON_NEIGH_FAILED, /** @SKB_DROP_REASON_NEIGH_QUEUEFULL: arp_queue for neigh entry is full */ SKB_DROP_REASON_NEIGH_QUEUEFULL, /** @SKB_DROP_REASON_NEIGH_DEAD: neigh entry is dead */ SKB_DROP_REASON_NEIGH_DEAD, /** @SKB_DROP_REASON_TC_EGRESS: dropped in TC egress HOOK */ SKB_DROP_REASON_TC_EGRESS, /** * @SKB_DROP_REASON_QDISC_DROP: dropped by qdisc when packet outputting ( * failed to enqueue to current qdisc) */ SKB_DROP_REASON_QDISC_DROP, /** * @SKB_DROP_REASON_CPU_BACKLOG: failed to enqueue the skb to the per CPU * backlog queue. This can be caused by backlog queue full (see * netdev_max_backlog in net.rst) or RPS flow limit */ SKB_DROP_REASON_CPU_BACKLOG, /** @SKB_DROP_REASON_XDP: dropped by XDP in input path */ SKB_DROP_REASON_XDP, /** @SKB_DROP_REASON_TC_INGRESS: dropped in TC ingress HOOK */ SKB_DROP_REASON_TC_INGRESS, /** @SKB_DROP_REASON_UNHANDLED_PROTO: protocol not implemented or not supported */ SKB_DROP_REASON_UNHANDLED_PROTO, /** @SKB_DROP_REASON_SKB_CSUM: sk_buff checksum computation error */ SKB_DROP_REASON_SKB_CSUM, /** @SKB_DROP_REASON_SKB_GSO_SEG: gso segmentation error */ SKB_DROP_REASON_SKB_GSO_SEG, /** * @SKB_DROP_REASON_SKB_UCOPY_FAULT: failed to copy data from user space, * e.g., via zerocopy_sg_from_iter() or skb_orphan_frags_rx() */ SKB_DROP_REASON_SKB_UCOPY_FAULT, /** @SKB_DROP_REASON_DEV_HDR: device driver specific header/metadata is invalid */ SKB_DROP_REASON_DEV_HDR, /** * @SKB_DROP_REASON_DEV_READY: the device is not ready to xmit/recv due to * any of its data structure that is not up/ready/initialized, * e.g., the IFF_UP is not set, or driver specific tun->tfiles[txq] * is not initialized */ SKB_DROP_REASON_DEV_READY, /** @SKB_DROP_REASON_FULL_RING: ring buffer is full */ SKB_DROP_REASON_FULL_RING, /** @SKB_DROP_REASON_NOMEM: error due to OOM */ SKB_DROP_REASON_NOMEM, /** * @SKB_DROP_REASON_HDR_TRUNC: failed to trunc/extract the header from * networking data, e.g., failed to pull the protocol header from * frags via pskb_may_pull() */ SKB_DROP_REASON_HDR_TRUNC, /** * @SKB_DROP_REASON_TAP_FILTER: dropped by (ebpf) filter directly attached * to tun/tap, e.g., via TUNSETFILTEREBPF */ SKB_DROP_REASON_TAP_FILTER, /** * @SKB_DROP_REASON_TAP_TXFILTER: dropped by tx filter implemented at * tun/tap, e.g., check_filter() */ SKB_DROP_REASON_TAP_TXFILTER, /** @SKB_DROP_REASON_ICMP_CSUM: ICMP checksum error */ SKB_DROP_REASON_ICMP_CSUM, /** * @SKB_DROP_REASON_INVALID_PROTO: the packet doesn't follow RFC 2211, * such as a broadcasts ICMP_TIMESTAMP */ SKB_DROP_REASON_INVALID_PROTO, /** * @SKB_DROP_REASON_IP_INADDRERRORS: host unreachable, corresponding to * IPSTATS_MIB_INADDRERRORS */ SKB_DROP_REASON_IP_INADDRERRORS, /** * @SKB_DROP_REASON_IP_INNOROUTES: network unreachable, corresponding to * IPSTATS_MIB_INADDRERRORS */ SKB_DROP_REASON_IP_INNOROUTES, /** * @SKB_DROP_REASON_PKT_TOO_BIG: packet size is too big (maybe exceed the * MTU) */ SKB_DROP_REASON_PKT_TOO_BIG, /** @SKB_DROP_REASON_DUP_FRAG: duplicate fragment */ SKB_DROP_REASON_DUP_FRAG, /** @SKB_DROP_REASON_FRAG_REASM_TIMEOUT: fragment reassembly timeout */ SKB_DROP_REASON_FRAG_REASM_TIMEOUT, /** * @SKB_DROP_REASON_FRAG_TOO_FAR: ipv4 fragment too far. * (/proc/sys/net/ipv4/ipfrag_max_dist) */ SKB_DROP_REASON_FRAG_TOO_FAR, /** * @SKB_DROP_REASON_MAX: the maximum of drop reason, which shouldn't be * used as a real 'reason' */ SKB_DROP_REASON_MAX, }; #define SKB_DR_INIT(name, reason) \ enum skb_drop_reason name = SKB_DROP_REASON_##reason #define SKB_DR(name) \ SKB_DR_INIT(name, NOT_SPECIFIED) #define SKB_DR_SET(name, reason) \ (name = SKB_DROP_REASON_##reason) #define SKB_DR_OR(name, reason) \ do { \ if (name == SKB_DROP_REASON_NOT_SPECIFIED || \ name == SKB_NOT_DROPPED_YET) \ SKB_DR_SET(name, reason); \ } while (0) extern const char * const drop_reasons[]; #endif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
You can’t perform that action at this time.