From patchwork Wed Oct 14 05:58:31 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Arad, Ronen" X-Patchwork-Id: 530012 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 96ACC14027C for ; Wed, 14 Oct 2015 16:59:26 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752100AbbJNF7W (ORCPT ); Wed, 14 Oct 2015 01:59:22 -0400 Received: from mga03.intel.com ([134.134.136.65]:30704 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750960AbbJNF7W (ORCPT ); Wed, 14 Oct 2015 01:59:22 -0400 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP; 13 Oct 2015 22:59:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,681,1437462000"; d="scan'208";a="810545642" Received: from kraabe-mobl1.amr.corp.intel.com (HELO onpss-fed21-vm.localdomain) ([10.252.196.113]) by fmsmga001.fm.intel.com with ESMTP; 13 Oct 2015 22:59:21 -0700 From: Ronen Arad To: netdev@vger.kernel.org Cc: Ronen Arad Subject: [PATCH net-next 1/4] rtnetlink: Add get_link_af_size_filtered to rtnl_af_ops Date: Tue, 13 Oct 2015 22:58:31 -0700 Message-Id: <1444802314-28830-2-git-send-email-ronen.arad@intel.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1444802314-28830-1-git-send-email-ronen.arad@intel.com> References: <1444802314-28830-1-git-send-email-ronen.arad@intel.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org get_link_af_size_filtered() - a filtering-mask aware alternative function is added to struct rtnl_af_ops in order to allow for "rightsizing" the IFLA_AF_SPEC calculation in if_nlmsg_size(). This significantly reduces the message size when at least one netdev has large number of VLANs. Signed-off-by: Ronen Arad --- include/net/rtnetlink.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h index aff6ceb..96df9bb 100644 --- a/include/net/rtnetlink.h +++ b/include/net/rtnetlink.h @@ -130,6 +130,8 @@ struct rtnl_af_ops { const struct nlattr *attr); int (*set_link_af)(struct net_device *dev, const struct nlattr *attr); + size_t (*get_link_af_size_filtered)(const struct net_device *dev, + u32 ext_filter_mask); }; void __rtnl_af_unregister(struct rtnl_af_ops *ops);