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 http://openvswitch.org/mailman/listinfo/dev