ENUM SKB_DROP_REASON(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum skb_drop_reason(9) πŸ’…

Okay bestie, welcome to the Kernel API Manual page for enum skb_drop_reason(9) β€” the official roster of reasons an skb gets dropped. It’s literally the receipts for packets that didn’t make it, and we’re going through every single one. πŸ’–


✨ NAME ✨

enum skb_drop_reason β€” the reasons of skb drops. No cap, that’s the whole name section. πŸ’€


🌈 SYNOPSIS 🌈

Here’s the full enum lineup, verbatim, no edits, no crumbs left behind:

       enum skb_drop_reason {
           SKB_NOT_DROPPED_YET ,
           SKB_CONSUMED ,
           SKB_DROP_REASON_NOT_SPECIFIED ,
           SKB_DROP_REASON_NO_SOCKET ,
           SKB_DROP_REASON_SOCKET_CLOSE ,
           SKB_DROP_REASON_SOCKET_FILTER ,
           SKB_DROP_REASON_SOCKET_RCVBUFF ,
           SKB_DROP_REASON_UNIX_DISCONNECT ,
           SKB_DROP_REASON_UNIX_SKIP_OOB ,
           SKB_DROP_REASON_PKT_TOO_SMALL ,
           SKB_DROP_REASON_TCP_CSUM ,
           SKB_DROP_REASON_UDP_CSUM ,
           SKB_DROP_REASON_NETFILTER_DROP ,
           SKB_DROP_REASON_OTHERHOST ,
           SKB_DROP_REASON_IP_CSUM ,
           SKB_DROP_REASON_IP_INHDR ,
           SKB_DROP_REASON_IP_RPFILTER ,
           SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST ,
           SKB_DROP_REASON_XFRM_POLICY ,
           SKB_DROP_REASON_IP_NOPROTO ,
           SKB_DROP_REASON_PROTO_MEM ,
           SKB_DROP_REASON_TCP_AUTH_HDR ,
           SKB_DROP_REASON_TCP_MD5NOTFOUND ,
           SKB_DROP_REASON_TCP_MD5UNEXPECTED ,
           SKB_DROP_REASON_TCP_MD5FAILURE ,
           SKB_DROP_REASON_TCP_AONOTFOUND ,
           SKB_DROP_REASON_TCP_AOUNEXPECTED ,
           SKB_DROP_REASON_TCP_AOKEYNOTFOUND ,
           SKB_DROP_REASON_TCP_AOFAILURE ,
           SKB_DROP_REASON_SOCKET_BACKLOG ,
           SKB_DROP_REASON_TCP_FLAGS ,
           SKB_DROP_REASON_TCP_ABORT_ON_DATA ,
           SKB_DROP_REASON_TCP_ZEROWINDOW ,
           SKB_DROP_REASON_TCP_OLD_DATA ,
           SKB_DROP_REASON_TCP_OVERWINDOW ,
           SKB_DROP_REASON_TCP_OFOMERGE ,
           SKB_DROP_REASON_TCP_RFC7323_PAWS ,
           SKB_DROP_REASON_TCP_RFC7323_PAWS_ACK ,
           SKB_DROP_REASON_TCP_RFC7323_TW_PAWS ,
           SKB_DROP_REASON_TCP_RFC7323_TSECR ,
           SKB_DROP_REASON_TCP_LISTEN_OVERFLOW ,
           SKB_DROP_REASON_TCP_OLD_SEQUENCE ,
           SKB_DROP_REASON_TCP_INVALID_SEQUENCE ,
           SKB_DROP_REASON_TCP_INVALID_END_SEQUENCE ,
           SKB_DROP_REASON_TCP_INVALID_ACK_SEQUENCE ,
           SKB_DROP_REASON_TCP_RESET ,
           SKB_DROP_REASON_TCP_INVALID_SYN ,
           SKB_DROP_REASON_TCP_CLOSE ,
           SKB_DROP_REASON_TCP_FASTOPEN ,
           SKB_DROP_REASON_TCP_OLD_ACK ,
           SKB_DROP_REASON_TCP_TOO_OLD_ACK ,
           SKB_DROP_REASON_TCP_ACK_UNSENT_DATA ,
           SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE ,
           SKB_DROP_REASON_TCP_OFO_DROP ,
           SKB_DROP_REASON_IP_OUTNOROUTES ,
           SKB_DROP_REASON_BPF_CGROUP_EGRESS ,
           SKB_DROP_REASON_IPV6DISABLED ,
           SKB_DROP_REASON_NEIGH_CREATEFAIL ,
           SKB_DROP_REASON_NEIGH_FAILED ,
           SKB_DROP_REASON_NEIGH_QUEUEFULL ,
           SKB_DROP_REASON_NEIGH_DEAD ,
           SKB_DROP_REASON_NEIGH_HH_FILLFAIL ,
           SKB_DROP_REASON_TC_EGRESS ,
           SKB_DROP_REASON_SECURITY_HOOK ,
           SKB_DROP_REASON_QDISC_DROP ,
           SKB_DROP_REASON_QDISC_BURST_DROP ,
           SKB_DROP_REASON_CPU_BACKLOG ,
           SKB_DROP_REASON_MACVLAN_BROADCAST_BACKLOG ,
           SKB_DROP_REASON_IPVLAN_MULTICAST_BACKLOG ,
           SKB_DROP_REASON_XDP ,
           SKB_DROP_REASON_TC_INGRESS ,
           SKB_DROP_REASON_UNHANDLED_PROTO ,
           SKB_DROP_REASON_SKB_CSUM ,
           SKB_DROP_REASON_SKB_GSO_SEG ,
           SKB_DROP_REASON_SKB_BAD_GSO ,
           SKB_DROP_REASON_SKB_UCOPY_FAULT ,
           SKB_DROP_REASON_DEV_HDR ,
           SKB_DROP_REASON_DEV_READY ,
           SKB_DROP_REASON_FULL_RING ,
           SKB_DROP_REASON_NOMEM ,
           SKB_DROP_REASON_HDR_TRUNC ,
           SKB_DROP_REASON_TAP_FILTER ,
           SKB_DROP_REASON_TAP_TXFILTER ,
           SKB_DROP_REASON_ICMP_CSUM ,
           SKB_DROP_REASON_INVALID_PROTO ,
           SKB_DROP_REASON_IP_INADDRERRORS ,
           SKB_DROP_REASON_IP_INNOROUTES ,
           SKB_DROP_REASON_IP_LOCAL_SOURCE ,
           SKB_DROP_REASON_IP_INVALID_SOURCE ,
           SKB_DROP_REASON_IP_LOCALNET ,
           SKB_DROP_REASON_IP_INVALID_DEST ,
           SKB_DROP_REASON_PKT_TOO_BIG ,
           SKB_DROP_REASON_DUP_FRAG ,
           SKB_DROP_REASON_FRAG_REASM_TIMEOUT ,
           SKB_DROP_REASON_FRAG_TOO_FAR ,
           SKB_DROP_REASON_TCP_MINTTL ,
           SKB_DROP_REASON_IPV6_BAD_EXTHDR ,
           SKB_DROP_REASON_IPV6_TOO_MANY_EXTHDRS ,
           SKB_DROP_REASON_IPV6_NDISC_FRAG ,
           SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT ,
           SKB_DROP_REASON_IPV6_NDISC_BAD_CODE ,
           SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS ,
           SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST ,
           SKB_DROP_REASON_QUEUE_PURGE ,
           SKB_DROP_REASON_TC_COOKIE_ERROR ,
           SKB_DROP_REASON_PACKET_SOCK_ERROR ,
           SKB_DROP_REASON_TC_CHAIN_NOTFOUND ,
           SKB_DROP_REASON_TC_RECLASSIFY_LOOP ,
           SKB_DROP_REASON_VXLAN_INVALID_HDR ,
           SKB_DROP_REASON_VXLAN_VNI_NOT_FOUND ,
           SKB_DROP_REASON_MAC_INVALID_SOURCE ,
           SKB_DROP_REASON_VXLAN_ENTRY_EXISTS ,
           SKB_DROP_REASON_NO_TX_TARGET ,
           SKB_DROP_REASON_IP_TUNNEL_ECN ,
           SKB_DROP_REASON_TUNNEL_TXINFO ,
           SKB_DROP_REASON_LOCAL_MAC ,
           SKB_DROP_REASON_ARP_PVLAN_DISABLE ,
           SKB_DROP_REASON_MAC_IEEE_MAC_CONTROL ,
           SKB_DROP_REASON_BRIDGE_INGRESS_STP_STATE ,
           SKB_DROP_REASON_CAN_RX_INVALID_FRAME ,
           SKB_DROP_REASON_CANFD_RX_INVALID_FRAME ,
           SKB_DROP_REASON_CANXL_RX_INVALID_FRAME ,
           SKB_DROP_REASON_PFMEMALLOC ,
           SKB_DROP_REASON_PSP_INPUT ,
           SKB_DROP_REASON_PSP_OUTPUT ,
           SKB_DROP_REASON_RECURSION_LIMIT ,
           SKB_DROP_REASON_MAX ,
           SKB_DROP_REASON_SUBSYS_MASK

       };

πŸŽ€ Constants πŸŽ€

These are the constants, bestie β€” each one a little label for why the packet got sent to the shadow realm. πŸ¦‹

  • SKB_NOT_DROPPED_YET β€” skb is not dropped yet, used for the no-drop case. It’s giving β€œstill alive and thriving” energy. ✨
  • SKB_CONSUMED β€” packet has been consumed. Gone, eaten, no crumbs. πŸ’…
  • SKB_DROP_REASON_NOT_SPECIFIED β€” drop reason is not specified. We literally don’t know why. 😭
  • SKB_DROP_REASON_NO_SOCKET β€” no valid socket that can be used. The reason could be one of three cases:
    1. no established/listening socket found during lookup process
    2. no valid request socket during 3WHS process
    3. no valid child socket during 3WHS process
  • SKB_DROP_REASON_SOCKET_CLOSE β€” socket is closed.
  • SKB_DROP_REASON_SOCKET_FILTER β€” dropped by socket filter.
  • SKB_DROP_REASON_SOCKET_RCVBUFF β€” socket receive buff is full.
  • SKB_DROP_REASON_UNIX_DISCONNECT β€” recv queue is purged when SOCK_DGRAM or SOCK_SEQPACKET socket re-connects to another socket or notices during send that the peer has been closed.
  • SKB_DROP_REASON_UNIX_SKIP_OOB β€” Out-Of-Band data is skipped by recv without MSG_OOB so dropped.
  • SKB_DROP_REASON_PKT_TOO_SMALL β€” packet size is too small.
  • SKB_DROP_REASON_TCP_CSUM β€” TCP checksum error.
  • SKB_DROP_REASON_UDP_CSUM β€” UDP checksum error.
  • SKB_DROP_REASON_NETFILTER_DROP β€” dropped by netfilter.
  • SKB_DROP_REASON_OTHERHOST β€” packet don’t belong to current host (interface is in promisc mode).
  • SKB_DROP_REASON_IP_CSUM β€” IP checksum error.
  • SKB_DROP_REASON_IP_INHDR β€” there is something wrong with IP header (see IPSTATS_MIB_INHDRERRORS).
  • 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_UNICAST_IN_L2_MULTICAST β€” destination address of L2 is multicast, but L3 is unicast.
  • SKB_DROP_REASON_XFRM_POLICY β€” xfrm policy check failed.
  • SKB_DROP_REASON_IP_NOPROTO β€” no support for IP protocol.
  • SKB_DROP_REASON_PROTO_MEM β€” proto memory limitation, such as udp packet drop out of udp_memory_allocated.
  • SKB_DROP_REASON_TCP_AUTH_HDR β€” TCP-MD5 or TCP-AO hashes are met twice or set incorrectly.
  • SKB_DROP_REASON_TCP_MD5NOTFOUND β€” no MD5 hash and one expected, corresponding to LINUX_MIB_TCPMD5NOTFOUND.
  • SKB_DROP_REASON_TCP_MD5UNEXPECTED β€” MD5 hash and we’re not expecting one, corresponding to LINUX_MIB_TCPMD5UNEXPECTED.
  • SKB_DROP_REASON_TCP_MD5FAILURE β€” MD5 hash and its wrong, corresponding to LINUX_MIB_TCPMD5FAILURE.
  • SKB_DROP_REASON_TCP_AONOTFOUND β€” no TCP-AO hash and one was expected, corresponding to LINUX_MIB_TCPAOREQUIRED.
  • SKB_DROP_REASON_TCP_AOUNEXPECTED β€” TCP-AO hash is present and it was not expected, corresponding to LINUX_MIB_TCPAOKEYNOTFOUND.
  • SKB_DROP_REASON_TCP_AOKEYNOTFOUND β€” TCP-AO key is unknown, corresponding to LINUX_MIB_TCPAOKEYNOTFOUND.
  • SKB_DROP_REASON_TCP_AOFAILURE β€” TCP-AO hash is wrong, corresponding to LINUX_MIB_TCPAOBAD.
  • SKB_DROP_REASON_SOCKET_BACKLOG β€” failed to add skb to socket backlog (see LINUX_MIB_TCPBACKLOGDROP).
  • SKB_DROP_REASON_TCP_FLAGS β€” TCP flags invalid.
  • SKB_DROP_REASON_TCP_ABORT_ON_DATA β€” abort on data, corresponding to LINUX_MIB_TCPABORTONDATA.
  • SKB_DROP_REASON_TCP_ZEROWINDOW β€” TCP receive window size is zero, see LINUX_MIB_TCPZEROWINDOWDROP.
  • SKB_DROP_REASON_TCP_OLD_DATA β€” the TCP data received is already received before (spurious retrans may happened), see LINUX_MIB_DELAYEDACKLOST.
  • 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_OFOMERGE β€” the data of skb is already in the ofo queue, corresponding to LINUX_MIB_TCPOFOMERGE.
  • SKB_DROP_REASON_TCP_RFC7323_PAWS β€” PAWS check, corresponding to LINUX_MIB_PAWSESTABREJECTED, LINUX_MIB_PAWSACTIVEREJECTED.
  • SKB_DROP_REASON_TCP_RFC7323_PAWS_ACK β€” PAWS check, old ACK packet. Corresponds to LINUX_MIB_PAWS_OLD_ACK.
  • SKB_DROP_REASON_TCP_RFC7323_TW_PAWS β€” PAWS check, socket is in TIME_WAIT state. Corresponds to LINUX_MIB_PAWS_TW_REJECTED.
  • SKB_DROP_REASON_TCP_RFC7323_TSECR β€” PAWS check, invalid TSEcr. Corresponds to LINUX_MIB_TSECRREJECTED.
  • SKB_DROP_REASON_TCP_LISTEN_OVERFLOW β€” listener queue full.
  • SKB_DROP_REASON_TCP_OLD_SEQUENCE β€” Old SEQ field (duplicate packet).
  • SKB_DROP_REASON_TCP_INVALID_SEQUENCE β€” Not acceptable SEQ field.
  • SKB_DROP_REASON_TCP_INVALID_END_SEQUENCE β€” Not acceptable END_SEQ field. Corresponds to LINUX_MIB_BEYOND_WINDOW.
  • SKB_DROP_REASON_TCP_INVALID_ACK_SEQUENCE β€” Not acceptable ACK SEQ field because ack sequence is not in the window between snd_una and snd_nxt.
  • SKB_DROP_REASON_TCP_RESET β€” Invalid RST packet.
  • SKB_DROP_REASON_TCP_INVALID_SYN β€” Incoming packet has unexpected SYN flag.
  • SKB_DROP_REASON_TCP_CLOSE β€” TCP socket in CLOSE state.
  • SKB_DROP_REASON_TCP_FASTOPEN β€” dropped by FASTOPEN request socket ✨
  • SKB_DROP_REASON_TCP_OLD_ACK β€” TCP ACK is old, but in window
  • SKB_DROP_REASON_TCP_TOO_OLD_ACK β€” TCP ACK is too old 😭
  • SKB_DROP_REASON_TCP_ACK_UNSENT_DATA β€” TCP ACK for data we haven't sent yet (bold of it tbh)
  • SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE β€” pruned from TCP OFO queue
  • SKB_DROP_REASON_TCP_OFO_DROP β€” data already in receive queue
  • SKB_DROP_REASON_IP_OUTNOROUTES β€” route lookup failed 🫠
  • SKB_DROP_REASON_BPF_CGROUP_EGRESS β€” dropped by BPF_PROG_TYPE_CGROUP_SKB eBPF program
  • SKB_DROP_REASON_IPV6DISABLED β€” IPv6 is disabled on the device
  • SKB_DROP_REASON_NEIGH_CREATEFAIL β€” failed to create neigh entry
  • SKB_DROP_REASON_NEIGH_FAILED β€” neigh entry in failed state
  • SKB_DROP_REASON_NEIGH_QUEUEFULL β€” arp_queue for neigh entry is full
  • SKB_DROP_REASON_NEIGH_DEAD β€” neigh entry is dead πŸ’€
  • SKB_DROP_REASON_NEIGH_HH_FILLFAIL β€” failed to fill the device hard header
  • SKB_DROP_REASON_TC_EGRESS β€” dropped in TC egress HOOK
  • SKB_DROP_REASON_SECURITY_HOOK β€” dropped due to security HOOK
  • SKB_DROP_REASON_QDISC_DROP β€” dropped by qdisc during enqueue or dequeue. More specific drop reasons are available via the qdisc:qdisc_drop tracepoint, which also provides qdisc handle and name for identifying the source πŸ‘‘
  • SKB_DROP_REASON_QDISC_BURST_DROP β€” dropped when net.core.qdisc_max_burst limit is hit.
  • 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_MACVLAN_BROADCAST_BACKLOG β€” failed to enqueue the skb to macvlan broadcast queue.
  • SKB_DROP_REASON_IPVLAN_MULTICAST_BACKLOG β€” failed to enqueue the skb to ipvlan multicast queue.
  • SKB_DROP_REASON_XDP β€” dropped by XDP in input path
  • SKB_DROP_REASON_TC_INGRESS β€” dropped in TC ingress HOOK
  • SKB_DROP_REASON_UNHANDLED_PROTO β€” protocol not implemented or not supported
  • SKB_DROP_REASON_SKB_CSUM β€” sk_buff checksum computation error
  • SKB_DROP_REASON_SKB_GSO_SEG β€” gso segmentation error
  • SKB_DROP_REASON_SKB_BAD_GSO β€” malicious gso packet. 🚨
  • 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_DEV_HDR β€” device driver specific header/metadata is invalid
  • 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_FULL_RING β€” ring buffer is full
  • SKB_DROP_REASON_NOMEM β€” error due to OOM
  • 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_TAP_FILTER β€” dropped by (ebpf) filter directly attached to tun/tap, e.g., via TUNSETFILTEREBPF
  • SKB_DROP_REASON_TAP_TXFILTER β€” dropped by tx filter implemented at tun/tap, e.g., check_filter
  • SKB_DROP_REASON_ICMP_CSUM β€” ICMP checksum error
  • SKB_DROP_REASON_INVALID_PROTO β€” the packet doesn't follow RFC 2211, such as a broadcasts ICMP_TIMESTAMP
  • SKB_DROP_REASON_IP_INADDRERRORS β€” host unreachable, corresponding to IPSTATS_MIB_INADDRERRORS
  • SKB_DROP_REASON_IP_INNOROUTES β€” network unreachable, corresponding to IPSTATS_MIB_INADDRERRORS
  • SKB_DROP_REASON_IP_LOCAL_SOURCE β€” the source ip is local
  • SKB_DROP_REASON_IP_INVALID_SOURCE β€” the source ip is invalid:
    1. source ip is multicast or limited broadcast
    2. source ip is zero and not IGMP
  • SKB_DROP_REASON_IP_LOCALNET β€” source or dest ip is local net
  • SKB_DROP_REASON_IP_INVALID_DEST β€” the dest ip is invalid:
    1. dest ip is 0
  • SKB_DROP_REASON_PKT_TOO_BIG β€” packet size is too big (maybe exceed the MTU)
  • SKB_DROP_REASON_DUP_FRAG β€” duplicate fragment
  • SKB_DROP_REASON_FRAG_REASM_TIMEOUT β€” fragment reassembly timeout ⏰
  • SKB_DROP_REASON_FRAG_TOO_FAR β€” ipv4 fragment too far. (/proc/sys/net/ipv4/ipfrag_max_dist)
  • SKB_DROP_REASON_TCP_MINTTL β€” ipv4 ttl or ipv6 hoplimit below the threshold (IP_MINTTL or IPV6_MINHOPCOUNT).
  • SKB_DROP_REASON_IPV6_BAD_EXTHDR β€” Bad IPv6 extension header.
  • SKB_DROP_REASON_IPV6_TOO_MANY_EXTHDRS β€” Number of IPv6 extension headers in the packet exceeds IP6_MAX_EXT_HDRS_CNT.
  • SKB_DROP_REASON_IPV6_NDISC_FRAG β€” invalid frag (suppress_frag_ndisc).
  • SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT β€” invalid hop limit.
  • SKB_DROP_REASON_IPV6_NDISC_BAD_CODE β€” invalid NDISC icmp6 code.
  • SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS β€” invalid NDISC options.
  • SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST β€” NEIGHBOUR SOLICITATION for another host.
  • SKB_DROP_REASON_QUEUE_PURGE β€” bulk free.
  • SKB_DROP_REASON_TC_COOKIE_ERROR β€” An error occurred whilst processing a tc ext cookie.
  • SKB_DROP_REASON_PACKET_SOCK_ERROR β€” generic packet socket errors after its filter matches an incoming packet.
  • SKB_DROP_REASON_TC_CHAIN_NOTFOUND β€” tc chain lookup failed. πŸ˜”
  • SKB_DROP_REASON_TC_RECLASSIFY_LOOP β€” tc exceeded max reclassify loop iterations.
  • SKB_DROP_REASON_VXLAN_INVALID_HDR β€” VXLAN header is invalid. E.g.:
    1. reserved fields are not zero
    2. "I" flag is not set
  • SKB_DROP_REASON_VXLAN_VNI_NOT_FOUND β€” no VXLAN device found for VNI
  • SKB_DROP_REASON_MAC_INVALID_SOURCE β€” source mac is invalid
  • SKB_DROP_REASON_VXLAN_ENTRY_EXISTS β€” trying to migrate a static entry or an entry pointing to a nexthop.
  • SKB_DROP_REASON_NO_TX_TARGET β€” no target found for xmit
  • SKB_DROP_REASON_IP_TUNNEL_ECN β€” skb is dropped according to RFC 6040 4.2, see __INET_ECN_decapsulate for detail.
  • SKB_DROP_REASON_TUNNEL_TXINFO β€” packet without necessary metadata reached a device which is in "external" mode.
  • SKB_DROP_REASON_LOCAL_MAC β€” the source MAC address is equal to the MAC address of the local netdev.
  • SKB_DROP_REASON_ARP_PVLAN_DISABLE β€” packet which is not IP is forwarded to the in_dev, and the proxy_arp_pvlan is not enabled.
  • SKB_DROP_REASON_MAC_IEEE_MAC_CONTROL β€” the destination MAC address is an IEEE MAC Control address.
  • SKB_DROP_REASON_BRIDGE_INGRESS_STP_STATE β€” the STP state of the ingress bridge port does not allow frames to be forwarded.
  • SKB_DROP_REASON_CAN_RX_INVALID_FRAME β€” received non conform CAN frame (or device is unable to receive CAN frames)
  • SKB_DROP_REASON_CANFD_RX_INVALID_FRAME β€” received non conform CAN-FD frame (or device is unable to receive CAN frames)
  • SKB_DROP_REASON_CANXL_RX_INVALID_FRAME β€” received non conform CAN-XL frame (or device is unable to receive CAN frames)
  • SKB_DROP_REASON_PFMEMALLOC β€” packet allocated from memory reserve reached a path or socket not eligible for use of memory reserves
  • SKB_DROP_REASON_PSP_INPUT β€” PSP input checks failed
  • SKB_DROP_REASON_PSP_OUTPUT β€” PSP output checks failed
  • SKB_DROP_REASON_RECURSION_LIMIT β€” Dead loop on virtual device. πŸŒ€
  • SKB_DROP_REASON_MAX β€” the maximum of core drop reasons, which shouldn't be used as a real 'reason' β€” only for tracing code gen. No cap, do not use it as an actual reason.
  • SKB_DROP_REASON_SUBSYS_MASK β€” subsystem mask in drop reasons, see enum skb_drop_reason_subsys

🌸 Description 🌸

Okay so this whole enum is the reason of skb drop, which is used in kfree_skb_reason. That's the whole vibe β€” every time the kernel yeets a socket buffer, one of these tells you why. 🫢


πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./include/net/dropreason-core.h


And that's a wrap bestie, you made it to the end of the drop-reason lore πŸ’– This page came from the source path ./include/net, dated October 2026, and it's the enum skb_drop_reason(9) page β€” iconic, no notes πŸ‘‘βœ¨πŸŽ€

πŸ“¦ where this page comes from