Acked-by: Ankur Sharma <ankursha...@vmware.com>
________________________________________
From: dev <dev-boun...@openvswitch.org> on behalf of Nithin Raju 
<nit...@vmware.com>
Sent: Tuesday, November 11, 2014 7:04 PM
To: dev@openvswitch.org
Subject: [ovs-dev] [PATCH 6/7] datapath-windows: Change return type of  
OvsInitVxlanTunnel()

OvsInitVxlanTunnel() need not return a NL_ERROR. In this patch, we
change it to NTSTATUS, and also update the mapping function that maps a
NTSTATUS to NL_ERROR.

Signed-off-by: Nithin Raju <nit...@vmware.com>
---
 datapath-windows/ovsext/Datapath.c             |    3 ++-
 datapath-windows/ovsext/Netlink/NetlinkError.h |    8 +++++++-
 datapath-windows/ovsext/Vxlan.c                |    6 +++---
 datapath-windows/ovsext/Vxlan.h                |    2 +-
 4 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/datapath-windows/ovsext/Datapath.c 
b/datapath-windows/ovsext/Datapath.c
index 54b9103..165f2e3 100644
--- a/datapath-windows/ovsext/Datapath.c
+++ b/datapath-windows/ovsext/Datapath.c
@@ -1827,7 +1827,8 @@ OvsNewVportCmdHandler(POVS_USER_PARAMS_CONTEXT 
usrParamsCtx,
         vportAllocated = TRUE;

         if (OvsIsTunnelVportType(portType)) {
-            nlError = OvsInitTunnelVport(vport, portType, VXLAN_UDP_PORT);
+            status = OvsInitTunnelVport(vport, portType, VXLAN_UDP_PORT);
+            nlError = NlMapStatusToNlErr(status);
         } else {
             OvsInitBridgeInternalVport(vport);
         }
diff --git a/datapath-windows/ovsext/Netlink/NetlinkError.h 
b/datapath-windows/ovsext/Netlink/NetlinkError.h
index 827fa8c..53c935f 100644
--- a/datapath-windows/ovsext/Netlink/NetlinkError.h
+++ b/datapath-windows/ovsext/Netlink/NetlinkError.h
@@ -202,13 +202,19 @@ typedef enum _NL_ERROR_
 static __inline
 NlMapStatusToNlErr(NTSTATUS status)
 {
-    NL_ERROR ret = NL_ERROR_SUCCESS;
+    NL_ERROR ret = NL_ERROR_INVAL;

     switch (status)
     {
     case STATUS_NOT_SUPPORTED:
       ret = NL_ERROR_NOTSUPP;
       break;
+    case STATUS_INSUFFICIENT_RESOURCES:
+      ret = NL_ERROR_NOMEM;
+      break;
+    case STATUS_SUCCESS:
+      ret = NL_ERROR_SUCCESS;
+      break;
     default:
       break;
     }
diff --git a/datapath-windows/ovsext/Vxlan.c b/datapath-windows/ovsext/Vxlan.c
index 0a68c9c..1ce5af2 100644
--- a/datapath-windows/ovsext/Vxlan.c
+++ b/datapath-windows/ovsext/Vxlan.c
@@ -53,7 +53,7 @@ extern POVS_SWITCH_CONTEXT gOvsSwitchContext;
  * udpDestPort: the vxlan is set as payload to a udp frame. If the destination
  * port of an udp frame is udpDestPort, we understand it to be vxlan.
  */
-NL_ERROR
+NTSTATUS
 OvsInitVxlanTunnel(POVS_VPORT_ENTRY vport,
                    UINT16 udpDestPort)
 {
@@ -61,7 +61,7 @@ OvsInitVxlanTunnel(POVS_VPORT_ENTRY vport,

     vxlanPort = OvsAllocateMemory(sizeof (*vxlanPort));
     if (vxlanPort == NULL) {
-        return NL_ERROR_NOMEM;
+        return STATUS_INSUFFICIENT_RESOURCES;
     }

     RtlZeroMemory(vxlanPort, sizeof(*vxlanPort));
@@ -74,7 +74,7 @@ OvsInitVxlanTunnel(POVS_VPORT_ENTRY vport,
     ASSERT(vxlanPort->dstPort == VXLAN_UDP_PORT);
     vport->priv = (PVOID)vxlanPort;

-    return NL_ERROR_SUCCESS;
+    return STATUS_SUCCESS;
 }


diff --git a/datapath-windows/ovsext/Vxlan.h b/datapath-windows/ovsext/Vxlan.h
index dab5d9b..d84796d 100644
--- a/datapath-windows/ovsext/Vxlan.h
+++ b/datapath-windows/ovsext/Vxlan.h
@@ -47,7 +47,7 @@ typedef struct VXLANHdr {
     UINT32   reserved2:8;
 } VXLANHdr;

-NL_ERROR OvsInitVxlanTunnel(POVS_VPORT_ENTRY vport,
+NTSTATUS OvsInitVxlanTunnel(POVS_VPORT_ENTRY vport,
                             UINT16 udpDestPort);

 VOID OvsCleanupVxlanTunnel(POVS_VPORT_ENTRY vport);
--
1.7.4.1

_______________________________________________
dev mailing list
dev@openvswitch.org
https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailman_listinfo_dev&d=AAIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=RDZsrBxhAiOewDSD-jiF-W03FqHevF2o7haW6eQzmtA&m=G3RSmo00ufM-Dau6jRXlM3UsjrL8-xFvRbJLyseDdVM&s=sAWG_RZpV8QcziTf37G9OXgFLLlTNeb_MqZGYkesVc4&e=
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to