If we are trying to insert a flow while there's already a key with the
same flow, return success instead of failure. It can be argued that we
should probably return a transactional error EEXIST, but we'll handle
this in a subsequent commit. I've added a comment to address this later.

Signed-off-by: Nithin Raju <nit...@vmware.com>
---
 datapath-windows/ovsext/Flow.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c
index bc9ef87..14c3072 100644
--- a/datapath-windows/ovsext/Flow.c
+++ b/datapath-windows/ovsext/Flow.c
@@ -2255,7 +2255,9 @@ HandleFlowPut(OvsFlowPut *put,
                     RemoveFlow(datapath, &KernelFlow);
                 }
             } else {
-                return STATUS_UNSUCCESSFUL;
+                /* Return success if an identical flow already exists. */
+                /* XXX: should we return EEXIST in a netlink error? */
+                return STATUS_SUCCESS;
             }
         }
     }
-- 
1.7.4.1

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

Reply via email to