Acked-by: Nithin Raju <nit...@vmware.com> -----Original Message----- From: dev <dev-boun...@openvswitch.org> on behalf of Sairam Venugopal <vsai...@vmware.com> Date: Wednesday, June 29, 2016 at 5:08 PM To: "dev@openvswitch.org" <dev@openvswitch.org> Subject: [ovs-dev] [PATCH v4 02/11] datapath-windows: Add support for Netfilter netlink message
>Introduce NF_GEN_MSG_HDR similar to GENL_MSG_HDR that will be used for >communicating via netfilter-netlink channel. This will be used by >userspace to retrieve and modify Conntrack data in Windows. > >Signed-off-by: Sairam Venugopal <vsai...@vmware.com> >Acked-by: Paul-Daniel Boca <pb...@cloudbasesolutions.com> >Acked-by: Nithin Raju <nit...@vmware.com> >--- > datapath-windows/ovsext/Netlink/Netlink.c | 11 +++++++++++ > datapath-windows/ovsext/Netlink/Netlink.h | 9 +++++++-- > datapath-windows/ovsext/Netlink/NetlinkProto.h | 9 +++++++++ > 3 files changed, 27 insertions(+), 2 deletions(-) > >diff --git a/datapath-windows/ovsext/Netlink/Netlink.c >b/datapath-windows/ovsext/Netlink/Netlink.c >index 1eec320..ccf9ec1 100644 >--- a/datapath-windows/ovsext/Netlink/Netlink.c >+++ b/datapath-windows/ovsext/Netlink/Netlink.c >@@ -672,6 +672,17 @@ NlMsgAttrsLen(const PNL_MSG_HDR nlh) > return NlHdrPayloadLen(nlh) - GENL_HDRLEN - OVS_HDRLEN; > } > >+/* >+ * >-------------------------------------------------------------------------- >- >+ * Returns size of to nfnlmsg attributes. >+ * >-------------------------------------------------------------------------- >- >+ */ >+UINT32 >+NlNfMsgAttrsLen(const PNL_MSG_HDR nlh) >+{ >+ return NlHdrPayloadLen(nlh) - NF_GEN_MSG_HDRLEN - OVS_HDRLEN; >+} >+ > /* Netlink message parse. */ > > /* >diff --git a/datapath-windows/ovsext/Netlink/Netlink.h >b/datapath-windows/ovsext/Netlink/Netlink.h >index b1b3bed..5261b9e 100644 >--- a/datapath-windows/ovsext/Netlink/Netlink.h >+++ b/datapath-windows/ovsext/Netlink/Netlink.h >@@ -27,10 +27,14 @@ > */ > typedef struct _OVS_MESSAGE { > NL_MSG_HDR nlMsg; >- GENL_MSG_HDR genlMsg; >+ union { >+ GENL_MSG_HDR genlMsg; >+ NF_GEN_MSG_HDR nfGenMsg; >+ }; > OVS_HDR ovsHdr; > /* Variable length nl_attrs follow. */ > } OVS_MESSAGE, *POVS_MESSAGE; >+BUILD_ASSERT_DECL(sizeof(GENL_MSG_HDR) == sizeof(NF_GEN_MSG_HDR)); > > /* > * Structure of an error message sent as a reply from kernel. >@@ -107,6 +111,7 @@ PCHAR NlHdrPayload(const PNL_MSG_HDR nlh); > UINT32 NlHdrPayloadLen(const PNL_MSG_HDR nlh); > PNL_ATTR NlMsgAttrs(const PNL_MSG_HDR nlh); > UINT32 NlMsgAttrsLen(const PNL_MSG_HDR nlh); >+UINT32 NlNfMsgAttrsLen(const PNL_MSG_HDR nlh); > > /* Netlink message parse */ > PNL_MSG_HDR NlMsgNext(const PNL_MSG_HDR nlh); >@@ -135,7 +140,7 @@ const PNL_ATTR NlAttrFindNested(const PNL_ATTR nla, > UINT16 type); > BOOLEAN NlAttrParse(const PNL_MSG_HDR nlMsg, UINT32 attrOffset, > UINT32 totalAttrLen, const NL_POLICY policy[], >- const UINT32 numPolicy, PNL_ATTR attrs[], >+ const UINT32 numPolicy, PNL_ATTR attrs[], > UINT32 numAttrs); > BOOLEAN NlAttrParseNested(const PNL_MSG_HDR nlMsg, UINT32 attrOffset, > UINT32 totalAttrLen, const NL_POLICY policy[], >diff --git a/datapath-windows/ovsext/Netlink/NetlinkProto.h >b/datapath-windows/ovsext/Netlink/NetlinkProto.h >index f2e9aee..beb14d5 100644 >--- a/datapath-windows/ovsext/Netlink/NetlinkProto.h >+++ b/datapath-windows/ovsext/Netlink/NetlinkProto.h >@@ -98,6 +98,14 @@ typedef struct _GENL_MSG_HDR { > } GENL_MSG_HDR, *PGENL_MSG_HDR; > BUILD_ASSERT_DECL(sizeof(GENL_MSG_HDR) == 4); > >+/* Netfilter Generic Message */ >+typedef struct _NF_GEN_MSG_HDR { >+ UINT8 nfgenFamily; /* AF_xxx */ >+ UINT8 version; /* nfnetlink version */ >+ UINT16 resId; /* resource id */ >+} NF_GEN_MSG_HDR, *PNF_GEN_MSG_HDR; >+BUILD_ASSERT_DECL(sizeof(NF_GEN_MSG_HDR) == 4); >+ > /* Netlink attributes */ > typedef struct _NL_ATTR { > UINT16 nlaLen; >@@ -113,6 +121,7 @@ BUILD_ASSERT_DECL(sizeof(NL_ATTR) == 4); > > #define NLMSG_HDRLEN ((INT) NLMSG_ALIGN(sizeof(NL_MSG_HDR))) > #define GENL_HDRLEN NLMSG_ALIGN(sizeof(GENL_MSG_HDR)) >+#define NF_GEN_MSG_HDRLEN NLMSG_ALIGN(sizeof(NF_GEN_MSG_HDR)) > #define OVS_HDRLEN NLMSG_ALIGN(sizeof(OVS_HDR)) > #define NLA_HDRLEN ((INT) NLA_ALIGN(sizeof(NL_ATTR))) > >-- >2.5.0.windows.1 > >_______________________________________________ >dev mailing list >dev@openvswitch.org >https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailma >n_listinfo_dev&d=CwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=pN >HQcdr7B40b4h6Yb7FIedI1dnBsxdDuTLBYD3JqV80&m=ZzkqjQjg3Q4DbWawhwkkaFTLf9amIl >DsFBztOwnvRao&s=_u5VachrMIJPE-v7lSRJ15LmzK30ZAk4Rmmd9qLW2MI&e= _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev