[ovs-dev] [PATCH v2] datapath-windows: Update Recirculation to use the right parameters
Sairam Venugopal
vsairam at vmware.com
Fri Mar 25 18:06:49 UTC 2016
Update OvsLookupFlow() to include flowKey->RecircId when computing hash.
Use the right source port Id for checking if a packet is received or transmitted.
Signed-off-by: Sairam Venugopal <vsairam at vmware.com>
---
datapath-windows/ovsext/Actions.c | 2 +-
datapath-windows/ovsext/Flow.c | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/datapath-windows/ovsext/Actions.c b/datapath-windows/ovsext/Actions.c
index a91454d..7742096 100644
--- a/datapath-windows/ovsext/Actions.c
+++ b/datapath-windows/ovsext/Actions.c
@@ -2015,7 +2015,7 @@ OvsDoRecirc(POVS_SWITCH_CONTEXT switchContext,
}
status = OvsCreateAndAddPackets(NULL, 0, OVS_PACKET_CMD_MISS,
vport, key, ovsFwdCtx.curNbl,
- srcPortNo ==
+ ovsFwdCtx.fwdDetail->SourcePortId ==
switchContext->virtualExternalPortId,
&ovsFwdCtx.layers,
ovsFwdCtx.switchContext,
diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c
index 02c41b7..d49697c 100644
--- a/datapath-windows/ovsext/Flow.c
+++ b/datapath-windows/ovsext/Flow.c
@@ -2133,6 +2133,9 @@ OvsLookupFlow(OVS_DATAPATH *datapath,
if (!hashValid) {
*hash = OvsJhashBytes(start, size, 0);
+ if (key->recircId) {
+ *hash = OvsJhashWords((UINT32*)hash, 1, key->recircId);
+ }
}
head = &datapath->flowTable[HASH_BUCKET(*hash)];
--
2.5.0.windows.1
More information about the dev
mailing list