From bb8a0a7f0ac3593b7502b617824bc5227334cc83 Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Sep 30 2021 16:08:23 +0000 Subject: Import openvswitch2.15-2.15.0-42 from Fast DataPath --- diff --git a/SOURCES/openvswitch-2.15.0.patch b/SOURCES/openvswitch-2.15.0.patch index 7707578..ffe9dc5 100644 --- a/SOURCES/openvswitch-2.15.0.patch +++ b/SOURCES/openvswitch-2.15.0.patch @@ -235,10 +235,49 @@ index fd82d7d270..bcee218005 100644 AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) diff --git a/datapath-windows/ovsext/Actions.c b/datapath-windows/ovsext/Actions.c -index 4f43369844..e130c2f966 100644 +index 4f43369844..90ecb59f06 100644 --- a/datapath-windows/ovsext/Actions.c +++ b/datapath-windows/ovsext/Actions.c -@@ -1550,9 +1550,21 @@ OvsUpdateAddressAndPort(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; + } + + +@@ -1550,9 +1561,21 @@ OvsUpdateAddressAndPort(OvsForwardingContext *ovsFwdCtx, if (tcpHdr) { portField = &tcpHdr->dest; checkField = &tcpHdr->check; @@ -260,6 +299,14 @@ index 4f43369844..e130c2f966 100644 } } +@@ -2088,6 +2111,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/ovsext.vcxproj b/datapath-windows/ovsext/ovsext.vcxproj index d50a126b43..18f884f41b 100644 --- a/datapath-windows/ovsext/ovsext.vcxproj diff --git a/SPECS/openvswitch2.15.spec b/SPECS/openvswitch2.15.spec index adf9eed..dd5ca77 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: 41%{?dist} +Release: 42%{?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 +* Thu Sep 30 2021 Open vSwitch CI - 2.15.0-42 +- Merging upstream branch-2.15 [RH git: 2a86017f3f] + Commit list: + f8274b78c3 datapath-windows:adjust Offset when processing packet in POP_VLAN action + + * Mon Sep 27 2021 Open vSwitch CI - 2.15.0-41 - Merging upstream branch-2.15 [RH git: 8f2e30f011] Commit list: