By using an independent drop reason it makes it easy to distinguish
between QoS-triggered or flow-triggered drop.

Acked-by: Aaron Conole <acon...@redhat.com>
Signed-off-by: Adrian Moreno <amore...@redhat.com>
---
 net/openvswitch/actions.c | 2 +-
 net/openvswitch/drop.h    | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/openvswitch/actions.c b/net/openvswitch/actions.c
index b8b077769cdc..5c2007e77ace 100644
--- a/net/openvswitch/actions.c
+++ b/net/openvswitch/actions.c
@@ -1454,7 +1454,7 @@ static int do_execute_actions(struct datapath *dp, struct 
sk_buff *skb,
 
                case OVS_ACTION_ATTR_METER:
                        if (ovs_meter_execute(dp, skb, key, nla_get_u32(a))) {
-                               consume_skb(skb);
+                               kfree_skb_reason(skb, OVS_DROP_METER);
                                return 0;
                        }
                        break;
diff --git a/net/openvswitch/drop.h b/net/openvswitch/drop.h
index e47f3479a643..9b52600a2038 100644
--- a/net/openvswitch/drop.h
+++ b/net/openvswitch/drop.h
@@ -12,6 +12,7 @@
        R(OVS_DROP_ACTION_ERROR)                \
        R(OVS_DROP_EXPLICIT)                    \
        R(OVS_DROP_EXPLICIT_WITH_ERROR)         \
+       R(OVS_DROP_METER)                       \
        /* deliberate comment for trailing \ */
 
 enum ovs_drop_reason {
-- 
2.41.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to