• A
    netlink: Rightsize IFLA_AF_SPEC size calculation · b1974ed0
    Arad, Ronen 提交于
    if_nlmsg_size() overestimates the minimum allocation size of netlink
    dump request (when called from rtnl_calcit()) or the size of the
    message (when called from rtnl_getlink()). This is because
    ext_filter_mask is not supported by rtnl_link_get_af_size() and
    rtnl_link_get_size().
    
    The over-estimation is significant when at least one netdev has many
    VLANs configured (8 bytes for each configured VLAN).
    
    This patch-set "rightsizes" the protocol specific attribute size
    calculation by propagating ext_filter_mask to rtnl_link_get_af_size()
    and adding this a argument to get_link_af_size op in rtnl_af_ops.
    
    Bridge module already used filtering aware sizing for notifications.
    br_get_link_af_size_filtered() is consistent with the modified
    get_link_af_size op so it replaces br_get_link_af_size() in br_af_ops.
    br_get_link_af_size() becomes unused and thus removed.
    Signed-off-by: NRonen Arad <ronen.arad@intel.com>
    Acked-by: NSridhar Samudrala <sridhar.samudrala@intel.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    b1974ed0
rtnetlink.c 83.7 KB