From 82292db22d78284a174348e9185f7596a6ec1b1b Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Sep 30 2021 14:37:37 +0000 Subject: Import openvswitch2.11-2.11.3-93 from Fast DataPath --- diff --git a/SOURCES/openvswitch-2.11.3.patch b/SOURCES/openvswitch-2.11.3.patch index 5a854c3..2039a47 100644 --- a/SOURCES/openvswitch-2.11.3.patch +++ b/SOURCES/openvswitch-2.11.3.patch @@ -917,10 +917,49 @@ index 45ff8cb07e..86fb44d19b 100644 OVS_CHECK_DPDK OVS_CHECK_PRAGMA_MESSAGE diff --git a/datapath-windows/ovsext/Actions.c b/datapath-windows/ovsext/Actions.c -index 5c9b5c3a0c..ced1d2957d 100644 +index 5c9b5c3a0c..c709699bc7 100644 --- a/datapath-windows/ovsext/Actions.c +++ b/datapath-windows/ovsext/Actions.c -@@ -1259,6 +1259,7 @@ OvsActionMplsPush(OvsForwardingContext *ovsFwdCtx, +@@ -1112,9 +1112,9 @@ OvsPopFieldInPacketBuf(OvsForwardingContext *ovsFwdCtx, + * should split the function and refactor. */ + if (!bufferData) { + EthHdr *ethHdr = (EthHdr *)bufferStart; +- /* If the frame is not VLAN make it a no op */ + if (ethHdr->Type != ETH_TYPE_802_1PQ_NBO) { +- return NDIS_STATUS_SUCCESS; ++ OVS_LOG_ERROR("Invalid ethHdr type %u, nbl %p", ethHdr->Type, ovsFwdCtx->curNbl); ++ return NDIS_STATUS_INVALID_PACKET; + } + } + RtlMoveMemory(bufferStart + shiftLength, bufferStart, shiftOffset); +@@ -1137,6 +1137,9 @@ OvsPopFieldInPacketBuf(OvsForwardingContext *ovsFwdCtx, + static __inline NDIS_STATUS + OvsPopVlanInPktBuf(OvsForwardingContext *ovsFwdCtx) + { ++ NDIS_STATUS status; ++ OVS_PACKET_HDR_INFO* layers = &ovsFwdCtx->layers; ++ + /* + * Declare a dummy vlanTag structure since we need to compute the size + * of shiftLength. The NDIS one is a unionized structure. +@@ -1145,7 +1148,15 @@ OvsPopVlanInPktBuf(OvsForwardingContext *ovsFwdCtx) + UINT32 shiftLength = sizeof(vlanTag.TagHeader); + UINT32 shiftOffset = sizeof(DL_EUI48) + sizeof(DL_EUI48); + +- return OvsPopFieldInPacketBuf(ovsFwdCtx, shiftOffset, shiftLength, NULL); ++ status = OvsPopFieldInPacketBuf(ovsFwdCtx, shiftOffset, shiftLength, ++ NULL); ++ ++ if (status == NDIS_STATUS_SUCCESS) { ++ layers->l3Offset -= (UINT16) shiftLength; ++ layers->l4Offset -= (UINT16) shiftLength; ++ } ++ ++ return status; + } + + +@@ -1259,6 +1270,7 @@ OvsActionMplsPush(OvsForwardingContext *ovsFwdCtx, */ static __inline NDIS_STATUS OvsUpdateEthHeader(OvsForwardingContext *ovsFwdCtx, @@ -928,7 +967,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 const struct ovs_key_ethernet *ethAttr) { PNET_BUFFER curNb; -@@ -1285,9 +1286,11 @@ OvsUpdateEthHeader(OvsForwardingContext *ovsFwdCtx, +@@ -1285,9 +1297,11 @@ OvsUpdateEthHeader(OvsForwardingContext *ovsFwdCtx, } ethHdr = (EthHdr *)(bufferStart + NET_BUFFER_CURRENT_MDL_OFFSET(curNb)); @@ -943,7 +982,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 return NDIS_STATUS_SUCCESS; } -@@ -1376,6 +1379,7 @@ PUINT8 OvsGetHeaderBySize(OvsForwardingContext *ovsFwdCtx, +@@ -1376,6 +1390,7 @@ PUINT8 OvsGetHeaderBySize(OvsForwardingContext *ovsFwdCtx, */ NDIS_STATUS OvsUpdateUdpPorts(OvsForwardingContext *ovsFwdCtx, @@ -951,7 +990,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 const struct ovs_key_udp *udpAttr) { PUINT8 bufferStart; -@@ -1400,15 +1404,19 @@ OvsUpdateUdpPorts(OvsForwardingContext *ovsFwdCtx, +@@ -1400,15 +1415,19 @@ OvsUpdateUdpPorts(OvsForwardingContext *ovsFwdCtx, udpHdr->check = ChecksumUpdate16(udpHdr->check, udpHdr->source, udpAttr->udp_src); udpHdr->source = udpAttr->udp_src; @@ -971,7 +1010,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 } return NDIS_STATUS_SUCCESS; -@@ -1423,6 +1431,7 @@ OvsUpdateUdpPorts(OvsForwardingContext *ovsFwdCtx, +@@ -1423,6 +1442,7 @@ OvsUpdateUdpPorts(OvsForwardingContext *ovsFwdCtx, */ NDIS_STATUS OvsUpdateTcpPorts(OvsForwardingContext *ovsFwdCtx, @@ -979,7 +1018,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 const struct ovs_key_tcp *tcpAttr) { PUINT8 bufferStart; -@@ -1447,11 +1456,13 @@ OvsUpdateTcpPorts(OvsForwardingContext *ovsFwdCtx, +@@ -1447,11 +1467,13 @@ OvsUpdateTcpPorts(OvsForwardingContext *ovsFwdCtx, tcpHdr->check = ChecksumUpdate16(tcpHdr->check, tcpHdr->source, tcpAttr->tcp_src); tcpHdr->source = tcpAttr->tcp_src; @@ -993,7 +1032,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 } return NDIS_STATUS_SUCCESS; -@@ -1579,6 +1590,7 @@ OvsUpdateAddressAndPort(OvsForwardingContext *ovsFwdCtx, +@@ -1579,6 +1601,7 @@ OvsUpdateAddressAndPort(OvsForwardingContext *ovsFwdCtx, */ NDIS_STATUS OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, @@ -1001,7 +1040,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 const struct ovs_key_ipv4 *ipAttr) { PUINT8 bufferStart; -@@ -1632,6 +1644,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, +@@ -1632,6 +1655,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, ipAttr->ipv4_src); } ipHdr->saddr = ipAttr->ipv4_src; @@ -1009,7 +1048,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 } if (ipHdr->daddr != ipAttr->ipv4_dst) { if (tcpHdr) { -@@ -1647,6 +1660,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, +@@ -1647,6 +1671,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, ipAttr->ipv4_dst); } ipHdr->daddr = ipAttr->ipv4_dst; @@ -1017,7 +1056,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 } if (ipHdr->protocol != ipAttr->ipv4_proto) { UINT16 oldProto = (ipHdr->protocol << 16) & 0xff00; -@@ -1661,6 +1675,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, +@@ -1661,6 +1686,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, ipHdr->check = ChecksumUpdate16(ipHdr->check, oldProto, newProto); } ipHdr->protocol = ipAttr->ipv4_proto; @@ -1025,7 +1064,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 } if (ipHdr->ttl != ipAttr->ipv4_ttl) { UINT16 oldTtl = (ipHdr->ttl) & 0xff; -@@ -1669,6 +1684,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, +@@ -1669,6 +1695,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, ipHdr->check = ChecksumUpdate16(ipHdr->check, oldTtl, newTtl); } ipHdr->ttl = ipAttr->ipv4_ttl; @@ -1033,7 +1072,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 } return NDIS_STATUS_SUCCESS; -@@ -1691,12 +1707,12 @@ OvsExecuteSetAction(OvsForwardingContext *ovsFwdCtx, +@@ -1691,12 +1718,12 @@ OvsExecuteSetAction(OvsForwardingContext *ovsFwdCtx, switch (type) { case OVS_KEY_ATTR_ETHERNET: @@ -1048,7 +1087,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 NlAttrGetUnspec(a, sizeof(struct ovs_key_ipv4))); break; -@@ -1709,16 +1725,17 @@ OvsExecuteSetAction(OvsForwardingContext *ovsFwdCtx, +@@ -1709,16 +1736,17 @@ OvsExecuteSetAction(OvsForwardingContext *ovsFwdCtx, status = SUCCEEDED(convertStatus) ? NDIS_STATUS_SUCCESS : NDIS_STATUS_FAILURE; ASSERT(status == NDIS_STATUS_SUCCESS); RtlCopyMemory(&ovsFwdCtx->tunKey, &tunKey, sizeof ovsFwdCtx->tunKey); @@ -1068,6 +1107,14 @@ index 5c9b5c3a0c..ced1d2957d 100644 NlAttrGetUnspec(a, sizeof(struct ovs_key_tcp))); break; +@@ -2053,6 +2081,7 @@ OvsDoExecuteActions(POVS_SWITCH_CONTEXT switchContext, + */ + status = OvsPopVlanInPktBuf(&ovsFwdCtx); + if (status != NDIS_STATUS_SUCCESS) { ++ OVS_LOG_ERROR("OVS-pop vlan action failed status = %lu", status); + dropReason = L"OVS-pop vlan action failed"; + goto dropit; + } diff --git a/datapath-windows/ovsext/Actions.h b/datapath-windows/ovsext/Actions.h index fd050d5dd8..bc12e1166d 100644 --- a/datapath-windows/ovsext/Actions.h diff --git a/SPECS/openvswitch2.11.spec b/SPECS/openvswitch2.11.spec index 7b59f26..dfc5abc 100644 --- a/SPECS/openvswitch2.11.spec +++ b/SPECS/openvswitch2.11.spec @@ -66,7 +66,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.11.3 -Release: 90%{?dist} +Release: 93%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -745,6 +745,27 @@ exit 0 %changelog +* Thu Sep 30 2021 Open vSwitch CI - 2.11.3-93 +- Merging upstream branch-2.11 [RH gerrit: 7130895ee1] + Commit list: + 67adc0141f datapath-windows:adjust Offset when processing packet in POP_VLAN action + + +* Tue Aug 17 2021 Michael Santana - 2.11.3-92 +- Migrate openvswitch to gitlab [RH gerrit: 1791ec21de] + Signed-off-by: Michael Santana + + +* Mon Aug 16 2021 Michael Santana - 2.11.3-91 +- pkgtool: Swap bugzilla id and RH git [RH gerrit: d88b628cb0] + Having the bugzilla ID not at the end of the line breakes another script + that parses for said ID. This patch fixes that by putting the ID next to + the new line + + Fixes: 99ad8d96f6b9 ("Make changelog in spec file more informative") + Signed-off-by: Michael Santana + + * Sat Jul 17 2021 Open vSwitch CI - 2.11.3-90 - Merging upstream branch-2.11 [RH gerrit: aac87adaf1] Commit list: @@ -1000,7 +1021,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-55 -- bus/pci: fix VF memory access (#1851170) [RH gerrit: fa4d90db57] +- bus/pci: fix VF memory access [RH git: fa4d90db57] (#1851170) To fix CVE-2020-12888, the linux vfio-pci module will invalidate mmaps and block MMIO access on disabled memory, it will send a SIGBUS to the application: @@ -1052,7 +1073,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-54 -- vhost: fix vring index check (#1831391) [RH gerrit: 8e33084d85] +- vhost: fix vring index check [RH git: 8e33084d85] (#1831391) vhost_user_check_and_alloc_queue_pair() is used to extract a vring index from a payload. This function validates the index and is called early on in when performing message @@ -1092,7 +1113,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-53 -- vhost: check log mmap offset and size overflow (#1831391) [RH gerrit: 753ae0cf66] +- vhost: check log mmap offset and size overflow [RH git: 753ae0cf66] (#1831391) vhost_user_set_log_base() is a message handler that is called to handle the VHOST_USER_SET_LOG_BASE message. Its payload contains a 64 bit size and offset. Both are @@ -1117,7 +1138,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-52 -- vhost: add device op when notification to guest is sent (#1726579) [RH gerrit: 92715cf99c] +- vhost: add device op when notification to guest is sent [RH git: 92715cf99c] (#1726579) This patch adds an operation callback which gets called every time the library is waking up the guest trough an eventfd_write() call. @@ -1133,7 +1154,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-51 -- net/i40e: re-program promiscuous mode on VF interface (#1733402) [RH gerrit: 0fe1f42b5f] +- net/i40e: re-program promiscuous mode on VF interface [RH git: 0fe1f42b5f] (#1733402) During a kernel PF reset, this event is propagated to the VF. The DPDK VF PMD will execute the reset task before the PF is done with his. This results in the admin queue message not being responded @@ -1150,7 +1171,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-50 -- bus/pci: always check IOMMU capabilities (#1711739) [RH gerrit: 0815c39d39] +- bus/pci: always check IOMMU capabilities [RH git: 0815c39d39] (#1711739) IOMMU capabilities won't change and must be checked even if no PCI device seem to be supported yet when EAL initialised. @@ -1173,7 +1194,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-49 -- eal: fix IOVA mode selection as VA for PCI drivers (#1711739) [RH gerrit: 11fbef3c85] +- eal: fix IOVA mode selection as VA for PCI drivers [RH git: 11fbef3c85] (#1711739) The incriminated commit broke the use of RTE_PCI_DRV_IOVA_AS_VA which was intended to mean "driver only supports VA" but had been understood as "driver supports both PA and VA" by most net drivers and used to let @@ -1213,7 +1234,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-48 -- bus/pci: consider only usable devices for IOVA mode (#1711739) [RH gerrit: 69f5cb4c56] +- bus/pci: consider only usable devices for IOVA mode [RH git: 69f5cb4c56] (#1711739) When selecting the preferred IOVA mode of the pci bus, the current heuristic ("are devices bound?", "are devices bound to UIO?", "are pmd drivers supporting IOVA as VA?" etc..) should honor the device @@ -1245,7 +1266,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-47 -- eal: compute IOVA mode based on PA availability (#1711739) [RH gerrit: d5e1d2fa50] +- eal: compute IOVA mode based on PA availability [RH git: d5e1d2fa50] (#1711739) Currently, if the bus selects IOVA as PA, the memory init can fail when lacking access to physical addresses. This can be quite hard for normal users to understand what is wrong @@ -1279,7 +1300,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-46 -- netdev-linux: Update LAG in all cases. (#1812892) [RH gerrit: 2763511809] +- netdev-linux: Update LAG in all cases. [RH git: 2763511809] (#1812892) In some cases, when processing a netlink change event, it's possible for an alternate part of OvS (like the IPv6 endpoint processing) to hold an active netdev interface. This creates a race-condition, where sometimes @@ -1303,7 +1324,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-45 -- netdev-offload-tc: Re-fetch block ID after probing. (#1812892) [RH gerrit: 83cebd3221] +- netdev-offload-tc: Re-fetch block ID after probing. [RH git: 83cebd3221] (#1812892) It's possible that block_id could changes after the probe for block support. Therefore, fetch the block_id again after the probe. @@ -1320,7 +1341,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-44 -- netdev-offload-tc: Flush rules on ingress block when init tc flow api (#1812892) [RH gerrit: e5d7d5ec24] +- netdev-offload-tc: Flush rules on ingress block when init tc flow api [RH git: e5d7d5ec24] (#1812892) OVS can fail to attach ingress block on iface when init tc flow api, if block already exist with rules on it and is shared with other iface. Fix by flush all existing rules on the ingress block prior to deleting @@ -1337,7 +1358,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-43 -- netdev-vport: Use the dst_port in tunnel netdev name (#1727599) [RH gerrit: f4a6fb7574] +- netdev-vport: Use the dst_port in tunnel netdev name [RH git: f4a6fb7574] (#1727599) If tunnel device dst_port is not the default one, "ovs-dpctl dump-flows" will fail. The error message for vxlan is: @@ -1356,7 +1377,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-42 -- lib/tc: Fix flow dump for tunnel id equal zero (#1732305) [RH gerrit: 765ba1d1c0] +- lib/tc: Fix flow dump for tunnel id equal zero [RH git: 765ba1d1c0] (#1732305) Tunnel id 0 is not printed unless tunnel flag FLOW_TNL_F_KEY is set. Fix that by always setting FLOW_TNL_F_KEY when tunnel id is valid. @@ -1370,7 +1391,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-41 -- lib/tc: Support optional tunnel id (#1732305) [RH gerrit: 42f09fe96f] +- lib/tc: Support optional tunnel id [RH git: 42f09fe96f] (#1732305) Currently the TC tunnel_key action is always initialized with the given tunnel id value. However, some tunneling protocols define the tunnel id as an optional field. @@ -1390,7 +1411,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-40 -- tc: Set 'no_percpu' flag for compatible actions (#1780690) [RH gerrit: 42f07f6bd8] +- tc: Set 'no_percpu' flag for compatible actions [RH git: 42f07f6bd8] (#1780690) Recent changes in Linux kernel TC action subsystem introduced new TCA_ACT_FLAGS_NO_PERCPU_STATS flag. The purpose of the flag is to request action implementation to skip allocating action stats with expensive percpu @@ -1414,7 +1435,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-39 -- rhel: let *-ctl handle runtime directory (#1785586) [RH gerrit: c3763ec916] +- rhel: let *-ctl handle runtime directory [RH git: c3763ec916] (#1785586) Recent versions of systemd restores RuntimeDirectory ownership to the unit's User in between execution of *Exec directives (see [1]). Using ExecStartPre to reset RuntimeDirectory ownership to OVS_USER no longer @@ -1436,7 +1457,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-38 -- rhel: set useropts optional for ovsdb-server (#1785586) [RH gerrit: 77bed8f0e4] +- rhel: set useropts optional for ovsdb-server [RH git: 77bed8f0e4] (#1785586) systemd assesses the presssence of all EnvironmentFile before execution of Exec* directives, thus useropts needs to be optional even though it will always be created at ExecStartPre. @@ -1450,7 +1471,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-37 -- rhel: run ovn with the same user as ovs (#1785586) [RH gerrit: 8f5f39b4af] +- rhel: run ovn with the same user as ovs [RH git: 8f5f39b4af] (#1785586) Both ovn and ovs share the same log and run directories which are owned by the user running ovs so it makes sense that ovn runs under that user too to diminish security concerns and possible problems with log rotation. @@ -1463,7 +1484,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-36 -- rhel: secure openvswitch useropts (#1785586) [RH gerrit: 71154ad26f] +- rhel: secure openvswitch useropts [RH git: 71154ad26f] (#1785586) The openvswitch useropts file is being stored in a directory where the openvswitch user has write permissions. The openvswitch user can then manipulate the file to change the user under which switchd daemon runs. @@ -1479,7 +1500,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-35 -- userspace: Improved packet drop statistics. (#1726568) [RH gerrit: a6b7a37be8] +- userspace: Improved packet drop statistics. [RH git: a6b7a37be8] (#1726568) Currently OVS maintains explicit packet drop/error counters only on port level. Packets that are dropped as part of normal OpenFlow processing are counted in flow stats of “drop” flows or as table misses in table @@ -1520,7 +1541,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-34 -- netdev-dpdk: Fix sw stats perf drop. (#1790841) [RH gerrit: 54f4571750] +- netdev-dpdk: Fix sw stats perf drop. [RH git: 54f4571750] (#1790841) Accessing the sw stats in the vhost datapath of a PVP test can incur a performance drop of ~2%. @@ -1539,7 +1560,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-33 -- netdev-dpdk: Detailed packet drop statistics. (#1790841) [RH gerrit: 1e1b33541a] +- netdev-dpdk: Detailed packet drop statistics. [RH git: 1e1b33541a] (#1790841) OVS may be unable to transmit packets for multiple reasons on the userspace datapath and today there is a single counter to track packets dropped due to any of those reasons. This patch @@ -1576,7 +1597,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-32 -- netdev-dpdk: Reuse vhost function for dpdk ETH custom stats. (#1790841) [RH gerrit: e0d00f70c5] +- netdev-dpdk: Reuse vhost function for dpdk ETH custom stats. [RH git: e0d00f70c5] (#1790841) This is yet another refactoring for upcoming detailed drop stats. It allows to use single function for all the software calculated statistics in netdev-dpdk for both vhost and ETH ports. @@ -1594,7 +1615,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-31 -- netdev-dpdk: Refactor vhost custom stats for extensibility. (#1790841) [RH gerrit: b084d7a5c2] +- netdev-dpdk: Refactor vhost custom stats for extensibility. [RH git: b084d7a5c2] (#1790841) vHost interfaces currently has only one custom statistic, but there might be others in the near future. This refactoring makes the code work in the same way as it done for dpdk and afxdp stats to keep the @@ -1610,7 +1631,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-30 -- netdev-dpdk: Fix not reporting rx_oversize_errors in stats. (#1790841) [RH gerrit: 26017f85c8] +- netdev-dpdk: Fix not reporting rx_oversize_errors in stats. [RH git: 26017f85c8] (#1790841) There is a big code duplication issue with DPDK xstats that led to missed "rx_oversize_errors" statistics. It's defined but not used. Fix that by actually using this stat along with code refactoring that @@ -1629,7 +1650,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-29 -- ovsdb replication: Provide option to configure probe interval. (#1788800) [RH gerrit: e8a669ead7] +- ovsdb replication: Provide option to configure probe interval. [RH git: e8a669ead7] (#1788800) When ovsdb-server is in backup mode and connects to the active ovsdb-server for replication, and if takes more than 5 seconds to get the dump of the whole database, it will drop the connection @@ -1654,7 +1675,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-28 -- netdev-dpdk: Add coverage counter to count vhost IRQs. (#1726579) [RH gerrit: 3c3997eb0a] +- netdev-dpdk: Add coverage counter to count vhost IRQs. [RH git: 3c3997eb0a] (#1726579) When the dpdk vhost library executes an eventfd_write() call, i.e. waking up the guest, a new callback will be called. @@ -1684,7 +1705,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-27 -- netdev-dpdk: add support for the RTE_ETH_EVENT_INTR_RESET event. (#1719644) [RH gerrit: ca1a1a8e1c] +- netdev-dpdk: add support for the RTE_ETH_EVENT_INTR_RESET event. [RH git: ca1a1a8e1c] (#1719644) Currently, OVS does not register and therefore not handle the interface reset event from the DPDK framework. This would cause a problem in cases where a VF is used as an interface, and its @@ -1708,7 +1729,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-26 -- bridge: Allow manual notifications about interfaces' updates. (#1719644) [RH gerrit: f58b680888] +- bridge: Allow manual notifications about interfaces' updates. [RH git: f58b680888] (#1719644) Sometimes interface updates could happen in a way ifnotifier is not able to catch. For example some heavy operations (device reset) in netdev-dpdk could require re-applying of the bridge configuration. @@ -1731,7 +1752,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-25 -- Shutdown SSL connection before closing socket (#1780745) [RH gerrit: aa97017175] +- Shutdown SSL connection before closing socket [RH git: aa97017175] (#1780745) Without shutting down the SSL connection, log messages like: stream_ssl|WARN|SSL_read: unexpected SSL connection close @@ -1750,7 +1771,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-24 -- flake8: also check the ovs-check-dead-ifs script (#1751161) [RH gerrit: ecd3a1b407] +- flake8: also check the ovs-check-dead-ifs script [RH git: ecd3a1b407] (#1751161) Acked-by: William Tu Signed-off-by: Aaron Conole Signed-off-by: Ben Pfaff @@ -1760,7 +1781,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-23 -- ovs-check-dead-ifs: unshadow pid variable (#1751161) [RH gerrit: a086e76181] +- ovs-check-dead-ifs: unshadow pid variable [RH git: a086e76181] (#1751161) The pid variable is being shadowed by the list comprehension in the os.execvp() call. This can generate flakes / warnings in some environments so fix it. @@ -1774,7 +1795,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-22 -- ovs-check-dead-ifs: python3 print format (#1751161) [RH gerrit: d61553f744] +- ovs-check-dead-ifs: python3 print format [RH git: d61553f744] (#1751161) The print call changed in python3, so update it. Acked-by: William Tu @@ -1786,7 +1807,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-21 -- ovs-tcpundump: exit when getting version (#1764127) [RH gerrit: ea9923af22] +- ovs-tcpundump: exit when getting version [RH git: ea9923af22] (#1764127) Running 'ovs-tcpundump -V' will cause ovs-tcpundump to start processing on stdin. Instead, print the version and exit. @@ -1798,7 +1819,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-20 -- ovs-tcpundump: allow multiple packet lengths (#1764125) [RH gerrit: ac3b779405] +- ovs-tcpundump: allow multiple packet lengths [RH git: ac3b779405] (#1764125) The tcpundump tool expects all packets to be a length which aligns to exactly a 4-nibble boundary. This means packets like DNS requests will be stripped before being correctly processed. Fix this by allowing at least @@ -1812,7 +1833,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-19 -- jsonrpc: increase input buffer size from 512 to 4096 (#1776883) [RH gerrit: 9c93db8373] +- jsonrpc: increase input buffer size from 512 to 4096 [RH git: 9c93db8373] (#1776883) Increase jsonrpc input buffer size from 512 to 4096 bytes in order to reduce the syscall overhead when downloading huge db size @@ -1825,7 +1846,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-18 -- netdev-dpdk: Track vhost tx contention. (#1740144) [RH gerrit: 31112a9502] +- netdev-dpdk: Track vhost tx contention. [RH git: 31112a9502] (#1740144) Add a coverage counter to help diagnose contention on the vhost txqs. This is seen as dropped packets on the physical ports for rates that are usually handled fine by OVS. @@ -1839,7 +1860,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-17 -- ovsdb-server: Allow replication from older schema version servers. (#1766586) [RH gerrit: cb53fe2282] +- ovsdb-server: Allow replication from older schema version servers. [RH git: cb53fe2282] (#1766586) Presently, replication is not allowed if there is a schema version mismatch between the schema returned by the active ovsdb-server and the local db schema. This is causing failures in OVN DB HA deployments during uprades. @@ -1866,7 +1887,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-16 -- ovsdb-server: Don't drop all connections on read/write status change. (#1761572) [RH gerrit: 5a0a77328b] +- ovsdb-server: Don't drop all connections on read/write status change. [RH git: 5a0a77328b] (#1761572) The commit [1] force drops all connections when the db read/write status changes. Prior to the commit [1], when there was read/write status change, the existing jsonrpc sessions with 'db_change_aware' set to true, were not updated with the @@ -1903,7 +1924,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-15 -- ofproto-dpif: Fix continuation with patch port (#1761461) [RH gerrit: 069d4bd437] +- ofproto-dpif: Fix continuation with patch port [RH git: 069d4bd437] (#1761461) This patch fixes the ofp_port to odp_port translation issue on patch port with nxt_resume. When OVS resumes processing a packet from nxt_resume, OVS does not translate the ofp in_port to odp in_port @@ -1935,7 +1956,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-14 -- vswitch: ratelimit the device add log (#1737146) [RH gerrit: 052e541d45] +- vswitch: ratelimit the device add log [RH git: 052e541d45] (#1737146) It's possible that a port added to the system with certain kinds of invalid parameters will cause the 'could not add' log to be triggered. When this happens, the vswitch run loop can continually @@ -1954,7 +1975,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-13 -- netdev-dpdk: Enable tx-retries-max config. (#1747531) [RH gerrit: 734086f5d4] +- netdev-dpdk: Enable tx-retries-max config. [RH git: 734086f5d4] (#1747531) vhost tx retries can provide some mitigation against dropped packets due to a temporarily slow guest/limited queue size for an interface, but on the other hand when a system @@ -1980,7 +2001,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-12 -- netdev-dpdk: Add custom stat for vhost tx retries. (#1747531) [RH gerrit: 0c238ac414] +- netdev-dpdk: Add custom stat for vhost tx retries. [RH git: 0c238ac414] (#1747531) vhost tx retries may occur, and it can be a sign that the guest is not optimally configured. @@ -1996,7 +2017,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-11 -- doc: Move vhost tx retry info to separate section. (#1747531) [RH gerrit: 91d9e4d92b] +- doc: Move vhost tx retry info to separate section. [RH git: 91d9e4d92b] (#1747531) vhost tx retry is applicable to vhost-user and vhost-user-client, but was in the section that compares them. Also, moved further down the doc as prefer to have more fundamental info about vhost @@ -2013,7 +2034,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-10 -- netdev-vport: Make ip6gre netdev type to use TC rules (#1725623) [RH gerrit: d3315b8035] +- netdev-vport: Make ip6gre netdev type to use TC rules [RH git: d3315b8035] (#1725623) The offload api functions already assigned to every tunnel class. For ip6gre tunnel class only need to also assign the get_ifindex function, similarly as done in commit 5e63eaa969a3 ("netdev-vport: Make @@ -2028,7 +2049,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-9 -- tunnel: Add layer 2 IPv6 GRE encapsulation support. (#1725623) [RH gerrit: 0c20e7e83d] +- tunnel: Add layer 2 IPv6 GRE encapsulation support. [RH git: 0c20e7e83d] (#1725623) The patch adds ip6gre support. Tunnel type 'ip6gre' with packet_type= legacy_l2 is a layer 2 GRE tunnel over IPv6, carrying inner ethernet packets and encap with GRE header with outer IPv6 header. Encapsulation of layer 3 @@ -2049,7 +2070,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-8 -- ovsdb-server: drop all connections on read/write status change (#1720947) [RH gerrit: 0f0be40ee0] +- ovsdb-server: drop all connections on read/write status change [RH git: 0f0be40ee0] (#1720947) Prior to this patch, only db change aware connections were dropped on a read/write status change. However, current schema in OVN does not allow clients to monitor whether a particular DB changes this @@ -2069,7 +2090,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-7 -- netdev-tc-offloads: Support match on priority tags (#1725623) [RH gerrit: 895735b382] +- netdev-tc-offloads: Support match on priority tags [RH git: 895735b382] (#1725623) The logic by which a TC rule has a VLAN match is by the VLAN TCI field, either the VID, PCP or CFI are non-zero. For priority-tag packets there is a VLAN tag header with a zero VLAN TCI. Match on existence of @@ -2084,7 +2105,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-6 -- rhel: limit stack size to 2M. (#1720315) [RH gerrit: 79c6209e71] +- rhel: limit stack size to 2M. [RH git: 79c6209e71] (#1720315) The default stack size in Fedora/RHEL is 8M, which means when ovs-vswitchd daemon starts and uses --mlockall (default), it will dirty all memory regions for all threads which is proportionally to the number of CPUs. @@ -2111,7 +2132,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-5 -- Add a new OVS action check_pkt_larger (#1702564) [RH gerrit: c899ac5788] +- Add a new OVS action check_pkt_larger [RH git: c899ac5788] (#1702564) This patch adds a new action 'check_pkt_larger' which checks if the packet is larger than the given size and stores the result in the destination register. @@ -2175,7 +2196,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-4 -- netlink linux: account for the netnsid netlink attr. (#1692812) [RH gerrit: ce14b518b7] +- netlink linux: account for the netnsid netlink attr. [RH git: ce14b518b7] (#1692812) The buffer needs to be reallocated and data copied when the netnsid netlink attribute is included, so avoid that by accounting the attribute when the buffer is initially @@ -2191,7 +2212,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-3 -- rhel: Add an example to specify custom options (#1687775) [RH gerrit: a7dd6b6eb5] +- rhel: Add an example to specify custom options [RH git: a7dd6b6eb5] (#1687775) Add an example to specify custom options of ovs-vswitchd and ovsdb-server. In the example, the log level for file and console destinations is set to dbg. @@ -2204,7 +2225,7 @@ exit 0 * Fri Jul 10 2020 Timothy Redaelli - 2.11.3-2 -- ovs-ctl: Permit to specify additional options (#1687775) [RH gerrit: b8a874b82e] +- ovs-ctl: Permit to specify additional options [RH git: b8a874b82e] (#1687775) Currently using ovs-ctl is not possible to specify additional options for ovs-vswitchd and ovsdb-server (for example to specify a different loglevel during daemon startup).