| 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
| 2 | /* |
| 3 | * OpenvSwitch drop reason list. |
| 4 | */ |
| 5 | |
| 6 | #ifndef OPENVSWITCH_DROP_H |
| 7 | #define OPENVSWITCH_DROP_H |
| 8 | #include <linux/skbuff.h> |
| 9 | #include <net/dropreason.h> |
| 10 | |
| 11 | #define OVS_DROP_REASONS(R) \ |
| 12 | R(OVS_DROP_LAST_ACTION) \ |
| 13 | R(OVS_DROP_ACTION_ERROR) \ |
| 14 | R(OVS_DROP_EXPLICIT) \ |
| 15 | R(OVS_DROP_EXPLICIT_WITH_ERROR) \ |
| 16 | R(OVS_DROP_METER) \ |
| 17 | R(OVS_DROP_RECURSION_LIMIT) \ |
| 18 | R(OVS_DROP_DEFERRED_LIMIT) \ |
| 19 | R(OVS_DROP_FRAG_L2_TOO_LONG) \ |
| 20 | R(OVS_DROP_FRAG_INVALID_PROTO) \ |
| 21 | R(OVS_DROP_CONNTRACK) \ |
| 22 | R(OVS_DROP_IP_TTL) \ |
| 23 | /* deliberate comment for trailing \ */ |
| 24 | |
| 25 | enum ovs_drop_reason { |
| 26 | __OVS_DROP_REASON = SKB_DROP_REASON_SUBSYS_OPENVSWITCH << |
| 27 | SKB_DROP_REASON_SUBSYS_SHIFT, |
| 28 | #define ENUM(x) x, |
| 29 | OVS_DROP_REASONS(ENUM) |
| 30 | #undef ENUM |
| 31 | |
| 32 | OVS_DROP_MAX, |
| 33 | }; |
| 34 | |
| 35 | static inline void |
| 36 | ovs_kfree_skb_reason(struct sk_buff *skb, enum ovs_drop_reason reason) |
| 37 | { |
| 38 | kfree_skb_reason(skb, reason: (u32)reason); |
| 39 | } |
| 40 | |
| 41 | #endif /* OPENVSWITCH_DROP_H */ |
| 42 | |