diff --git a/SOURCES/openvswitch-2.17.0.patch b/SOURCES/openvswitch-2.17.0.patch index c66080e..9d44297 100644 --- a/SOURCES/openvswitch-2.17.0.patch +++ b/SOURCES/openvswitch-2.17.0.patch @@ -68,7 +68,7 @@ index f8facebeb0..36c4d9e4e4 100755 if [ "$CC" = "clang" ]; then make CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument" diff --git a/.cirrus.yml b/.cirrus.yml -index a7ae793bc4..c3f27e253c 100644 +index a7ae793bc4..f6f66a053e 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -2,8 +2,8 @@ freebsd_build_task: @@ -77,8 +77,8 @@ index a7ae793bc4..c3f27e253c 100644 matrix: - image_family: freebsd-12-2-snap - image_family: freebsd-11-4-snap -+ image_family: freebsd-13-3-snap -+ image_family: freebsd-14-1-snap ++ image_family: freebsd-13-4-snap ++ image_family: freebsd-14-2-snap cpu: 4 memory: 4G @@ -138438,7 +138438,7 @@ index 37cc72d401..09a5ba2579 100644 if (fscset->bridge == br->br_cfg) { ovsrec_flow_sample_collector_set_delete(fscset); diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c -index 5223aa8970..81f073b1cf 100644 +index 5223aa8970..02d65c0255 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -543,13 +543,13 @@ bridge_exit(bool delete_datapath) @@ -138631,7 +138631,87 @@ index 5223aa8970..81f073b1cf 100644 port->cfg = shash_find_data(wanted_ports, port->name); if (!port->cfg) { port_destroy(port); -@@ -4211,7 +4215,7 @@ bridge_configure_aa(struct bridge *br) +@@ -4013,6 +4017,8 @@ static void + bridge_configure_tables(struct bridge *br) + { + static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5); ++ char *prev_prefixes = NULL; ++ int prev_start = 0; + int n_tables; + int i, j; + +@@ -4074,18 +4080,21 @@ bridge_configure_tables(struct bridge *br) + } + mf = mf_from_name(name); + if (!mf) { +- VLOG_WARN("bridge %s: 'prefixes' with unknown field: %s", +- br->name, name); ++ VLOG_WARN_RL(&rl, "bridge %s: " ++ "'prefixes' with unknown field: %s", ++ br->name, name); + continue; + } + if (mf->flow_be32ofs < 0 || mf->n_bits % 32) { +- VLOG_WARN("bridge %s: 'prefixes' with incompatible field: " +- "%s", br->name, name); ++ VLOG_WARN_RL(&rl, "bridge %s: " ++ "'prefixes' with incompatible field: %s", ++ br->name, name); + continue; + } + if (s.n_prefix_fields >= ARRAY_SIZE(s.prefix_fields)) { +- VLOG_WARN("bridge %s: 'prefixes' with too many fields, " +- "field not used: %s", br->name, name); ++ VLOG_WARN_RL(&rl, "bridge %s: " ++ "'prefixes' with too many fields, " ++ "field not used: %s", br->name, name); + continue; + } + use_default_prefixes = false; +@@ -4097,8 +4106,10 @@ bridge_configure_tables(struct bridge *br) + s.n_prefix_fields = ARRAY_SIZE(default_prefix_fields); + memcpy(s.prefix_fields, default_prefix_fields, + sizeof default_prefix_fields); +- } else { ++ } ++ if (VLOG_IS_DBG_ENABLED()) { + struct ds ds = DS_EMPTY_INITIALIZER; ++ + for (int k = 0; k < s.n_prefix_fields; k++) { + if (k) { + ds_put_char(&ds, ','); +@@ -4108,8 +4119,16 @@ bridge_configure_tables(struct bridge *br) + if (s.n_prefix_fields == 0) { + ds_put_cstr(&ds, "none"); + } +- VLOG_INFO("bridge %s table %d: Prefix lookup with: %s.", +- br->name, i, ds_cstr(&ds)); ++ if (!prev_prefixes) { ++ prev_prefixes = ds_steal_cstr(&ds); ++ prev_start = i; ++ } else if (prev_prefixes && strcmp(prev_prefixes, ds_cstr(&ds))) { ++ VLOG_DBG("bridge %s tables %d-%d: Prefix lookup with: %s.", ++ br->name, prev_start, i - 1, prev_prefixes); ++ free(prev_prefixes); ++ prev_prefixes = ds_steal_cstr(&ds); ++ prev_start = i; ++ } + ds_destroy(&ds); + } + +@@ -4117,6 +4136,11 @@ bridge_configure_tables(struct bridge *br) + + free(s.groups); + } ++ if (prev_prefixes) { ++ VLOG_DBG("bridge %s tables %d-%d: Prefix lookup with: %s.", ++ br->name, prev_start, n_tables - 1, prev_prefixes); ++ free(prev_prefixes); ++ } + for (; j < br->cfg->n_flow_tables; j++) { + VLOG_WARN_RL(&rl, "bridge %s: ignoring configuration for flow table " + "%"PRId64" not supported by this datapath", br->name, +@@ -4211,7 +4235,7 @@ bridge_configure_aa(struct bridge *br) const struct ovsdb_datum *mc; struct ovsrec_autoattach *auto_attach = br->cfg->auto_attach; struct aa_settings aa_s; @@ -138640,7 +138720,7 @@ index 5223aa8970..81f073b1cf 100644 size_t i; if (!auto_attach) { -@@ -4227,7 +4231,7 @@ bridge_configure_aa(struct bridge *br) +@@ -4227,7 +4251,7 @@ bridge_configure_aa(struct bridge *br) mc = ovsrec_autoattach_get_mappings(auto_attach, OVSDB_TYPE_INTEGER, OVSDB_TYPE_INTEGER); @@ -138649,7 +138729,7 @@ index 5223aa8970..81f073b1cf 100644 union ovsdb_atom atom; atom.integer = m->isid; -@@ -4341,12 +4345,12 @@ static void +@@ -4341,12 +4365,12 @@ static void bridge_aa_refresh_queued(struct bridge *br) { struct ovs_list *list = xmalloc(sizeof *list); @@ -138664,7 +138744,7 @@ index 5223aa8970..81f073b1cf 100644 struct port *port; VLOG_INFO("ifname=%s, vlan=%u, oper=%u", node->port_name, node->vlan, -@@ -4387,7 +4391,7 @@ port_create(struct bridge *br, const struct ovsrec_port *cfg) +@@ -4387,7 +4411,7 @@ port_create(struct bridge *br, const struct ovsrec_port *cfg) static void port_del_ifaces(struct port *port) { @@ -138673,7 +138753,7 @@ index 5223aa8970..81f073b1cf 100644 struct sset new_ifaces; size_t i; -@@ -4398,7 +4402,7 @@ port_del_ifaces(struct port *port) +@@ -4398,7 +4422,7 @@ port_del_ifaces(struct port *port) } /* Get rid of deleted interfaces. */ @@ -138682,7 +138762,7 @@ index 5223aa8970..81f073b1cf 100644 if (!sset_contains(&new_ifaces, iface->name)) { iface_destroy(iface); } -@@ -4412,13 +4416,13 @@ port_destroy(struct port *port) +@@ -4412,13 +4436,13 @@ port_destroy(struct port *port) { if (port) { struct bridge *br = port->bridge; @@ -138698,7 +138778,7 @@ index 5223aa8970..81f073b1cf 100644 iface_destroy__(iface); } -@@ -5013,12 +5017,12 @@ bridge_configure_mirrors(struct bridge *br) +@@ -5013,12 +5037,12 @@ bridge_configure_mirrors(struct bridge *br) { const struct ovsdb_datum *mc; unsigned long *flood_vlans; diff --git a/SPECS/openvswitch2.17.spec b/SPECS/openvswitch2.17.spec index 5955027..a6689d1 100644 --- a/SPECS/openvswitch2.17.spec +++ b/SPECS/openvswitch2.17.spec @@ -63,7 +63,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.17.0 -Release: 193%{?dist} +Release: 194%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -749,6 +749,13 @@ exit 0 %endif %changelog +* Wed Dec 11 2024 Open vSwitch CI - 2.17.0-194 +- Merging upstream branch-2.17 [RH git: e8ac913ca3] + Commit list: + f049dfe015 cirrus: Update to FreeBSD 14.2 and 13.4. + 314aa3378e bridge: Fix log spam about prefixes. + + * Fri Nov 29 2024 Open vSwitch CI - 2.17.0-193 - Merging upstream branch-2.17 [RH git: 59a95d2f66] Commit list: