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.
              }

              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