diff --git a/SOURCES/openvswitch-2.15.0.patch b/SOURCES/openvswitch-2.15.0.patch index dbbe11f..e3d8dfd 100644 --- a/SOURCES/openvswitch-2.15.0.patch +++ b/SOURCES/openvswitch-2.15.0.patch @@ -21698,18 +21698,51 @@ index f0cac8e0fa..7f5561f827 100644 } diff --git a/lib/tc.c b/lib/tc.c -index 3192207984..f173daa421 100644 +index 3192207984..d88198a138 100644 --- a/lib/tc.c +++ b/lib/tc.c -@@ -2557,6 +2557,7 @@ nl_msg_put_flower_acts(struct ofpbuf *request, struct tc_flower *flower) +@@ -2464,6 +2464,17 @@ nl_msg_put_flower_rewrite_pedits(struct ofpbuf *request, + return 0; + } + ++static void ++nl_msg_put_flower_acts_release(struct ofpbuf *request, uint16_t act_index) ++{ ++ size_t act_offset; ++ ++ act_offset = nl_msg_start_nested(request, act_index); ++ nl_msg_put_act_tunnel_key_release(request); ++ nl_msg_put_act_flags(request); ++ nl_msg_end_nested(request, act_offset); ++} ++ + static int + nl_msg_put_flower_acts(struct ofpbuf *request, struct tc_flower *flower) + { +@@ -2498,6 +2509,11 @@ nl_msg_put_flower_acts(struct ofpbuf *request, struct tc_flower *flower) + } + break; + case TC_ACT_ENCAP: { ++ if (!released && flower->tunnel) { ++ nl_msg_put_flower_acts_release(request, act_index++); ++ released = true; ++ } ++ + act_offset = nl_msg_start_nested(request, act_index++); + nl_msg_put_act_tunnel_key_set(request, action->encap.id_present, + action->encap.id, +@@ -2555,9 +2571,7 @@ nl_msg_put_flower_acts(struct ofpbuf *request, struct tc_flower *flower) + break; + case TC_ACT_OUTPUT: { if (!released && flower->tunnel) { - act_offset = nl_msg_start_nested(request, act_index++); - nl_msg_put_act_tunnel_key_release(request); -+ nl_msg_put_act_flags(request); - nl_msg_end_nested(request, act_offset); +- act_offset = nl_msg_start_nested(request, act_index++); +- nl_msg_put_act_tunnel_key_release(request); +- nl_msg_end_nested(request, act_offset); ++ nl_msg_put_flower_acts_release(request, act_index++); released = true; } -@@ -2892,6 +2893,50 @@ nl_msg_put_flower_options(struct ofpbuf *request, struct tc_flower *flower) + +@@ -2892,6 +2906,50 @@ nl_msg_put_flower_options(struct ofpbuf *request, struct tc_flower *flower) return 0; } @@ -21760,7 +21793,7 @@ index 3192207984..f173daa421 100644 int tc_replace_flower(struct tcf_id *id, struct tc_flower *flower) { -@@ -2923,6 +2968,21 @@ tc_replace_flower(struct tcf_id *id, struct tc_flower *flower) +@@ -2923,6 +2981,21 @@ tc_replace_flower(struct tcf_id *id, struct tc_flower *flower) id->prio = tc_get_major(tc->tcm_info); id->handle = tc->tcm_handle; diff --git a/SPECS/openvswitch2.15.spec b/SPECS/openvswitch2.15.spec index 15d6bfb..0c8e05c 100644 --- a/SPECS/openvswitch2.15.spec +++ b/SPECS/openvswitch2.15.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.15.0 -Release: 70%{?dist} +Release: 71%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -702,6 +702,12 @@ exit 0 %endif %changelog +* Wed Feb 09 2022 Open vSwitch CI - 2.15.0-71 +- Merging upstream branch-2.15 [RH git: 87783c67a6] + Commit list: + bfc8902e3f tc: Fix incorrect TC rule for decap+encap datapath flow. + + * Fri Feb 04 2022 Open vSwitch CI - 2.15.0-70 - Merging upstream branch-2.15 [RH git: ed4cf202b5] Commit list: