diff --git a/SOURCES/openvswitch-2.13.0.patch b/SOURCES/openvswitch-2.13.0.patch index 7afd1d8..9feca4c 100644 --- a/SOURCES/openvswitch-2.13.0.patch +++ b/SOURCES/openvswitch-2.13.0.patch @@ -1237,7 +1237,7 @@ index 92b52f6712..0dc2a7dbca 100644 OVS_CHECK_PRAGMA_MESSAGE AC_SUBST([OVS_CFLAGS]) diff --git a/datapath-windows/ovsext/Actions.c b/datapath-windows/ovsext/Actions.c -index 5c9b5c3a0c..ced1d2957d 100644 +index 5c9b5c3a0c..f1f2c03197 100644 --- a/datapath-windows/ovsext/Actions.c +++ b/datapath-windows/ovsext/Actions.c @@ -1259,6 +1259,7 @@ OvsActionMplsPush(OvsForwardingContext *ovsFwdCtx, @@ -1313,7 +1313,29 @@ index 5c9b5c3a0c..ced1d2957d 100644 } return NDIS_STATUS_SUCCESS; -@@ -1579,6 +1590,7 @@ OvsUpdateAddressAndPort(OvsForwardingContext *ovsFwdCtx, +@@ -1539,9 +1550,21 @@ OvsUpdateAddressAndPort(OvsForwardingContext *ovsFwdCtx, + if (tcpHdr) { + portField = &tcpHdr->dest; + checkField = &tcpHdr->check; ++ l4Offload = isTx ? (BOOLEAN)csumInfo.Transmit.TcpChecksum : ++ ((BOOLEAN)csumInfo.Receive.TcpChecksumSucceeded || ++ (BOOLEAN)csumInfo.Receive.TcpChecksumFailed); + } else if (udpHdr) { + portField = &udpHdr->dest; + checkField = &udpHdr->check; ++ l4Offload = isTx ? (BOOLEAN)csumInfo.Transmit.UdpChecksum : ++ ((BOOLEAN)csumInfo.Receive.UdpChecksumSucceeded || ++ (BOOLEAN)csumInfo.Receive.UdpChecksumFailed); ++ } ++ ++ if (l4Offload) { ++ *checkField = IPPseudoChecksum(&ipHdr->saddr, &newAddr, ++ tcpHdr ? IPPROTO_TCP : IPPROTO_UDP, ++ ntohs(ipHdr->tot_len) - ipHdr->ihl * 4); + } + } + +@@ -1579,6 +1602,7 @@ OvsUpdateAddressAndPort(OvsForwardingContext *ovsFwdCtx, */ NDIS_STATUS OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, @@ -1321,7 +1343,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 const struct ovs_key_ipv4 *ipAttr) { PUINT8 bufferStart; -@@ -1632,6 +1644,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, +@@ -1632,6 +1656,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, ipAttr->ipv4_src); } ipHdr->saddr = ipAttr->ipv4_src; @@ -1329,7 +1351,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 } if (ipHdr->daddr != ipAttr->ipv4_dst) { if (tcpHdr) { -@@ -1647,6 +1660,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, +@@ -1647,6 +1672,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, ipAttr->ipv4_dst); } ipHdr->daddr = ipAttr->ipv4_dst; @@ -1337,7 +1359,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 +1687,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, ipHdr->check = ChecksumUpdate16(ipHdr->check, oldProto, newProto); } ipHdr->protocol = ipAttr->ipv4_proto; @@ -1345,7 +1367,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 +1696,7 @@ OvsUpdateIPv4Header(OvsForwardingContext *ovsFwdCtx, ipHdr->check = ChecksumUpdate16(ipHdr->check, oldTtl, newTtl); } ipHdr->ttl = ipAttr->ipv4_ttl; @@ -1353,7 +1375,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 } return NDIS_STATUS_SUCCESS; -@@ -1691,12 +1707,12 @@ OvsExecuteSetAction(OvsForwardingContext *ovsFwdCtx, +@@ -1691,12 +1719,12 @@ OvsExecuteSetAction(OvsForwardingContext *ovsFwdCtx, switch (type) { case OVS_KEY_ATTR_ETHERNET: @@ -1368,7 +1390,7 @@ index 5c9b5c3a0c..ced1d2957d 100644 NlAttrGetUnspec(a, sizeof(struct ovs_key_ipv4))); break; -@@ -1709,16 +1725,17 @@ OvsExecuteSetAction(OvsForwardingContext *ovsFwdCtx, +@@ -1709,16 +1737,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); diff --git a/SPECS/openvswitch2.13.spec b/SPECS/openvswitch2.13.spec index 00bd95a..876a615 100644 --- a/SPECS/openvswitch2.13.spec +++ b/SPECS/openvswitch2.13.spec @@ -59,7 +59,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.13.0 -Release: 117%{?commit0:.%{date}git%{shortcommit0}}%{?commit1:dpdk%{shortcommit1}}%{?dist} +Release: 118%{?commit0:.%{date}git%{shortcommit0}}%{?commit1:dpdk%{shortcommit1}}%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -710,6 +710,10 @@ exit 0 %endif %changelog +* Wed Jul 21 2021 Open vSwitch CI - 2.13.0-118 +- Merging upstream branch-2.13 + [d613ce404a9f86e8ff209fe3b17c76a231258bdf] + * Sat Jul 17 2021 Open vSwitch CI - 2.13.0-117 - Merging upstream branch-2.13 [1dbd295283c1533e979c2d7694168a6737c8d645]