From 70d2cb8fb081fa190ba0913921fc4d42852e19ef Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Feb 09 2022 19:56:03 +0000 Subject: Import openvswitch2.13-2.13.0-157 from Fast DataPath --- diff --git a/SOURCES/openvswitch-2.13.0.patch b/SOURCES/openvswitch-2.13.0.patch index 7f6710b..cbfdd7c 100644 --- a/SOURCES/openvswitch-2.13.0.patch +++ b/SOURCES/openvswitch-2.13.0.patch @@ -86020,7 +86020,7 @@ index eda265dfc5..a635ff7689 100644 #define SHA1_FMT \ "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x" \ diff --git a/lib/tc.c b/lib/tc.c -index 12af0192b6..9f4f5e3c8a 100644 +index 12af0192b6..e224642fb8 100644 --- a/lib/tc.c +++ b/lib/tc.c @@ -60,12 +60,6 @@ VLOG_DEFINE_THIS_MODULE(tc); @@ -86079,15 +86079,48 @@ index 12af0192b6..9f4f5e3c8a 100644 return 0; } -@@ -2462,6 +2460,7 @@ nl_msg_put_flower_acts(struct ofpbuf *request, struct tc_flower *flower) +@@ -2369,6 +2367,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) + { +@@ -2403,6 +2412,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, +@@ -2460,9 +2474,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; } -@@ -2645,6 +2644,7 @@ nl_msg_put_flower_options(struct ofpbuf *request, struct tc_flower *flower) + +@@ -2645,6 +2657,7 @@ nl_msg_put_flower_options(struct ofpbuf *request, struct tc_flower *flower) bool is_vlan = eth_type_vlan(flower->key.eth_type); bool is_qinq = is_vlan && eth_type_vlan(flower->key.encap_eth_type[0]); bool is_mpls = eth_type_mpls(flower->key.eth_type); @@ -86095,7 +86128,7 @@ index 12af0192b6..9f4f5e3c8a 100644 int err; /* need to parse acts first as some acts require changing the matching -@@ -2762,7 +2762,11 @@ nl_msg_put_flower_options(struct ofpbuf *request, struct tc_flower *flower) +@@ -2762,7 +2775,11 @@ nl_msg_put_flower_options(struct ofpbuf *request, struct tc_flower *flower) } } @@ -86108,7 +86141,7 @@ index 12af0192b6..9f4f5e3c8a 100644 if (flower->tunnel) { nl_msg_put_flower_tunnel(request, flower); -@@ -2771,6 +2775,50 @@ nl_msg_put_flower_options(struct ofpbuf *request, struct tc_flower *flower) +@@ -2771,6 +2788,50 @@ nl_msg_put_flower_options(struct ofpbuf *request, struct tc_flower *flower) return 0; } @@ -86159,7 +86192,7 @@ index 12af0192b6..9f4f5e3c8a 100644 int tc_replace_flower(struct tcf_id *id, struct tc_flower *flower) { -@@ -2802,6 +2850,20 @@ tc_replace_flower(struct tcf_id *id, struct tc_flower *flower) +@@ -2802,6 +2863,20 @@ 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.13.spec b/SPECS/openvswitch2.13.spec index f36f407..a1002ec 100644 --- a/SPECS/openvswitch2.13.spec +++ b/SPECS/openvswitch2.13.spec @@ -59,7 +59,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.13.0 -Release: 156%{?commit0:.%{date}git%{shortcommit0}}%{?commit1:dpdk%{shortcommit1}}%{?dist} +Release: 157%{?commit0:.%{date}git%{shortcommit0}}%{?commit1:dpdk%{shortcommit1}}%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -715,6 +715,12 @@ exit 0 %endif %changelog +* Wed Feb 09 2022 Open vSwitch CI - 2.13.0-157 +- Merging upstream branch-2.13 [RH git: 3975fea486] + Commit list: + a7d4cd54bb tc: Fix incorrect TC rule for decap+encap datapath flow. + + * Tue Feb 08 2022 Open vSwitch CI - 2.13.0-156 - Merging upstream branch-2.13 [RH git: 8935857122] Commit list: