[ovs-dev] [PATCH v2 10/10] datapath-windows/Flow.c: DEL_FLOWS command handler.

2014-09-25 Thread Ankur Sharma
Added changes to handle DEL_FLOWS (FLUSH) scenario.

Signed-off-by: Ankur Sharma ankursha...@vmware.com
Acked-by: Alin Gabriel Serdean aserd...@cloudbasesolutions.com
Acked-by: Eitan Eliahu elia...@vmware.com
---
 datapath-windows/ovsext/Flow.c | 19 ++-
 datapath-windows/ovsext/Flow.h |  2 +-
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c
index 82c1c93..e374e3f 100644
--- a/datapath-windows/ovsext/Flow.c
+++ b/datapath-windows/ovsext/Flow.c
@@ -209,7 +209,8 @@ static const NL_POLICY nlFlowActionPolicy[] = {
 /*
  *
  *  OvsFlowNlNewCmdHandler --
- *Handler for OVS_FLOW_CMD_NEW command.
+ *Handler for OVS_FLOW_CMD_NEW/SET/DEL command.
+ *It also handles FLUSH case (DEL w/o any key in input)
  *
  */
 NTSTATUS
@@ -246,6 +247,13 @@ OvsFlowNlNewCmdHandler(POVS_USER_PARAMS_CONTEXT 
usrParamsCtx,
 goto done;
 }
 
+/* FLOW_DEL command w/o any key input is a flush case. */
+if ((genlMsgHdr-cmd == OVS_FLOW_CMD_DEL) 
+(!(nlAttrs[OVS_FLOW_ATTR_KEY]))) {
+rc = OvsFlushFlowIoctl(ovsHdr-dp_ifindex);
+goto done;
+}
+
 if ((_OvsFlowMapNlToFlowPut(msgIn, nlAttrs[OVS_FLOW_ATTR_KEY],
  nlAttrs[OVS_FLOW_ATTR_ACTIONS], nlAttrs[OVS_FLOW_ATTR_CLEAR],
  mappedFlow))
@@ -1432,19 +1440,12 @@ unlock:
 }
 
 NTSTATUS
-OvsFlushFlowIoctl(PVOID inputBuffer,
-  UINT32 inputLength)
+OvsFlushFlowIoctl(UINT32 dpNo)
 {
 NTSTATUS status = STATUS_SUCCESS;
 OVS_DATAPATH *datapath = NULL;
-UINT32 dpNo;
 LOCK_STATE_EX dpLockState;
 
-if (inputLength != sizeof(UINT32) || inputBuffer == NULL) {
-return STATUS_INFO_LENGTH_MISMATCH;
-}
-
-dpNo = *(UINT32 *)inputBuffer;
 NdisAcquireSpinLock(gOvsCtrlLock);
 if (gOvsSwitchContext == NULL ||
 gOvsSwitchContext-dpNo != dpNo) {
diff --git a/datapath-windows/ovsext/Flow.h b/datapath-windows/ovsext/Flow.h
index e62ba40..10ef62b 100644
--- a/datapath-windows/ovsext/Flow.h
+++ b/datapath-windows/ovsext/Flow.h
@@ -68,7 +68,7 @@ NTSTATUS OvsPutFlowIoctl(PVOID inputBuffer, UINT32 
inputLength,
 NTSTATUS OvsGetFlowIoctl(PVOID inputBuffer, UINT32 inputLength,
  PVOID outputBuffer, UINT32 outputLength,
  UINT32 *replyLen);
-NTSTATUS OvsFlushFlowIoctl(PVOID inputBuffer, UINT32 inputLength);
+NTSTATUS OvsFlushFlowIoctl(UINT32 dpNo);
 
 NTSTATUS OvsFlowNlNewCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
 UINT32 *replyLen);
-- 
1.9.1

___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev


Re: [ovs-dev] [PATCH v2 10/10] datapath-windows/Flow.c: DEL_FLOWS command handler.

2014-09-25 Thread Nithin Raju
On Sep 24, 2014, at 11:58 PM, Ankur Sharma ankursha...@vmware.com wrote:

 Added changes to handle DEL_FLOWS (FLUSH) scenario.
 
 Signed-off-by: Ankur Sharma ankursha...@vmware.com
 Acked-by: Alin Gabriel Serdean aserd...@cloudbasesolutions.com
 Acked-by: Eitan Eliahu elia...@vmware.com

LG. Thanks for the feature.

Acked-by: Nithin Raju nit...@vmware.com

Thanks,
-- Nithin
___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev