From patchwork Fri Jun 24 19:03:26 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sairam Venugopal X-Patchwork-Id: 640389 X-Patchwork-Delegate: guru@ovn.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from archives.nicira.com (archives.nicira.com [96.126.127.54]) by ozlabs.org (Postfix) with ESMTP id 3rbnnt5pskz9t0J for ; Sat, 25 Jun 2016 05:04:50 +1000 (AEST) Received: from archives.nicira.com (localhost [127.0.0.1]) by archives.nicira.com (Postfix) with ESMTP id 4EECC10CF8; Fri, 24 Jun 2016 12:03:51 -0700 (PDT) X-Original-To: dev@openvswitch.org Delivered-To: dev@openvswitch.org Received: from mx1e4.cudamail.com (mx1.cudamail.com [69.90.118.67]) by archives.nicira.com (Postfix) with ESMTPS id E90C110C65 for ; Fri, 24 Jun 2016 12:03:45 -0700 (PDT) Received: from bar5.cudamail.com (unknown [192.168.21.12]) by mx1e4.cudamail.com (Postfix) with ESMTPS id 78F5C1E0650 for ; Fri, 24 Jun 2016 13:03:45 -0600 (MDT) X-ASG-Debug-ID: 1466795024-09eadd24bc21eab0001-byXFYA Received: from mx3-pf1.cudamail.com ([192.168.14.2]) by bar5.cudamail.com with ESMTP id 36MMp3FoA8xiCsZ8 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 24 Jun 2016 13:03:45 -0600 (MDT) X-Barracuda-Envelope-From: vsairam@vmware.com X-Barracuda-RBL-Trusted-Forwarder: 192.168.14.2 Received: from unknown (HELO EX13-EDG-OU-001.vmware.com) (208.91.0.189) by mx3-pf1.cudamail.com with ESMTPS (AES256-SHA encrypted); 24 Jun 2016 19:03:44 -0000 Received-SPF: unknown (mx3-pf1.cudamail.com: domain at _spf.vmwa does not designate permitted sender hosts) Received: from sc9-mailhost3.vmware.com (10.113.161.73) by EX13-EDG-OU-001.vmware.com (10.113.208.155) with Microsoft SMTP Server id 15.0.1156.6; Fri, 24 Jun 2016 12:03:41 -0700 Received: from localhost.localdomain (htb-1s-eng-dhcp151.eng.vmware.com [10.33.78.151]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id 64C28405AB; Fri, 24 Jun 2016 12:03:43 -0700 (PDT) X-CudaMail-Envelope-Sender: vsairam@vmware.com From: Sairam Venugopal To: X-CudaMail-Whitelist-To: dev@openvswitch.org X-CudaMail-MID: CM-V1-623036108 X-CudaMail-DTE: 062416 X-CudaMail-Originating-IP: 208.91.0.189 Date: Fri, 24 Jun 2016 12:03:26 -0700 X-ASG-Orig-Subj: [##CM-V1-623036108##][PATCH v3 6/9] datapath-windows: Add new NlFillOvsMsgForNfGenMsg method in Netlink.c Message-ID: <1466795009-5328-7-git-send-email-vsairam@vmware.com> X-Mailer: git-send-email 2.5.0.windows.1 In-Reply-To: <1466795009-5328-1-git-send-email-vsairam@vmware.com> References: <1466795009-5328-1-git-send-email-vsairam@vmware.com> MIME-Version: 1.0 Received-SPF: None (EX13-EDG-OU-001.vmware.com: vsairam@vmware.com does not designate permitted sender hosts) X-Barracuda-Connect: UNKNOWN[192.168.14.2] X-Barracuda-Start-Time: 1466795025 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://web.cudamail.com:443/cgi-mod/mark.cgi X-ASG-Whitelist: Header =?UTF-8?B?eFwtY3VkYW1haWxcLXdoaXRlbGlzdFwtdG8=?= X-Virus-Scanned: by bsmtpd at cudamail.com X-Barracuda-BRTS-Status: 1 Subject: [ovs-dev] [PATCH v3 6/9] datapath-windows: Add new NlFillOvsMsgForNfGenMsg method in Netlink.c X-BeenThere: dev@openvswitch.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@openvswitch.org Sender: "dev" 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 Acked-by: Paul-Daniel Boca Acked-by: Nithin Raju --- 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 a25a22a..6717dd1 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 cce7ec3..9d31641 100644 --- a/datapath-windows/ovsext/Netlink/Netlink.h +++ b/datapath-windows/ovsext/Netlink/Netlink.h @@ -94,6 +94,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);