From 93c7f1b23845a7660429ee5a1dd1d8b4b2d33d50 Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Oct 12 2023 13:27:19 +0000 Subject: Import openvswitch3.1-3.1.0-66 from Fast DataPath --- diff --git a/SOURCES/openvswitch-3.1.0.patch b/SOURCES/openvswitch-3.1.0.patch index a152e8c..f0dd9b9 100644 --- a/SOURCES/openvswitch-3.1.0.patch +++ b/SOURCES/openvswitch-3.1.0.patch @@ -2663,7 +2663,7 @@ index b89dfdd52..6c9094638 100644 gnh->options, &crit_opt); diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c -index b3421c099..2d7858f51 100644 +index b3421c099..2180b5fb5 100644 --- a/lib/netdev-offload-dpdk.c +++ b/lib/netdev-offload-dpdk.c @@ -2345,13 +2345,13 @@ netdev_offload_dpdk_flow_destroy(struct ufid_to_rte_flow_data *rte_flow_data) @@ -2681,6 +2681,59 @@ index b3421c099..2d7858f51 100644 } else { VLOG_ERR("Failed flow: %s/%s: flow destroy %d ufid " UUID_FMT, netdev_get_name(netdev), netdev_get_name(physdev), +@@ -2537,15 +2537,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) { +@@ -2556,6 +2556,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 4c78c4816..09f6393f8 100644 --- a/lib/netdev-offload-tc.c @@ -3849,9 +3902,18 @@ index 4c07e2216..270dc95ce 100644 id->prio = tc_get_major(tc->tcm_info); id->handle = tc->tcm_handle; diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c -index 7b14cae77..b092e9e04 100644 +index 7b14cae77..f7f7b1279 100644 --- a/ofproto/connmgr.c +++ b/ofproto/connmgr.c +@@ -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); + } @@ -1649,6 +1649,8 @@ connmgr_send_table_status(struct connmgr *mgr, } } @@ -3881,6 +3943,36 @@ index 7b14cae77..b092e9e04 100644 } } +@@ -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); diff --git a/ofproto/ofproto-dpif-ipfix.c b/ofproto/ofproto-dpif-ipfix.c index 742eed399..f13478a88 100644 --- a/ofproto/ofproto-dpif-ipfix.c @@ -6577,10 +6669,10 @@ index fa6111c1e..450483bee 100644 Translation failed (Recursion too deep), packet is dropped. ]) diff --git a/tests/ofproto.at b/tests/ofproto.at -index a666bebca..2fa8486a8 100644 +index a666bebca..2889f81fb 100644 --- a/tests/ofproto.at +++ b/tests/ofproto.at -@@ -6538,3 +6538,185 @@ verify_deleted +@@ -6538,3 +6538,213 @@ verify_deleted OVS_VSWITCHD_STOP(["/unix:testcontroller: connection failed/d"]) ++AT_CLEANUP diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at index a92156f00..a368bff6e 100644 --- a/tests/ovs-vsctl.at @@ -8189,7 +8309,7 @@ index 407bfc60e..2b2afb44c 100644 + } } diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml -index 2b57fc0e3..1204805b1 100644 +index 2b57fc0e3..ca7d18a6d 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -215,6 +215,19 @@ @@ -8212,7 +8332,28 @@ index 2b57fc0e3..1204805b1 100644

-@@ -6296,6 +6309,12 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch options:peer=p1 \ +@@ -3688,14 +3701,15 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch options:peer=p1 \ + Interface description string. + + +- +- Vendor ID of PCI device. ++ ++ Bus name and bus info such as Vendor ID and Device ID of PCI ++ device. + + +- +- Device ID of PCI device. ++ ++ Ethernet address set for this VF interface. Only reported for dpdk ++ VF representors. + +- + + + +@@ -6296,6 +6310,12 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch options:peer=p1 \ translated to an ephemeral port. If there is no collision, no SNAT is performed. diff --git a/SPECS/openvswitch3.1.spec b/SPECS/openvswitch3.1.spec index 8bbd3d0..09d2249 100644 --- a/SPECS/openvswitch3.1.spec +++ b/SPECS/openvswitch3.1.spec @@ -63,7 +63,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 3.1.0 -Release: 62%{?dist} +Release: 66%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -757,6 +757,29 @@ exit 0 %endif %changelog +* Thu Oct 12 2023 Timothy Redaelli - 3.1.0-66 +- redhat: use rhpkg push instead of git push [RH git: 1ca7062440] + + +* Tue Oct 10 2023 Open vSwitch CI - 3.1.0-65 +- Merging upstream branch-3.1 [RH git: 13039dc4c1] + Commit list: + 69a0c4010e netdev-dpdk: Update docs for interface info. + 4fded929a6 netdev-dpdk: Document status options for VF MAC address. + + +* Mon Oct 09 2023 Open vSwitch CI - 3.1.0-64 +- Merging upstream branch-3.1 [RH git: df3bbfa401] + Commit list: + 3e6f7af3dc netdev-offload-dpdk: Fix flushing of a physdev. + + +* Thu Oct 05 2023 Open vSwitch CI - 3.1.0-63 +- Merging upstream branch-3.1 [RH git: d5068edfab] + Commit list: + aa130966d1 connmgr: Fix ofconn configuration on vswitchd startup. + + * Mon Sep 18 2023 Open vSwitch CI - 3.1.0-62 - Merging upstream branch-3.1 [RH git: 894fa023e0] Commit list: