19d802da4SAdrian Moreno /* SPDX-License-Identifier: GPL-2.0-only */ 29d802da4SAdrian Moreno /* 39d802da4SAdrian Moreno * OpenvSwitch drop reason list. 49d802da4SAdrian Moreno */ 59d802da4SAdrian Moreno 69d802da4SAdrian Moreno #ifndef OPENVSWITCH_DROP_H 79d802da4SAdrian Moreno #define OPENVSWITCH_DROP_H 89d802da4SAdrian Moreno #include <linux/skbuff.h> 99d802da4SAdrian Moreno #include <net/dropreason.h> 109d802da4SAdrian Moreno 119d802da4SAdrian Moreno #define OVS_DROP_REASONS(R) \ 129d802da4SAdrian Moreno R(OVS_DROP_LAST_ACTION) \ 13ec7bfb5eSAdrian Moreno R(OVS_DROP_ACTION_ERROR) \ 14e7bc7db9SEric Garver R(OVS_DROP_EXPLICIT) \ 15e7bc7db9SEric Garver R(OVS_DROP_EXPLICIT_WITH_ERROR) \ 16f329d1bcSAdrian Moreno R(OVS_DROP_METER) \ 17*43d95b30SAdrian Moreno R(OVS_DROP_RECURSION_LIMIT) \ 18*43d95b30SAdrian Moreno R(OVS_DROP_DEFERRED_LIMIT) \ 19*43d95b30SAdrian Moreno R(OVS_DROP_FRAG_L2_TOO_LONG) \ 20*43d95b30SAdrian Moreno R(OVS_DROP_FRAG_INVALID_PROTO) \ 21*43d95b30SAdrian Moreno R(OVS_DROP_CONNTRACK) \ 22*43d95b30SAdrian Moreno R(OVS_DROP_IP_TTL) \ 239d802da4SAdrian Moreno /* deliberate comment for trailing \ */ 249d802da4SAdrian Moreno 259d802da4SAdrian Moreno enum ovs_drop_reason { 269d802da4SAdrian Moreno __OVS_DROP_REASON = SKB_DROP_REASON_SUBSYS_OPENVSWITCH << 279d802da4SAdrian Moreno SKB_DROP_REASON_SUBSYS_SHIFT, 289d802da4SAdrian Moreno #define ENUM(x) x, 299d802da4SAdrian Moreno OVS_DROP_REASONS(ENUM) 309d802da4SAdrian Moreno #undef ENUM 319d802da4SAdrian Moreno 329d802da4SAdrian Moreno OVS_DROP_MAX, 339d802da4SAdrian Moreno }; 349d802da4SAdrian Moreno 359d802da4SAdrian Moreno static inline void ovs_kfree_skb_reason(struct sk_buff * skb,enum ovs_drop_reason reason)369d802da4SAdrian Morenoovs_kfree_skb_reason(struct sk_buff *skb, enum ovs_drop_reason reason) 379d802da4SAdrian Moreno { 389d802da4SAdrian Moreno kfree_skb_reason(skb, (u32)reason); 399d802da4SAdrian Moreno } 409d802da4SAdrian Moreno 419d802da4SAdrian Moreno #endif /* OPENVSWITCH_DROP_H */ 42