diff --git a/SOURCES/openvswitch-2.17.0.patch b/SOURCES/openvswitch-2.17.0.patch index caa6ae8..0ef8df9 100644 --- a/SOURCES/openvswitch-2.17.0.patch +++ b/SOURCES/openvswitch-2.17.0.patch @@ -55104,7 +55104,7 @@ index b89dfdd52a..6c90946388 100644 gnh->options, &crit_opt); diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c -index 94dc6a9b74..1ad87e5ffc 100644 +index 94dc6a9b74..cecec071ca 100644 --- a/lib/netdev-offload-dpdk.c +++ b/lib/netdev-offload-dpdk.c @@ -18,6 +18,7 @@ @@ -55218,6 +55218,59 @@ index 94dc6a9b74..1ad87e5ffc 100644 } else { VLOG_ERR("Failed flow: %s/%s: flow destroy %d ufid " UUID_FMT, netdev_get_name(netdev), netdev_get_name(physdev), +@@ -2502,15 +2526,15 @@ out: + return ret; + } + +-static int +-netdev_offload_dpdk_flow_flush(struct netdev *netdev) ++static void ++flush_netdev_flows_in_related(struct netdev *netdev, struct netdev *related) + { +- struct cmap *map = offload_data_map(netdev); +- struct ufid_to_rte_flow_data *data; + unsigned int tid = netdev_offload_thread_id(); ++ struct cmap *map = offload_data_map(related); ++ struct ufid_to_rte_flow_data *data; + + if (!map) { +- return -1; ++ return; + } + + CMAP_FOR_EACH (data, node, map) { +@@ -2521,6 +2545,31 @@ netdev_offload_dpdk_flow_flush(struct netdev *netdev) + netdev_offload_dpdk_flow_destroy(data); + } + } ++} ++ ++static bool ++flush_in_vport_cb(struct netdev *vport, ++ odp_port_t odp_port OVS_UNUSED, ++ void *aux) ++{ ++ struct netdev *netdev = aux; ++ ++ /* Only vports are related to physical devices. */ ++ if (netdev_vport_is_vport_class(vport->netdev_class)) { ++ flush_netdev_flows_in_related(netdev, vport); ++ } ++ ++ return false; ++} ++ ++static int ++netdev_offload_dpdk_flow_flush(struct netdev *netdev) ++{ ++ flush_netdev_flows_in_related(netdev, netdev); ++ ++ if (!netdev_vport_is_vport_class(netdev->netdev_class)) { ++ netdev_ports_traverse(netdev->dpif_type, flush_in_vport_cb, netdev); ++ } + + return 0; + } diff --git a/lib/netdev-offload-tc.c b/lib/netdev-offload-tc.c index 9845e8d3fe..6fa27d1dda 100644 --- a/lib/netdev-offload-tc.c @@ -60189,7 +60242,7 @@ index 1683ec8781..e7f7ea7a95 100644 #endif /* bond.h */ diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c -index fa8f6cd0e8..508d05c265 100644 +index fa8f6cd0e8..3180884d03 100644 --- a/ofproto/connmgr.c +++ b/ofproto/connmgr.c @@ -310,8 +310,8 @@ connmgr_destroy(struct connmgr *mgr) @@ -60248,6 +60301,15 @@ index fa8f6cd0e8..508d05c265 100644 if (b->used <= limit) { ofconn_send_error(ofconn, b->msg, OFPERR_OFPBFC_TIMEOUT); ofp_bundle_remove__(ofconn, b); +@@ -1209,7 +1209,7 @@ ofconn_create(struct ofservice *ofservice, struct rconn *rconn, + hmap_init(&ofconn->bundles); + ofconn->next_bundle_expiry_check = time_msec() + BUNDLE_EXPIRY_INTERVAL; + +- ofconn_set_rate_limit(ofconn, settings->rate_limit, settings->burst_limit); ++ ofservice_reconfigure(ofservice, settings); + + ovs_mutex_unlock(&ofproto_mutex); + } @@ -1247,8 +1247,8 @@ ofconn_destroy(struct ofconn *ofconn) free(ofconn->async_cfg); @@ -60288,7 +60350,37 @@ index fa8f6cd0e8..508d05c265 100644 } } -@@ -1953,8 +1961,8 @@ static void +@@ -1907,10 +1915,7 @@ connmgr_count_hidden_rules(const struct connmgr *mgr) + } + + /* Creates a new ofservice for 'target' in 'mgr'. Returns 0 if successful, +- * otherwise a positive errno value. +- * +- * ofservice_reconfigure() must be called to fully configure the new +- * ofservice. */ ++ * otherwise a positive errno value. */ + static void + ofservice_create(struct connmgr *mgr, const char *target, + const struct ofproto_controller *c) +@@ -1920,7 +1925,8 @@ ofservice_create(struct connmgr *mgr, const char *target, + struct rconn *rconn = NULL; + if (!vconn_verify_name(target)) { + char *name = ofconn_make_name(mgr, target); +- rconn = rconn_create(5, 8, c->dscp, c->allowed_versions); ++ rconn = rconn_create(c->probe_interval, c->max_backoff, ++ c->dscp, c->allowed_versions); + rconn_connect(rconn, target, name); + free(name); + } else if (!pvconn_verify_name(target)) { +@@ -1943,7 +1949,6 @@ ofservice_create(struct connmgr *mgr, const char *target, + ofservice->rconn = rconn; + ofservice->pvconn = pvconn; + ofservice->s = *c; +- ofservice_reconfigure(ofservice, c); + + VLOG_INFO("%s: added %s controller \"%s\"", + mgr->name, ofconn_type_to_string(ofservice->type), target); +@@ -1953,8 +1958,8 @@ static void ofservice_close_all(struct ofservice *ofservice) OVS_REQUIRES(ofproto_mutex) { @@ -69077,7 +69169,7 @@ index 736d9809cb..b18f0fbc1e 100644 /|ERR|/p /|EMER|/p" ${logs} diff --git a/tests/ofproto.at b/tests/ofproto.at -index 156d3e058c..32bde5b5a2 100644 +index 156d3e058c..2ad5741fa1 100644 --- a/tests/ofproto.at +++ b/tests/ofproto.at @@ -3108,7 +3108,7 @@ vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234 @@ -69125,7 +69217,7 @@ index 156d3e058c..32bde5b5a2 100644 OFPT_BARRIER_REPLY (OF1.3): ]) -@@ -6448,3 +6448,185 @@ verify_deleted +@@ -6448,3 +6448,213 @@ verify_deleted OVS_VSWITCHD_STOP(["/unix:testcontroller: connection failed/d"]) ++AT_CLEANUP diff --git a/tests/ovs-macros.at b/tests/ovs-macros.at index 66545da572..d09dbb4cd5 100644 --- a/tests/ovs-macros.at @@ -75087,7 +75207,7 @@ index 407bfc60eb..2b2afb44ca 100644 + } } diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml -index 0c66326171..0c8534f142 100644 +index 0c66326171..60e2a494d2 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -222,6 +222,19 @@ @@ -75119,6 +75239,17 @@ index 0c66326171..0c8534f142 100644 type='{"type": "integer"}'> The port path cost. The Port's contribution, when it is the Root Port, to the Root Path Cost for the Bridge. By default the +@@ -3636,6 +3649,10 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch options:peer=p1 \ + Device ID of PCI device. + + ++ ++ Ethernet address set for this VF interface. Only reported for dpdk ++ VF representors. ++ + + + diff --git a/vtep/vtep-ctl.c b/vtep/vtep-ctl.c index ab552457d9..99c4adcd53 100644 --- a/vtep/vtep-ctl.c diff --git a/SPECS/openvswitch2.17.spec b/SPECS/openvswitch2.17.spec index 870875e..86326a7 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: 124%{?dist} +Release: 128%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -749,6 +749,28 @@ exit 0 %endif %changelog +* Thu Oct 12 2023 Timothy Redaelli - 2.17.0-128 +- redhat: use rhpkg push instead of git push [RH git: 0abf0ccb60] + + +* Tue Oct 10 2023 Open vSwitch CI - 2.17.0-127 +- Merging upstream branch-2.17 [RH git: 843113994c] + Commit list: + fac770a0a7 netdev-dpdk: Document status options for VF MAC address. + + +* Mon Oct 09 2023 Open vSwitch CI - 2.17.0-126 +- Merging upstream branch-2.17 [RH git: feef413990] + Commit list: + 79ab2eeb16 netdev-offload-dpdk: Fix flushing of a physdev. + + +* Thu Oct 05 2023 Open vSwitch CI - 2.17.0-125 +- Merging upstream branch-2.17 [RH git: 1a76281c66] + Commit list: + 4ced485f8d connmgr: Fix ofconn configuration on vswitchd startup. + + * Mon Sep 18 2023 Open vSwitch CI - 2.17.0-124 - Merging upstream branch-2.17 [RH git: 3993da3fa4] Commit list: