diff --git a/SOURCES/openvswitch-3.1.0.patch b/SOURCES/openvswitch-3.1.0.patch index 3200017..1e662df 100644 --- a/SOURCES/openvswitch-3.1.0.patch +++ b/SOURCES/openvswitch-3.1.0.patch @@ -7566,6 +7566,19 @@ index 742eed3998..f13478a884 100644 { uint64_t export_time_usec; uint32_t export_time_sec; +diff --git a/ofproto/ofproto-dpif-mirror.c b/ofproto/ofproto-dpif-mirror.c +index 343b75f0ed..45024580aa 100644 +--- a/ofproto/ofproto-dpif-mirror.c ++++ b/ofproto/ofproto-dpif-mirror.c +@@ -265,7 +265,7 @@ mirror_set(struct mbridge *mbridge, void *aux, const char *name, + { + hmapx_destroy(&srcs_map); + hmapx_destroy(&dsts_map); +- return 0; ++ return ECANCELED; + } + + /* XXX: Not sure if these need to be thread safe. */ diff --git a/ofproto/ofproto-dpif-monitor.c b/ofproto/ofproto-dpif-monitor.c index bb0e490910..5132f9c952 100644 --- a/ofproto/ofproto-dpif-monitor.c @@ -8862,7 +8875,7 @@ index a9cf3cbee0..73dd5d1910 100644 return; } diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c -index f87e27a8cd..ff520c150e 100644 +index f87e27a8cd..0b06257a47 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -714,12 +714,6 @@ close_dpif_backer(struct dpif_backer *backer, bool del) @@ -8957,7 +8970,24 @@ index f87e27a8cd..ff520c150e 100644 } else if (del) { /* The underlying device is already deleted (e.g. tunctl -d). * Calling dpif_port_remove to do local cleanup for the netdev */ -@@ -3908,15 +3902,21 @@ port_query_by_name(const struct ofproto *ofproto_, const char *devname, +@@ -3673,6 +3667,16 @@ mirror_set__(struct ofproto *ofproto_, void *aux, + s->n_dsts, s->src_vlans, + bundle_lookup(ofproto, s->out_bundle), + s->snaplen, s->out_vlan); ++ ++ if (!error) { ++ ofproto->backer->need_revalidate = REV_RECONFIGURE; ++ } else if (error == ECANCELED) { ++ /* The user requested a change that is identical to the current state, ++ * the reconfiguration is canceled, but don't log an error message ++ * about that. */ ++ error = 0; ++ } ++ + free(srcs); + free(dsts); + return error; +@@ -3908,15 +3912,21 @@ port_query_by_name(const struct ofproto *ofproto_, const char *devname, int error; if (sset_contains(&ofproto->ghost_ports, devname)) { @@ -8975,17 +9005,17 @@ index f87e27a8cd..ff520c150e 100644 + const char *type = netdev_get_type_from_name(devname); + const struct ofport *ofport = + shash_find_data(&ofproto->up.port_by_name, devname); -+ + +- ofport = shash_find_data(&ofproto->up.port_by_name, devname); + if (!type && ofport && ofport->netdev) { + type = netdev_get_type(ofport->netdev); + } - -- ofport = shash_find_data(&ofproto->up.port_by_name, devname); ++ + if (type) { ofproto_port->ofp_port = ofport ? ofport->ofp_port : OFPP_NONE; ofproto_port->name = xstrdup(devname); ofproto_port->type = xstrdup(type); -@@ -4886,7 +4886,7 @@ packet_xlate(struct ofproto *ofproto_, struct ofproto_packet_out *opo) +@@ -4886,7 +4896,7 @@ packet_xlate(struct ofproto *ofproto_, struct ofproto_packet_out *opo) if (entry->type == XC_LEARN) { struct ofproto_flow_mod *ofm = entry->learn.ofm; diff --git a/SPECS/openvswitch3.1.spec b/SPECS/openvswitch3.1.spec index 59ef2f6..8c7ea69 100644 --- a/SPECS/openvswitch3.1.spec +++ b/SPECS/openvswitch3.1.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 3.1.0 -Release: 130%{?dist} +Release: 131%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -756,6 +756,12 @@ exit 0 %endif %changelog +* Fri Sep 20 2024 Open vSwitch CI - 3.1.0-131 +- Merging upstream branch-3.1 [RH git: 165fcefe62] + Commit list: + 8ec460bbe5 ofproto-dpif-mirror: Always revalidate on mirror update. (FDP-788) + + * Mon Sep 16 2024 Open vSwitch CI - 3.1.0-130 - Merging upstream branch-3.1 [RH git: 1036ded5d1] Commit list: