diff --git a/SOURCES/openvswitch-2.15.0.patch b/SOURCES/openvswitch-2.15.0.patch index d514e38..3e05b95 100644 --- a/SOURCES/openvswitch-2.15.0.patch +++ b/SOURCES/openvswitch-2.15.0.patch @@ -401,6 +401,44 @@ index 4f43369844..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.15.spec b/SPECS/openvswitch2.15.spec index 5b72eb1..b103083 100644 --- a/SPECS/openvswitch2.15.spec +++ b/SPECS/openvswitch2.15.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.15.0 -Release: 51%{?dist} +Release: 52%{?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.15.0-52 +- Merging upstream branch-2.15 [RH git: 001ae577c6] + Commit list: + 08a270dda1 datapath-windows: Reset flow key after Ipv4 fragments are reassembled + + * Thu Oct 28 2021 Open vSwitch CI - 2.15.0-51 - Merging upstream branch-2.15 [RH git: a134a530c9] Commit list: