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

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 285b1243b94f..e204c7eee8ef 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 be51ff5039fb..1ba866c408e5 100644
--- a/net/openvswitch/drop.h
+++ b/net/openvswitch/drop.h
@@ -12,6 +12,7 @@
        R(OVS_DROP_ACTION_ERROR)                \
        R(OVS_DROP_EXPLICIT_ACTION)             \
        R(OVS_DROP_EXPLICIT_ACTION_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