[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2ba8e4fd-7dd1-0a6d-fc83-be8595cf7bef@blackwall.org>
Date: Tue, 17 Oct 2023 12:05:37 +0300
From: Nikolay Aleksandrov <razor@...ckwall.org>
To: Ido Schimmel <idosch@...dia.com>, netdev@...r.kernel.org,
bridge@...ts.linux-foundation.org
Cc: davem@...emloft.net, kuba@...nel.org, edumazet@...gle.com,
pabeni@...hat.com, roopa@...dia.com, mlxsw@...dia.com
Subject: Re: [PATCH net-next 03/13] bridge: mcast: Factor out a helper for PG
entry size calculation
On 10/16/23 16:12, Ido Schimmel wrote:
> Currently, netlink notifications are sent for individual port group
> entries and not for the entire MDB entry itself.
>
> Subsequent patches are going to add MDB get support which will require
> the bridge driver to reply with an entire MDB entry.
>
> Therefore, as a preparation, factor out an helper to calculate the size
> of an individual port group entry. When determining the size of the
> reply this helper will be invoked for each port group entry in the MDB
> entry.
>
> No functional changes intended.
>
> Signed-off-by: Ido Schimmel <idosch@...dia.com>
> ---
> net/bridge/br_mdb.c | 20 +++++++++++++-------
> 1 file changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c
> index 08de94bffc12..42983f6a0abd 100644
> --- a/net/bridge/br_mdb.c
> +++ b/net/bridge/br_mdb.c
> @@ -450,18 +450,13 @@ static int nlmsg_populate_mdb_fill(struct sk_buff *skb,
> return -EMSGSIZE;
> }
>
> -static size_t rtnl_mdb_nlmsg_size(struct net_bridge_port_group *pg)
> +static size_t rtnl_mdb_nlmsg_pg_size(const struct net_bridge_port_group *pg)
> {
> struct net_bridge_group_src *ent;
> size_t nlmsg_size, addr_size = 0;
>
> - nlmsg_size = NLMSG_ALIGN(sizeof(struct br_port_msg)) +
> - /* MDBA_MDB */
> - nla_total_size(0) +
> - /* MDBA_MDB_ENTRY */
> - nla_total_size(0) +
> /* MDBA_MDB_ENTRY_INFO */
> - nla_total_size(sizeof(struct br_mdb_entry)) +
> + nlmsg_size = nla_total_size(sizeof(struct br_mdb_entry)) +
> /* MDBA_MDB_EATTR_TIMER */
> nla_total_size(sizeof(u32));
>
> @@ -511,6 +506,17 @@ static size_t rtnl_mdb_nlmsg_size(struct net_bridge_port_group *pg)
> return nlmsg_size;
> }
>
> +static size_t rtnl_mdb_nlmsg_size(const struct net_bridge_port_group *pg)
> +{
> + return NLMSG_ALIGN(sizeof(struct br_port_msg)) +
> + /* MDBA_MDB */
> + nla_total_size(0) +
> + /* MDBA_MDB_ENTRY */
> + nla_total_size(0) +
> + /* Port group entry */
> + rtnl_mdb_nlmsg_pg_size(pg);
> +}
> +
> void br_mdb_notify(struct net_device *dev,
> struct net_bridge_mdb_entry *mp,
> struct net_bridge_port_group *pg,
Acked-by: Nikolay Aleksandrov <razor@...ckwall.org>
Powered by blists - more mailing lists