summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/Flow.c
diff options
context:
space:
mode:
authorWilson Peng <pweisong@vmware.com>2022-06-02 14:44:04 +0800
committerAlin-Gabriel Serdean <aserdean@ovn.org>2022-06-22 01:56:05 +0300
commit70f81aa23a6aa276aa8282cd0ba3fdd34f071434 (patch)
tree8bb6f2b3749aa8c8af9b4f496199aaa0016e20e5 /datapath-windows/ovsext/Flow.c
parentbca41028307a18d5cf10b41fdfb464ff3d9b6c81 (diff)
downloadopenvswitch-70f81aa23a6aa276aa8282cd0ba3fdd34f071434.tar.gz
datapath-windows: Update layers for multiple tunnels processing
While testing OVS-windows for multiple IPV6 Geneve tunnels on Windows2019VM, for the broadcast/mutlicast packets, it needs to flood out via configured multiple Geneve tunnels. Then in some flow pipeline processing, it may have at least two tunnel processing in OVS_ACTION_ATTR_SET action. When processing the second tunnel setting it may need flush out the packet out via tunnel before setting new tunnel parameter in tunKey. We found in this case, after flushing out the packet out via tunnel, the related layers pointer does not update. In our test setup on Windows2019VM, it will cause BSOD which is triggered in other Windows processes. We suspect it may be related to memory overwriting. When we apply the fix in the patch, no BSOD is observed on the same VM and same packet/tunnel settting. Another thing needs to be mentioned is for multiple Geneve IPv4 tunnels, the same kind broadcase/multicast packet will not cause BSOD. Signed-off-by: Wilson Peng <pweisong@vmware.com> Signed-off-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Diffstat (limited to 'datapath-windows/ovsext/Flow.c')
-rw-r--r--datapath-windows/ovsext/Flow.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c
index 08fba4c4d..86e809fc1 100644
--- a/datapath-windows/ovsext/Flow.c
+++ b/datapath-windows/ovsext/Flow.c
@@ -88,7 +88,7 @@ static NTSTATUS OvsDoDumpFlows(OvsFlowDumpInput *dumpInput,
UINT32 *replyLen);
static NTSTATUS OvsProbeSupportedFeature(POVS_MESSAGE msgIn,
PNL_ATTR keyAttr);
-static UINT16 OvsGetFlowIPL2Offset(const OvsIPTunnelKey *tunKey);
+UINT16 OvsGetFlowIPL2Offset(const OvsIPTunnelKey *tunKey);
#define OVS_FLOW_TABLE_SIZE 2048
#define OVS_FLOW_TABLE_MASK (OVS_FLOW_TABLE_SIZE -1)