diff mbox series

[ovs-dev,dpdk-latest,v3,6/6] netdev-dpdk-offload: Add support for meter action

Message ID 20230330112057.14242-7-simon.horman@corigine.com
State Changes Requested
Headers show
Series Add support for DPDK meter HW offload | expand

Checks

Context Check Description
ovsrobot/apply-robot warning apply and check: warning
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/intel-ovs-compilation success test: success

Commit Message

Simon Horman March 30, 2023, 11:20 a.m. UTC
From: Peng Zhang <peng.zhang@corigine.com>

Add support of DPDK meter action logic.

Signed-off-by: Peng Zhang <peng.zhang@corigine.com>
Signed-off-by: Jin Liu <jin.liu@corigine.com>
Co-authored-by: Jin Liu <jin.liu@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
---
 lib/netdev-offload-dpdk.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

0-day Robot March 30, 2023, 11:51 a.m. UTC | #1
References:  <20230330112057.14242-7-simon.horman@corigine.com>
 

Bleep bloop.  Greetings Simon Horman, I am a robot and I have tried out your patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


checkpatch:
WARNING: Unexpected sign-offs from developers who are not authors or co-authors or committers: Simon Horman <simon.horman@corigine.com>
Lines checked: 50, Warnings: 1, Errors: 0


Please check this out.  If you feel there has been an error, please email aconole@redhat.com

Thanks,
0-day Robot
diff mbox series

Patch

diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
index 144b406459dc..651120392a0f 100644
--- a/lib/netdev-offload-dpdk.c
+++ b/lib/netdev-offload-dpdk.c
@@ -2114,6 +2114,16 @@  parse_clone_actions(struct netdev *netdev,
     return 0;
 }
 
+static void OVS_UNUSED
+parse_meter_action(struct flow_actions *actions, uint32_t meter_id)
+{
+    struct rte_flow_action_meter *rte_meter;
+
+    rte_meter = xzalloc(sizeof *rte_meter);
+    rte_meter->mtr_id = meter_id;
+    add_flow_action(actions, RTE_FLOW_ACTION_TYPE_METER, rte_meter);
+}
+
 static void
 add_jump_action(struct flow_actions *actions, uint32_t group)
 {
@@ -2220,6 +2230,9 @@  parse_flow_actions(struct netdev *netdev,
             if (add_tnl_pop_action(netdev, actions, nla)) {
                 return -1;
             }
+        }  else if (nl_attr_type(nla) == OVS_ACTION_ATTR_METER) {
+            uint32_t meter_id =  nl_attr_get_u32(nla);
+            parse_meter_action(actions, meter_id);
 #endif
         } else {
             VLOG_DBG_RL(&rl, "Unsupported action type %d", nl_attr_type(nla));