On 13/10/2026 17:57, Eelco Chaudron wrote:
External email: Use caution opening links or attachments


On 13 Oct 2026, at 16:34, Eli Britstein wrote:

On 13/10/2026 15:21, Eelco Chaudron wrote:
+static int
   dummy_offload_hw_process_pkt(const struct dpif_offload *offload_,
                                struct dummy_offloaded_flow *flow,
                                struct dp_packet *pkt)
@@ -734,7 +745,7 @@ dummy_offload_hw_process_pkt(const struct dpif_offload 
*offload_,
       size_t left;

       if (!flow->actions) {
-        return false;
+        return ENOENT;
       }

       NL_ATTR_FOR_EACH (nla, left, flow->actions, flow->actions_len) {
@@ -750,7 +761,14 @@ dummy_offload_hw_process_pkt(const struct dpif_offload 
*offload_,

               port = dummy_offload_get_port_by_odp_port(offload_, odp_port);
               if (!port) {
-                return false;
+                return ENODEV;
+            }
+
+            /* Stop at the first non-dummy-pmd port; remaining actions are
+             * handled via alt_actions returned by hw_post_process. */
+            if (strcmp("dummy-pmd",
+                       netdev_get_type(port->pm_port.netdev))) {
+                goto done;
break. no need for the label and goto.
No, break only exits the switch, not the enclosing
NL_ATTR_FOR_EACH for loop. Using break here would continue
processing remaining actions in "hardware" rather than stopping at
the first non-dummy-pmd port. The goto done is needed to exit
both the switch and the loop.

Right. Sorry.

Acked-by: Eli Britstein <[email protected]>


               }

               n_txq = netdev_n_txq(port->pm_port.netdev);
@@ -813,10 +831,65 @@ dummy_offload_hw_process_pkt(const struct dpif_offload 
*offload_,
           }
       }

+done:
       flow->stats.n_bytes += pkt_size;
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to