6
6
#define DEFINE_DROP_REASON (FN , FNe ) \
7
7
FN(NOT_SPECIFIED) \
8
8
FN(NO_SOCKET) \
9
+ FN(SOCKET_CLOSE) \
10
+ FN(SOCKET_FILTER) \
11
+ FN(SOCKET_RCVBUFF) \
12
+ FN(UNIX_DISCONNECT) \
13
+ FN(UNIX_SKIP_OOB) \
9
14
FN(PKT_TOO_SMALL) \
10
15
FN(TCP_CSUM) \
11
- FN(SOCKET_FILTER) \
12
16
FN(UDP_CSUM) \
13
17
FN(NETFILTER_DROP) \
14
18
FN(OTHERHOST) \
18
22
FN(UNICAST_IN_L2_MULTICAST) \
19
23
FN(XFRM_POLICY) \
20
24
FN(IP_NOPROTO) \
21
- FN(SOCKET_RCVBUFF) \
22
25
FN(PROTO_MEM) \
23
26
FN(TCP_AUTH_HDR) \
24
27
FN(TCP_MD5NOTFOUND) \
36
39
FN(TCP_OVERWINDOW) \
37
40
FN(TCP_OFOMERGE) \
38
41
FN(TCP_RFC7323_PAWS) \
42
+ FN(TCP_RFC7323_PAWS_ACK) \
43
+ FN(TCP_RFC7323_TW_PAWS) \
44
+ FN(TCP_RFC7323_TSECR) \
45
+ FN(TCP_LISTEN_OVERFLOW) \
39
46
FN(TCP_OLD_SEQUENCE) \
40
47
FN(TCP_INVALID_SEQUENCE) \
41
48
FN(TCP_INVALID_ACK_SEQUENCE) \
58
65
FN(TC_EGRESS) \
59
66
FN(SECURITY_HOOK) \
60
67
FN(QDISC_DROP) \
68
+ FN(QDISC_OVERLIMIT) \
69
+ FN(QDISC_CONGESTED) \
70
+ FN(CAKE_FLOOD) \
71
+ FN(FQ_BAND_LIMIT) \
72
+ FN(FQ_HORIZON_LIMIT) \
73
+ FN(FQ_FLOW_LIMIT) \
61
74
FN(CPU_BACKLOG) \
62
75
FN(XDP) \
63
76
FN(TC_INGRESS) \
76
89
FN(INVALID_PROTO) \
77
90
FN(IP_INADDRERRORS) \
78
91
FN(IP_INNOROUTES) \
92
+ FN(IP_LOCAL_SOURCE) \
93
+ FN(IP_INVALID_SOURCE) \
94
+ FN(IP_LOCALNET) \
95
+ FN(IP_INVALID_DEST) \
79
96
FN(PKT_TOO_BIG) \
80
97
FN(DUP_FRAG) \
81
98
FN(FRAG_REASM_TIMEOUT) \
96
113
FN(VXLAN_VNI_NOT_FOUND) \
97
114
FN(MAC_INVALID_SOURCE) \
98
115
FN(VXLAN_ENTRY_EXISTS) \
99
- FN(VXLAN_NO_REMOTE ) \
116
+ FN(NO_TX_TARGET ) \
100
117
FN(IP_TUNNEL_ECN) \
101
118
FN(TUNNEL_TXINFO) \
102
119
FN(LOCAL_MAC) \
120
+ FN(ARP_PVLAN_DISABLE) \
121
+ FN(MAC_IEEE_MAC_CONTROL) \
122
+ FN(BRIDGE_INGRESS_STP_STATE) \
103
123
FNe(MAX)
104
124
105
125
/**
@@ -124,12 +144,27 @@ enum skb_drop_reason {
124
144
* 3) no valid child socket during 3WHS process
125
145
*/
126
146
SKB_DROP_REASON_NO_SOCKET ,
147
+ /** @SKB_DROP_REASON_SOCKET_CLOSE: socket is close()d */
148
+ SKB_DROP_REASON_SOCKET_CLOSE ,
149
+ /** @SKB_DROP_REASON_SOCKET_FILTER: dropped by socket filter */
150
+ SKB_DROP_REASON_SOCKET_FILTER ,
151
+ /** @SKB_DROP_REASON_SOCKET_RCVBUFF: socket receive buff is full */
152
+ SKB_DROP_REASON_SOCKET_RCVBUFF ,
153
+ /**
154
+ * @SKB_DROP_REASON_UNIX_DISCONNECT: recv queue is purged when SOCK_DGRAM
155
+ * or SOCK_SEQPACKET socket re-connect()s to another socket or notices
156
+ * during send() that the peer has been close()d.
157
+ */
158
+ SKB_DROP_REASON_UNIX_DISCONNECT ,
159
+ /**
160
+ * @SKB_DROP_REASON_UNIX_SKIP_OOB: Out-Of-Band data is skipped by
161
+ * recv() without MSG_OOB so dropped.
162
+ */
163
+ SKB_DROP_REASON_UNIX_SKIP_OOB ,
127
164
/** @SKB_DROP_REASON_PKT_TOO_SMALL: packet size is too small */
128
165
SKB_DROP_REASON_PKT_TOO_SMALL ,
129
166
/** @SKB_DROP_REASON_TCP_CSUM: TCP checksum error */
130
167
SKB_DROP_REASON_TCP_CSUM ,
131
- /** @SKB_DROP_REASON_SOCKET_FILTER: dropped by socket filter */
132
- SKB_DROP_REASON_SOCKET_FILTER ,
133
168
/** @SKB_DROP_REASON_UDP_CSUM: UDP checksum error */
134
169
SKB_DROP_REASON_UDP_CSUM ,
135
170
/** @SKB_DROP_REASON_NETFILTER_DROP: dropped by netfilter */
@@ -160,8 +195,6 @@ enum skb_drop_reason {
160
195
SKB_DROP_REASON_XFRM_POLICY ,
161
196
/** @SKB_DROP_REASON_IP_NOPROTO: no support for IP protocol */
162
197
SKB_DROP_REASON_IP_NOPROTO ,
163
- /** @SKB_DROP_REASON_SOCKET_RCVBUFF: socket receive buff is full */
164
- SKB_DROP_REASON_SOCKET_RCVBUFF ,
165
198
/**
166
199
* @SKB_DROP_REASON_PROTO_MEM: proto memory limitation, such as
167
200
* udp packet drop out of udp_memory_allocated.
@@ -246,6 +279,24 @@ enum skb_drop_reason {
246
279
* LINUX_MIB_PAWSESTABREJECTED, LINUX_MIB_PAWSACTIVEREJECTED
247
280
*/
248
281
SKB_DROP_REASON_TCP_RFC7323_PAWS ,
282
+ /**
283
+ * @SKB_DROP_REASON_TCP_RFC7323_PAWS_ACK: PAWS check, old ACK packet.
284
+ * Corresponds to LINUX_MIB_PAWS_OLD_ACK.
285
+ */
286
+ SKB_DROP_REASON_TCP_RFC7323_PAWS_ACK ,
287
+ /**
288
+ * @SKB_DROP_REASON_TCP_RFC7323_TW_PAWS: PAWS check, socket is in
289
+ * TIME_WAIT state.
290
+ * Corresponds to LINUX_MIB_PAWS_TW_REJECTED.
291
+ */
292
+ SKB_DROP_REASON_TCP_RFC7323_TW_PAWS ,
293
+ /**
294
+ * @SKB_DROP_REASON_TCP_RFC7323_TSECR: PAWS check, invalid TSEcr.
295
+ * Corresponds to LINUX_MIB_TSECRREJECTED.
296
+ */
297
+ SKB_DROP_REASON_TCP_RFC7323_TSECR ,
298
+ /** @SKB_DROP_REASON_TCP_LISTEN_OVERFLOW: listener queue full. */
299
+ SKB_DROP_REASON_TCP_LISTEN_OVERFLOW ,
249
300
/** @SKB_DROP_REASON_TCP_OLD_SEQUENCE: Old SEQ field (duplicate packet) */
250
301
SKB_DROP_REASON_TCP_OLD_SEQUENCE ,
251
302
/** @SKB_DROP_REASON_TCP_INVALID_SEQUENCE: Not acceptable SEQ field */
@@ -306,6 +357,36 @@ enum skb_drop_reason {
306
357
* failed to enqueue to current qdisc)
307
358
*/
308
359
SKB_DROP_REASON_QDISC_DROP ,
360
+ /**
361
+ * @SKB_DROP_REASON_QDISC_OVERLIMIT: dropped by qdisc when a qdisc
362
+ * instance exceeds its total buffer size limit.
363
+ */
364
+ SKB_DROP_REASON_QDISC_OVERLIMIT ,
365
+ /**
366
+ * @SKB_DROP_REASON_QDISC_CONGESTED: dropped by a qdisc AQM algorithm
367
+ * due to congestion.
368
+ */
369
+ SKB_DROP_REASON_QDISC_CONGESTED ,
370
+ /**
371
+ * @SKB_DROP_REASON_CAKE_FLOOD: dropped by the flood protection part of
372
+ * CAKE qdisc AQM algorithm (BLUE).
373
+ */
374
+ SKB_DROP_REASON_CAKE_FLOOD ,
375
+ /**
376
+ * @SKB_DROP_REASON_FQ_BAND_LIMIT: dropped by fq qdisc when per band
377
+ * limit is reached.
378
+ */
379
+ SKB_DROP_REASON_FQ_BAND_LIMIT ,
380
+ /**
381
+ * @SKB_DROP_REASON_FQ_HORIZON_LIMIT: dropped by fq qdisc when packet
382
+ * timestamp is too far in the future.
383
+ */
384
+ SKB_DROP_REASON_FQ_HORIZON_LIMIT ,
385
+ /**
386
+ * @SKB_DROP_REASON_FQ_FLOW_LIMIT: dropped by fq qdisc when a flow
387
+ * exceeds its limits.
388
+ */
389
+ SKB_DROP_REASON_FQ_FLOW_LIMIT ,
309
390
/**
310
391
* @SKB_DROP_REASON_CPU_BACKLOG: failed to enqueue the skb to the per CPU
311
392
* backlog queue. This can be caused by backlog queue full (see
@@ -373,6 +454,21 @@ enum skb_drop_reason {
373
454
* IPSTATS_MIB_INADDRERRORS
374
455
*/
375
456
SKB_DROP_REASON_IP_INNOROUTES ,
457
+ /** @SKB_DROP_REASON_IP_LOCAL_SOURCE: the source ip is local */
458
+ SKB_DROP_REASON_IP_LOCAL_SOURCE ,
459
+ /**
460
+ * @SKB_DROP_REASON_IP_INVALID_SOURCE: the source ip is invalid:
461
+ * 1) source ip is multicast or limited broadcast
462
+ * 2) source ip is zero and not IGMP
463
+ */
464
+ SKB_DROP_REASON_IP_INVALID_SOURCE ,
465
+ /** @SKB_DROP_REASON_IP_LOCALNET: source or dest ip is local net */
466
+ SKB_DROP_REASON_IP_LOCALNET ,
467
+ /**
468
+ * @SKB_DROP_REASON_IP_INVALID_DEST: the dest ip is invalid:
469
+ * 1) dest ip is 0
470
+ */
471
+ SKB_DROP_REASON_IP_INVALID_DEST ,
376
472
/**
377
473
* @SKB_DROP_REASON_PKT_TOO_BIG: packet size is too big (maybe exceed the
378
474
* MTU)
@@ -441,8 +537,8 @@ enum skb_drop_reason {
441
537
* entry or an entry pointing to a nexthop.
442
538
*/
443
539
SKB_DROP_REASON_VXLAN_ENTRY_EXISTS ,
444
- /** @SKB_DROP_REASON_VXLAN_NO_REMOTE : no remote found for xmit */
445
- SKB_DROP_REASON_VXLAN_NO_REMOTE ,
540
+ /** @SKB_DROP_REASON_NO_TX_TARGET : no target found for xmit */
541
+ SKB_DROP_REASON_NO_TX_TARGET ,
446
542
/**
447
543
* @SKB_DROP_REASON_IP_TUNNEL_ECN: skb is dropped according to
448
544
* RFC 6040 4.2, see __INET_ECN_decapsulate() for detail.
@@ -458,6 +554,22 @@ enum skb_drop_reason {
458
554
* the MAC address of the local netdev.
459
555
*/
460
556
SKB_DROP_REASON_LOCAL_MAC ,
557
+ /**
558
+ * @SKB_DROP_REASON_ARP_PVLAN_DISABLE: packet which is not IP is
559
+ * forwarded to the in_dev, and the proxy_arp_pvlan is not
560
+ * enabled.
561
+ */
562
+ SKB_DROP_REASON_ARP_PVLAN_DISABLE ,
563
+ /**
564
+ * @SKB_DROP_REASON_MAC_IEEE_MAC_CONTROL: the destination MAC address
565
+ * is an IEEE MAC Control address.
566
+ */
567
+ SKB_DROP_REASON_MAC_IEEE_MAC_CONTROL ,
568
+ /**
569
+ * @SKB_DROP_REASON_BRIDGE_INGRESS_STP_STATE: the STP state of the
570
+ * ingress bridge port does not allow frames to be forwarded.
571
+ */
572
+ SKB_DROP_REASON_BRIDGE_INGRESS_STP_STATE ,
461
573
/**
462
574
* @SKB_DROP_REASON_MAX: the maximum of core drop reasons, which
463
575
* shouldn't be used as a real 'reason' - only for tracing code gen
0 commit comments