From 550c656441f945a476a1a0eef30f80ec282289ef Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Nov 15 2021 12:09:16 +0000 Subject: Import openvswitch2.16-2.16.0-31 from Fast DataPath --- diff --git a/SOURCES/openvswitch-2.16.0.patch b/SOURCES/openvswitch-2.16.0.patch index 3eecc53..a1ce8d0 100644 --- a/SOURCES/openvswitch-2.16.0.patch +++ b/SOURCES/openvswitch-2.16.0.patch @@ -235,6 +235,44 @@ index e130c2f966..0c18c62548 100644 } return status; +diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath-windows/ovsext/Conntrack.c +index 2610d626a0..fd6f3bae04 100644 +--- a/datapath-windows/ovsext/Conntrack.c ++++ b/datapath-windows/ovsext/Conntrack.c +@@ -493,15 +493,32 @@ static __inline NDIS_STATUS + OvsDetectCtPacket(OvsForwardingContext *fwdCtx, + OvsFlowKey *key) + { ++ NDIS_STATUS status = NDIS_STATUS_SUCCESS; ++ OvsFlowKey newFlowKey = { 0 }; ++ + switch (ntohs(key->l2.dlType)) { + case ETH_TYPE_IPV4: + if (key->ipKey.nwFrag != OVS_FRAG_TYPE_NONE) { +- return OvsProcessIpv4Fragment(fwdCtx->switchContext, ++ status = OvsProcessIpv4Fragment(fwdCtx->switchContext, + &fwdCtx->curNbl, + fwdCtx->completionList, + fwdCtx->fwdDetail->SourcePortId, + &fwdCtx->layers, + key->tunKey.tunnelId); ++ if (status == NDIS_STATUS_SUCCESS) { ++ /* After the Ipv4 Fragment is reassembled, update flow key as ++ L3 and L4 headers are not correct */ ++ status = ++ OvsExtractFlow(fwdCtx->curNbl, fwdCtx->srcVportNo, ++ &newFlowKey, &fwdCtx->layers, ++ fwdCtx->tunKey.dst != 0 ? &fwdCtx->tunKey : NULL); ++ if (status != NDIS_STATUS_SUCCESS) { ++ OVS_LOG_ERROR("Extract flow failed Nbl %p", fwdCtx->curNbl); ++ return status; ++ } ++ *key = newFlowKey; ++ } ++ return status; + } + if (key->ipKey.nwProto == IPPROTO_TCP + || key->ipKey.nwProto == IPPROTO_UDP diff --git a/datapath-windows/ovsext/Recirc.c b/datapath-windows/ovsext/Recirc.c index 2febf060dd..a32b75352b 100644 --- a/datapath-windows/ovsext/Recirc.c diff --git a/SPECS/openvswitch2.16.spec b/SPECS/openvswitch2.16.spec index 2bc08fb..8c2d9ab 100644 --- a/SPECS/openvswitch2.16.spec +++ b/SPECS/openvswitch2.16.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.16.0 -Release: 30%{?dist} +Release: 31%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -699,6 +699,12 @@ exit 0 %endif %changelog +* Mon Nov 15 2021 Open vSwitch CI - 2.16.0-31 +- Merging upstream branch-2.16 [RH git: 77a249d38b] + Commit list: + f8f2f7c9cb datapath-windows: Reset flow key after Ipv4 fragments are reassembled + + * Wed Nov 10 2021 Timothy Redaelli - 2.16.0-30 - python: Replace pyOpenSSL with ssl. [RH git: 0cd5867531] (#1988429) Currently, pyOpenSSL is half-deprecated upstream and so it's removed on