[ovs-dev] [PATCH v3 2/5] datapath-windows: Added the API for getting unused space in nlbuf.

Alin Serdean aserdean at cloudbasesolutions.com
Mon Oct 6 12:01:56 UTC 2014


Acked-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>


-----Mesaj original-----
De la: dev [mailto:dev-bounces at openvswitch.org] În numele Ankur Sharma
Trimis: Saturday, October 4, 2014 1:54 AM
Către: dev at openvswitch.org
Subiect: [ovs-dev] [PATCH v3 2/5] datapath-windows: Added the API for getting unused space in nlbuf.

Also, the boundary check in NlBufAt was a little weird.
Fixed the same.

Signed-off-by: Ankur Sharma <ankursharma at vmware.com>
Acked-by: Nithin Raju <nithin at vmware.com>
---
 datapath-windows/ovsext/Datapath.c           |  3 +--
 datapath-windows/ovsext/Netlink/NetlinkBuf.c |  4 +++-  datapath-windows/ovsext/Netlink/NetlinkBuf.h | 14 ++++++++++++++
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/datapath-windows/ovsext/Datapath.c b/datapath-windows/ovsext/Datapath.c
index 44cdfc9..2d2468e 100644
--- a/datapath-windows/ovsext/Datapath.c
+++ b/datapath-windows/ovsext/Datapath.c
@@ -925,8 +925,7 @@ OvsDpFillInfo(POVS_SWITCH_CONTEXT ovsSwitchContext,
     OVS_DATAPATH *datapath = &ovsSwitchContext->datapath;
     PNL_MSG_HDR nlMsg;
 
-    /* XXX: Add API for nlBuf->bufRemLen. */
-    ASSERT(NlBufAt(nlBuf, 0, 0) != 0 && nlBuf->bufRemLen >= sizeof *msgIn);
+    ASSERT(NlBufAt(nlBuf, 0, 0) != 0 && NlBufRemLen(nlBuf) >= sizeof 
+ *msgIn);
 
     msgOutTmp.nlMsg.nlmsgType = OVS_WIN_NL_DATAPATH_FAMILY_ID;
     msgOutTmp.nlMsg.nlmsgFlags = 0;  /* XXX: ? */ diff --git a/datapath-windows/ovsext/Netlink/NetlinkBuf.c b/datapath-windows/ovsext/Netlink/NetlinkBuf.c
index 918bddd..0177e88 100644
--- a/datapath-windows/ovsext/Netlink/NetlinkBuf.c
+++ b/datapath-windows/ovsext/Netlink/NetlinkBuf.c
@@ -277,7 +277,8 @@ done:
  *
  *    Returns pointer to buffer at input offset.
  *    bufLen is used to verify that expected data length
- *    is within valid boundaries.
+ *    is within valid boundaries. Here by boundaries we mean
+ *    within head and tail.
  * --------------------------------------------------------------------------
  */
 PCHAR
@@ -291,6 +292,7 @@ NlBufAt(PNL_BUFFER nlBuf, UINT32 offset, UINT32 bufLen)
         goto done;
     }
 
+    /* Check if requested buffer is within head and tail */
     if ((offset + bufLen) > NL_BUF_USED_SPACE(nlBuf)) {
         goto done;
     }
diff --git a/datapath-windows/ovsext/Netlink/NetlinkBuf.h b/datapath-windows/ovsext/Netlink/NetlinkBuf.h
index b8f2aa0..c52b9cc 100644
--- a/datapath-windows/ovsext/Netlink/NetlinkBuf.h
+++ b/datapath-windows/ovsext/Netlink/NetlinkBuf.h
@@ -52,4 +52,18 @@ NlBufSize(PNL_BUFFER nlBuf)
     return (nlBuf->bufLen - nlBuf->bufRemLen);  }
 
+/*
+ * 
+-----------------------------------------------------------------------
+---
+ * NlBufRemLen --
+ *
+ *    Returns the unused size of buffer.
+ * 
+-----------------------------------------------------------------------
+---
+ */
+static __inline UINT32
+NlBufRemLen(PNL_BUFFER nlBuf)
+{
+    ASSERT(nlBuf);
+    return (nlBuf->bufRemLen);
+}
+
 #endif /* __NETLINK_BUF_H_ */
--
1.9.1

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



More information about the dev mailing list