From: Ido Schimmel <idosch@nvidia.com>
To: netdev@vger.kernel.org, bridge@lists.linux-foundation.org
Cc: mlxsw@nvidia.com, razor@blackwall.org,
Ido Schimmel <idosch@nvidia.com>,
edumazet@google.com, roopa@nvidia.com, kuba@kernel.org,
pabeni@redhat.com, davem@davemloft.net
Subject: [Bridge] [PATCH net-next v2 06/13] vxlan: mdb: Factor out a helper for remote entry size calculation
Date: Wed, 25 Oct 2023 15:30:13 +0300 [thread overview]
Message-ID: <20231025123020.788710-7-idosch@nvidia.com> (raw)
In-Reply-To: <20231025123020.788710-1-idosch@nvidia.com>
Currently, netlink notifications are sent for individual remote entries
and not for the entire MDB entry itself.
Subsequent patches are going to add MDB get support which will require
the VXLAN driver to reply with an entire MDB entry.
Therefore, as a preparation, factor out a helper to calculate the size
of an individual remote entry. When determining the size of the reply
this helper will be invoked for each remote entry in the MDB entry.
No functional changes intended.
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
---
drivers/net/vxlan/vxlan_mdb.c | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)
diff --git a/drivers/net/vxlan/vxlan_mdb.c b/drivers/net/vxlan/vxlan_mdb.c
index 0b6043e1473b..19640f7e3a88 100644
--- a/drivers/net/vxlan/vxlan_mdb.c
+++ b/drivers/net/vxlan/vxlan_mdb.c
@@ -925,23 +925,20 @@ vxlan_mdb_nlmsg_src_list_size(const struct vxlan_mdb_entry_key *group,
return nlmsg_size;
}
-static size_t vxlan_mdb_nlmsg_size(const struct vxlan_dev *vxlan,
- const struct vxlan_mdb_entry *mdb_entry,
- const struct vxlan_mdb_remote *remote)
+static size_t
+vxlan_mdb_nlmsg_remote_size(const struct vxlan_dev *vxlan,
+ const struct vxlan_mdb_entry *mdb_entry,
+ const struct vxlan_mdb_remote *remote)
{
const struct vxlan_mdb_entry_key *group = &mdb_entry->key;
struct vxlan_rdst *rd = rtnl_dereference(remote->rd);
size_t nlmsg_size;
- 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));
+
/* MDBA_MDB_EATTR_SOURCE */
if (vxlan_mdb_is_sg(group))
nlmsg_size += nla_total_size(vxlan_addr_size(&group->dst));
@@ -969,6 +966,19 @@ static size_t vxlan_mdb_nlmsg_size(const struct vxlan_dev *vxlan,
return nlmsg_size;
}
+static size_t vxlan_mdb_nlmsg_size(const struct vxlan_dev *vxlan,
+ const struct vxlan_mdb_entry *mdb_entry,
+ const struct vxlan_mdb_remote *remote)
+{
+ return NLMSG_ALIGN(sizeof(struct br_port_msg)) +
+ /* MDBA_MDB */
+ nla_total_size(0) +
+ /* MDBA_MDB_ENTRY */
+ nla_total_size(0) +
+ /* Remote entry */
+ vxlan_mdb_nlmsg_remote_size(vxlan, mdb_entry, remote);
+}
+
static int vxlan_mdb_nlmsg_fill(const struct vxlan_dev *vxlan,
struct sk_buff *skb,
const struct vxlan_mdb_entry *mdb_entry,
--
2.40.1
next prev parent reply other threads:[~2023-10-25 12:30 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-25 12:30 [Bridge] [PATCH net-next v2 00/13] Add MDB get support Ido Schimmel
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 01/13] bridge: mcast: Dump MDB entries even when snooping is disabled Ido Schimmel
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 02/13] bridge: mcast: Account for missing attributes Ido Schimmel
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 03/13] bridge: mcast: Factor out a helper for PG entry size calculation Ido Schimmel
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 04/13] bridge: mcast: Rename MDB entry get function Ido Schimmel
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 05/13] vxlan: mdb: Adjust function arguments Ido Schimmel
2023-10-25 12:30 ` Ido Schimmel [this message]
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 07/13] bridge: add MDB get uAPI attributes Ido Schimmel
2023-10-26 6:22 ` Nikolay Aleksandrov
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 08/13] net: Add MDB get device operation Ido Schimmel
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 09/13] bridge: mcast: Add MDB get support Ido Schimmel
2023-10-26 6:23 ` Nikolay Aleksandrov
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 10/13] vxlan: mdb: " Ido Schimmel
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 11/13] rtnetlink: " Ido Schimmel
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 12/13] selftests: bridge_mdb: Use MDB get instead of dump Ido Schimmel
2023-10-25 12:30 ` [Bridge] [PATCH net-next v2 13/13] selftests: vxlan_mdb: " Ido Schimmel
2023-10-27 10:00 ` [Bridge] [PATCH net-next v2 00/13] Add MDB get support patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231025123020.788710-7-idosch@nvidia.com \
--to=idosch@nvidia.com \
--cc=bridge@lists.linux-foundation.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=mlxsw@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=razor@blackwall.org \
--cc=roopa@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox