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

2014-09-25 Thread Samuel Ghinet
Oh, now I see, flow flush is handled :)


Date: Wed, 24 Sep 2014 00:15:44 -0700
From: Ankur Sharma ankursha...@vmware.com
To: dev@openvswitch.org
Subject: [ovs-dev] [PATCH v1 10/10] datapath-windows/Flow.c: DEL_FLOWS
command handler.
Message-ID:
1411542944-19374-10-git-send-email-ankursha...@vmware.com

Added changes to handle DEL_FLOWS (FLUSH) scenario.
---
 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 b95f69b..0b4a7fa 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
@@ -252,6 +253,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))
@@ -1441,19 +1449,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


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

2014-09-24 Thread Ankur Sharma
Added changes to handle DEL_FLOWS (FLUSH) scenario.
---
 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 b95f69b..0b4a7fa 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
@@ -252,6 +253,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))
@@ -1441,19 +1449,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 v1 10/10] datapath-windows/Flow.c: DEL_FLOWS command handler.

2014-09-24 Thread Alin Serdean
Acked-by: Alin Gabriel Serdean aserd...@cloudbasesolutions.com




-Mesaj original-
De la: dev [mailto:dev-boun...@openvswitch.org] În numele Ankur Sharma
Trimis: Wednesday, September 24, 2014 10:16 AM
Către: dev@openvswitch.org
Subiect: [ovs-dev] [PATCH v1 10/10] datapath-windows/Flow.c: DEL_FLOWS command 
handler.

Added changes to handle DEL_FLOWS (FLUSH) scenario.
---
 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 b95f69b..0b4a7fa 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
@@ -252,6 +253,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))
@@ -1441,19 +1449,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
___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev


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

2014-09-24 Thread Alin Serdean
Just forgot the following:

$ git apply 
ovs-dev-v1-10-10-datapath-windows-Flow.c-DEL_FLOWS-command-handler..patch
ovs-dev-v1-10-10-datapath-windows-Flow.c-DEL_FLOWS-command-handler..patch:20: 
trailing whitespace.
if ((genlMsgHdr-cmd == OVS_FLOW_CMD_DEL) 
warning: 1 line adds whitespace errors.

Alin.

-Mesaj original-
De la: dev [mailto:dev-boun...@openvswitch.org] În numele Ankur Sharma
Trimis: Wednesday, September 24, 2014 10:16 AM
Către: dev@openvswitch.org
Subiect: [ovs-dev] [PATCH v1 10/10] datapath-windows/Flow.c: DEL_FLOWS command 
handler.

Added changes to handle DEL_FLOWS (FLUSH) scenario.
---
 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 b95f69b..0b4a7fa 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
@@ -252,6 +253,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))
@@ -1441,19 +1449,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
___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev