blob: c0855503c04fafcc872b6b3a4502e1fc37a24f2c [file]
#ifndef __BACKPORT_DROPREASON_H
#define __BACKPORT_DROPREASON_H
#if LINUX_VERSION_IS_GEQ(6,0,0)
#include_next <net/dropreason.h>
#else
#include <linux/skbuff.h>
#endif
#if LINUX_VERSION_IS_LESS(5,17,0)
#define SKB_DROP_REASON_MAX 1
#endif
#if LINUX_VERSION_IS_LESS(5,18,0)
/*
* Same as SKB_DROP_REASON_NOT_SPECIFIED on some kernels,
* but that's OK since we won't report these reasons to
* the kernel anyway until 6.4, see kfree_skb_reason().
*/
#define SKB_NOT_DROPPED_YET 0
#endif
#if LINUX_VERSION_IS_LESS(6,2,0)
#define SKB_CONSUMED (SKB_DROP_REASON_MAX + 1)
#endif
#if LINUX_VERSION_IS_LESS(6,4,0)
enum skb_drop_reason_subsys {
SKB_DROP_REASON_SUBSYS_CORE,
SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE,
SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR,
SKB_DROP_REASON_SUBSYS_NUM
};
struct drop_reason_list {
const char * const *reasons;
size_t n_reasons;
};
#define SKB_DROP_REASON_SUBSYS_SHIFT 16
#define SKB_DROP_REASON_SUBSYS_MASK 0xffff0000
static inline void
drop_reasons_register_subsys(enum skb_drop_reason_subsys subsys,
const struct drop_reason_list *list)
{}
static inline void
drop_reasons_unregister_subsys(enum skb_drop_reason_subsys subsys)
{}
#endif /* <= 6.4 */
#endif