Message ID | 1467245333-8112-4-git-send-email-vsairam@vmware.com |
---|---|
State | Superseded |
Delegated to: | Guru Shetty |
Headers | show |
Acked-by: Nithin Raju <nithin@vmware.com> -----Original Message----- From: dev <dev-bounces@openvswitch.org> on behalf of Sairam Venugopal <vsairam@vmware.com> Date: Wednesday, June 29, 2016 at 5:08 PM To: "dev@openvswitch.org" <dev@openvswitch.org> Subject: [ovs-dev] [PATCH v4 03/11] datapath-windows: Add new NlFillOvsMsgForNfGenMsg method in Netlink.c >Create a new method to create and fill OvsMessage with NfGenMsg. This will >be used for sending Netfilter based Netlink messages. > >Signed-off-by: Sairam Venugopal <vsairam@vmware.com> >Acked-by: Paul-Daniel Boca <pboca@cloudbasesolutions.com> >Acked-by: Nithin Raju <nithin@vmware.com> >--- > datapath-windows/ovsext/Netlink/Netlink.c | 39 >+++++++++++++++++++++++++++++++ > datapath-windows/ovsext/Netlink/Netlink.h | 4 ++++ > 2 files changed, 43 insertions(+) > >diff --git a/datapath-windows/ovsext/Netlink/Netlink.c >b/datapath-windows/ovsext/Netlink/Netlink.c >index ccf9ec1..2432205 100644 >--- a/datapath-windows/ovsext/Netlink/Netlink.c >+++ b/datapath-windows/ovsext/Netlink/Netlink.c >@@ -73,6 +73,45 @@ NlFillOvsMsg(PNL_BUFFER nlBuf, UINT16 nlmsgType, > > /* > * >-------------------------------------------------------------------------- >- >+ * Prepare netlink message headers. This API adds >+ * NL_MSG_HDR + GENL_HDR + OVS_HDR to the tail of input NLBuf. >+ * Attributes should be added by caller. >+ * >-------------------------------------------------------------------------- >- >+ */ >+BOOLEAN >+NlFillOvsMsgForNfGenMsg(PNL_BUFFER nlBuf, UINT16 nlmsgType, >+ UINT16 nlmsgFlags, UINT32 nlmsgSeq, >+ UINT32 nlmsgPid, UINT8 nfgenFamily, >+ UINT8 nfGenVersion, UINT32 dpNo) >+{ >+ BOOLEAN writeOk; >+ OVS_MESSAGE msgOut; >+ UINT32 offset = NlBufSize(nlBuf); >+ >+ /* To keep compiler happy for release build. */ >+ UNREFERENCED_PARAMETER(offset); >+ ASSERT(NlBufAt(nlBuf, offset, 0) != 0); >+ >+ msgOut.nlMsg.nlmsgType = nlmsgType; >+ msgOut.nlMsg.nlmsgFlags = nlmsgFlags; >+ msgOut.nlMsg.nlmsgSeq = nlmsgSeq; >+ msgOut.nlMsg.nlmsgPid = nlmsgPid; >+ msgOut.nlMsg.nlmsgLen = sizeof(struct _OVS_MESSAGE); >+ >+ msgOut.nfGenMsg.nfgenFamily = nfgenFamily; >+ msgOut.nfGenMsg.version = nfGenVersion; >+ msgOut.nfGenMsg.resId = 0; >+ >+ msgOut.ovsHdr.dp_ifindex = dpNo; >+ >+ writeOk = NlMsgPutTail(nlBuf, (PCHAR)(&msgOut), >+ sizeof (struct _OVS_MESSAGE)); >+ >+ return writeOk; >+} >+ >+/* >+ * >-------------------------------------------------------------------------- >- > * Prepare NL_MSG_HDR only. This API appends a NL_MSG_HDR to the tail of > * input NlBuf. > * >-------------------------------------------------------------------------- >- >diff --git a/datapath-windows/ovsext/Netlink/Netlink.h >b/datapath-windows/ovsext/Netlink/Netlink.h >index 5261b9e..363f575 100644 >--- a/datapath-windows/ovsext/Netlink/Netlink.h >+++ b/datapath-windows/ovsext/Netlink/Netlink.h >@@ -95,6 +95,10 @@ BOOLEAN NlFillOvsMsg(PNL_BUFFER nlBuf, > UINT16 nlmsgType, UINT16 nlmsgFlags, > UINT32 nlmsgSeq, UINT32 nlmsgPid, > UINT8 genlCmd, UINT8 genlVer, UINT32 dpNo); >+BOOLEAN NlFillOvsMsgForNfGenMsg(PNL_BUFFER nlBuf, UINT16 nlmsgType, >+ UINT16 nlmsgFlags, UINT32 nlmsgSeq, >+ UINT32 nlmsgPid, UINT8 nfgenFamily, >+ UINT8 nfGenVersion, UINT32 dpNo); > BOOLEAN NlFillNlHdr(PNL_BUFFER nlBuf, > UINT16 nlmsgType, UINT16 nlmsgFlags, > UINT32 nlmsgSeq, UINT32 nlmsgPid); >-- >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=OQEY2-mikNlKNEBo4-B3kT02Dh1muQ >pIycaH5QArnkU&s=yZkZ3-o8MzkiIyTxPqi7fgU0g6kVaFy1OoRvTfWmCgc&e=
diff --git a/datapath-windows/ovsext/Netlink/Netlink.c b/datapath-windows/ovsext/Netlink/Netlink.c index ccf9ec1..2432205 100644 --- a/datapath-windows/ovsext/Netlink/Netlink.c +++ b/datapath-windows/ovsext/Netlink/Netlink.c @@ -73,6 +73,45 @@ NlFillOvsMsg(PNL_BUFFER nlBuf, UINT16 nlmsgType, /* * --------------------------------------------------------------------------- + * Prepare netlink message headers. This API adds + * NL_MSG_HDR + GENL_HDR + OVS_HDR to the tail of input NLBuf. + * Attributes should be added by caller. + * --------------------------------------------------------------------------- + */ +BOOLEAN +NlFillOvsMsgForNfGenMsg(PNL_BUFFER nlBuf, UINT16 nlmsgType, + UINT16 nlmsgFlags, UINT32 nlmsgSeq, + UINT32 nlmsgPid, UINT8 nfgenFamily, + UINT8 nfGenVersion, UINT32 dpNo) +{ + BOOLEAN writeOk; + OVS_MESSAGE msgOut; + UINT32 offset = NlBufSize(nlBuf); + + /* To keep compiler happy for release build. */ + UNREFERENCED_PARAMETER(offset); + ASSERT(NlBufAt(nlBuf, offset, 0) != 0); + + msgOut.nlMsg.nlmsgType = nlmsgType; + msgOut.nlMsg.nlmsgFlags = nlmsgFlags; + msgOut.nlMsg.nlmsgSeq = nlmsgSeq; + msgOut.nlMsg.nlmsgPid = nlmsgPid; + msgOut.nlMsg.nlmsgLen = sizeof(struct _OVS_MESSAGE); + + msgOut.nfGenMsg.nfgenFamily = nfgenFamily; + msgOut.nfGenMsg.version = nfGenVersion; + msgOut.nfGenMsg.resId = 0; + + msgOut.ovsHdr.dp_ifindex = dpNo; + + writeOk = NlMsgPutTail(nlBuf, (PCHAR)(&msgOut), + sizeof (struct _OVS_MESSAGE)); + + return writeOk; +} + +/* + * --------------------------------------------------------------------------- * Prepare NL_MSG_HDR only. This API appends a NL_MSG_HDR to the tail of * input NlBuf. * --------------------------------------------------------------------------- diff --git a/datapath-windows/ovsext/Netlink/Netlink.h b/datapath-windows/ovsext/Netlink/Netlink.h index 5261b9e..363f575 100644 --- a/datapath-windows/ovsext/Netlink/Netlink.h +++ b/datapath-windows/ovsext/Netlink/Netlink.h @@ -95,6 +95,10 @@ BOOLEAN NlFillOvsMsg(PNL_BUFFER nlBuf, UINT16 nlmsgType, UINT16 nlmsgFlags, UINT32 nlmsgSeq, UINT32 nlmsgPid, UINT8 genlCmd, UINT8 genlVer, UINT32 dpNo); +BOOLEAN NlFillOvsMsgForNfGenMsg(PNL_BUFFER nlBuf, UINT16 nlmsgType, + UINT16 nlmsgFlags, UINT32 nlmsgSeq, + UINT32 nlmsgPid, UINT8 nfgenFamily, + UINT8 nfGenVersion, UINT32 dpNo); BOOLEAN NlFillNlHdr(PNL_BUFFER nlBuf, UINT16 nlmsgType, UINT16 nlmsgFlags, UINT32 nlmsgSeq, UINT32 nlmsgPid);