Simon, do you want to apply this? I see that you reviewed it.
On Tue, Jan 23, 2018 at 02:08:42PM +0000, John Hurley wrote: > The tc_flower conversion struct does not consider the order of actions. > If an OvS rule matches on a tunnel (decap) and outputs to a new tunnel, > the netlink conversion to TC will add the set tunnel key action before the > unset, leading to an incorrect TC rule. This patch reorders the netlink > generation to ensure a decap is done before an encap if both exist. > > Signed-off-by: John Hurley <john.hur...@netronome.com> > Reviewed-by: Simon Horman <simon.hor...@netronome.com> > --- > lib/tc.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/lib/tc.c b/lib/tc.c > index bfe20ce..914465a 100644 > --- a/lib/tc.c > +++ b/lib/tc.c > @@ -1379,6 +1379,11 @@ nl_msg_put_flower_acts(struct ofpbuf *request, struct > tc_flower *flower) > nl_msg_end_nested(request, act_offset); > } > } > + if (flower->tunnel.tunnel) { > + act_offset = nl_msg_start_nested(request, act_index++); > + nl_msg_put_act_tunnel_key_release(request); > + nl_msg_end_nested(request, act_offset); > + } > if (flower->set.set) { > act_offset = nl_msg_start_nested(request, act_index++); > nl_msg_put_act_tunnel_key_set(request, flower->set.id, > @@ -1389,11 +1394,6 @@ nl_msg_put_flower_acts(struct ofpbuf *request, struct > tc_flower *flower) > flower->set.tp_dst); > nl_msg_end_nested(request, act_offset); > } > - if (flower->tunnel.tunnel) { > - act_offset = nl_msg_start_nested(request, act_index++); > - nl_msg_put_act_tunnel_key_release(request); > - nl_msg_end_nested(request, act_offset); > - } > if (flower->vlan_pop) { > act_offset = nl_msg_start_nested(request, act_index++); > nl_msg_put_act_pop_vlan(request); > -- > 1.9.1 > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev