lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ