diff --git a/SOURCES/openvswitch-2.13.0.patch b/SOURCES/openvswitch-2.13.0.patch index 13d593b..fc0cf4d 100644 --- a/SOURCES/openvswitch-2.13.0.patch +++ b/SOURCES/openvswitch-2.13.0.patch @@ -1613,10 +1613,44 @@ index eda42ac823..a468c3e6bc 100644 if (src->wscale & CT_WSCALE_FLAG diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath-windows/ovsext/Conntrack.c -index ba5611697a..55917c43ff 100644 +index ba5611697a..4d24706915 100644 --- a/datapath-windows/ovsext/Conntrack.c +++ b/datapath-windows/ovsext/Conntrack.c -@@ -753,6 +753,9 @@ OvsProcessConntrackEntry(OvsForwardingContext *fwdCtx, +@@ -491,15 +491,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 +@@ -753,6 +770,9 @@ OvsProcessConntrackEntry(OvsForwardingContext *fwdCtx, return NULL; } break; diff --git a/SPECS/openvswitch2.13.spec b/SPECS/openvswitch2.13.spec index c4fcfce..b8aac4c 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: 137%{?commit0:.%{date}git%{shortcommit0}}%{?commit1:dpdk%{shortcommit1}}%{?dist} +Release: 138%{?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 @@ -712,6 +712,12 @@ exit 0 %endif %changelog +* Mon Nov 15 2021 Open vSwitch CI - 2.13.0-138 +- Merging upstream branch-2.13 [RH git: 424b25f9ca] + Commit list: + 85358e0a9f datapath-windows: Reset flow key after Ipv4 fragments are reassembled + + * Thu Oct 28 2021 Open vSwitch CI - 2.13.0-137 - Merging upstream branch-2.13 [RH git: f86ccc67c2] Commit list: