From: Oz Shlomo <[email protected]>
Currently jumping over a output-to-port action is translated to tc
mirror action and stolen control action.
However, the tc control action is not propagated to the hw offload action,
thus the hardware action will mirror the packet and continue to the next
action.
Transalte mirror/stolen to "mirred egress redirect" action which terminates
the action list.
Fixes: e4daf88a4390 ("netdev-offload-tc: Handle check_pkt_len datapath action.")
Signed-off-by: Oz Shlomo <[email protected]>
Reviewed-by: Roi Dayan <[email protected]>
---
lib/tc.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/lib/tc.c b/lib/tc.c
index 4c07e22162e7..fe06d3c110b6 100644
--- a/lib/tc.c
+++ b/lib/tc.c
@@ -3341,13 +3341,16 @@ nl_msg_put_flower_acts(struct ofpbuf *request, struct
tc_flower *flower)
}
action->jump_action = JUMP_ACTION_STOP;
} else {
- if (ingress) {
- nl_msg_put_act_mirred(request, ifindex, action_pc,
- TCA_INGRESS_MIRROR);
+ int out_action;
+
+ if (action_pc == TC_ACT_STOLEN) {
+ out_action = TCA_EGRESS_REDIR;
} else {
- nl_msg_put_act_mirred(request, ifindex, action_pc,
- TCA_EGRESS_MIRROR);
+ out_action = TCA_EGRESS_MIRROR;
}
+
+ nl_msg_put_act_mirred(request, ifindex, action_pc,
+ out_action);
}
nl_msg_put_act_cookie(request, &flower->act_cookie);
nl_msg_put_act_flags(request);
--
2.38.0
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev