Added an API to retrieve the attribute length.
Added 2 more API for BE16 and BE8 attribute parsing.
Fixed a trailing whitespace issue.
Signed-off-by: Ankur Sharma ankursha...@vmware.com
Acked-by: Alin Gabriel Serdean aserd...@cloudbasesolutions.com
Acked-by: Eitan Eliahu elia...@vmware.com
---
datapath-windows/ovsext/Netlink/Netlink.c | 28 +++-
datapath-windows/ovsext/Netlink/Netlink.h | 13 -
datapath-windows/ovsext/Types.h | 1 +
3 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/datapath-windows/ovsext/Netlink/Netlink.c
b/datapath-windows/ovsext/Netlink/Netlink.c
index a2829a5..8f3b7ae 100644
--- a/datapath-windows/ovsext/Netlink/Netlink.c
+++ b/datapath-windows/ovsext/Netlink/Netlink.c
@@ -585,7 +585,7 @@ NlMsgAttrs(const PNL_MSG_HDR nlh)
* Returns size of to nlmsg attributes.
* ---
*/
-INT
+UINT32
NlMsgAttrLen(const PNL_MSG_HDR nlh)
{
return NlMsgPayloadLen(nlh) - GENL_HDRLEN - OVS_HDRLEN;
@@ -788,6 +788,32 @@ NlAttrGetBe32(const PNL_ATTR nla)
/*
* ---
+ * Returns the 16-bit network byte order value in 'nla''s payload.
+ *
+ * Asserts that 'nla''s payload is at least 2 bytes long.
+ * ---
+ */
+BE16
+NlAttrGetBe16(const PNL_ATTR nla)
+{
+return NL_ATTR_GET_AS(nla, BE16);
+}
+
+/*
+ * ---
+ * Returns the 8-bit network byte order value in 'nla''s payload.
+ *
+ * Asserts that 'nla''s payload is at least 1 byte long.
+ * ---
+ */
+BE8
+NlAttrGetBe8(const PNL_ATTR nla)
+{
+return NL_ATTR_GET_AS(nla, BE8);
+}
+
+/*
+ * ---
* Returns the 8-bit value in 'nla''s payload.
* ---
*/
diff --git a/datapath-windows/ovsext/Netlink/Netlink.h
b/datapath-windows/ovsext/Netlink/Netlink.h
index 774faf4..6494a59 100644
--- a/datapath-windows/ovsext/Netlink/Netlink.h
+++ b/datapath-windows/ovsext/Netlink/Netlink.h
@@ -90,7 +90,7 @@ UINT32 NlMsgSize(const PNL_MSG_HDR nlh);
PCHAR NlMsgPayload(const PNL_MSG_HDR nlh);
UINT32 NlMsgPayloadLen(const PNL_MSG_HDR nlh);
PNL_ATTR NlMsgAttrs(const PNL_MSG_HDR nlh);
-INT NlMsgAttrLen(const PNL_MSG_HDR nlh);
+UINT32 NlMsgAttrLen(const PNL_MSG_HDR nlh);
/* Netlink message parse */
PNL_MSG_HDR NlMsgNext(const PNL_MSG_HDR nlh);
@@ -122,6 +122,17 @@ BOOLEAN NlAttrParse(const PNL_MSG_HDR nlMsg, UINT32
attrOffset,
BOOLEAN NlParseNested(const PNL_ATTR, const NL_POLICY policy[],
PNL_ATTR attrs[], UINT32 n_attrs);
+/*
+ * --
+ * Returns the length of attribute.
+ * --
+ */
+static __inline UINT16
+NlAttrLen(const PNL_ATTR nla)
+{
+return nla-nlaLen;
+}
+
/* Netlink attribute validation */
BOOLEAN NlAttrValidate(const PNL_ATTR, const PNL_POLICY);
diff --git a/datapath-windows/ovsext/Types.h b/datapath-windows/ovsext/Types.h
index b2ef48c..5d2744b 100644
--- a/datapath-windows/ovsext/Types.h
+++ b/datapath-windows/ovsext/Types.h
@@ -31,6 +31,7 @@ typedef uint8 __u8;
/* Defines the userspace specific data types for file
* included within kernel only. */
+typedef UINT8 BE8;
typedef UINT16 BE16;
typedef UINT32 BE32;
typedef UINT64 BE64;
--
1.9.1
___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev