netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jay Vosburgh <jv@jvosburgh.net>
To: Tonghao Zhang <tonghao@bamaicloud.com>
Cc: netdev@vger.kernel.org, "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>, Jonathan Corbet <corbet@lwn.net>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	Steven Rostedt <rostedt@goodmis.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Nikolay Aleksandrov <razor@blackwall.org>,
	Zengbing Tu <tuzengbing@didiglobal.com>
Subject: Re: [net-next v6 4/4] net: bonding: add tracepoint for 802.3ad
Date: Mon, 16 Jun 2025 17:28:50 -0700	[thread overview]
Message-ID: <1931181.1750120130@famine> (raw)
In-Reply-To: <10b8f570bd59104a1c7d5ecdc9a82c6ec61d2d1c.1749525581.git.tonghao@bamaicloud.com>

Tonghao Zhang <tonghao@bamaicloud.com> wrote:

>Users can monitor NIC link status changes through netlink. However, LACP
>protocol failures may occur despite operational physical links. There is
>no way to detect LACP state changes. This patch adds tracepoint at
>LACP state transition.

	This patch really has nothing to do with the rest of the series
(it's unrelated to the broadcast_neighbor functionality), and should
really be sent separately.

	That said, I recall asking about work that was proposed some
time ago to create netlink events (visible to ip monitor, et al) when
the LACP state changes.  That would be a cleaner method to watch the
LACP state machine (as it would integrate with all of the other event
infrastructure).  Maybe I missed the response, but what became of that
work?

	-J

>Cc: Jay Vosburgh <jv@jvosburgh.net>
>Cc: "David S. Miller" <davem@davemloft.net>
>Cc: Eric Dumazet <edumazet@google.com>
>Cc: Jakub Kicinski <kuba@kernel.org>
>Cc: Paolo Abeni <pabeni@redhat.com>
>Cc: Simon Horman <horms@kernel.org>
>Cc: Jonathan Corbet <corbet@lwn.net>
>Cc: Andrew Lunn <andrew+netdev@lunn.ch>
>Cc: Steven Rostedt <rostedt@goodmis.org>
>Cc: Masami Hiramatsu <mhiramat@kernel.org>
>Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
>Cc: Nikolay Aleksandrov <razor@blackwall.org>
>Signed-off-by: Tonghao Zhang <tonghao@bamaicloud.com>
>Signed-off-by: Zengbing Tu <tuzengbing@didiglobal.com>
>Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
>---
> drivers/net/bonding/bond_3ad.c |  6 ++++++
> include/trace/events/bonding.h | 37 ++++++++++++++++++++++++++++++++++
> 2 files changed, 43 insertions(+)
> create mode 100644 include/trace/events/bonding.h
>
>diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
>index d1c2d416ac87..55703230ab29 100644
>--- a/drivers/net/bonding/bond_3ad.c
>+++ b/drivers/net/bonding/bond_3ad.c
>@@ -16,6 +16,9 @@
> #include <net/bond_3ad.h>
> #include <net/netlink.h>
> 
>+#define CREATE_TRACE_POINTS
>+#include <trace/events/bonding.h>
>+
> /* General definitions */
> #define AD_SHORT_TIMEOUT           1
> #define AD_LONG_TIMEOUT            0
>@@ -1146,6 +1149,9 @@ static void ad_mux_machine(struct port *port, bool *update_slave_arr)
> 			  port->actor_port_number,
> 			  last_state,
> 			  port->sm_mux_state);
>+
>+		trace_3ad_mux_state(port->slave->dev, last_state, port->sm_mux_state);
>+
> 		switch (port->sm_mux_state) {
> 		case AD_MUX_DETACHED:
> 			port->actor_oper_port_state &= ~LACP_STATE_SYNCHRONIZATION;
>diff --git a/include/trace/events/bonding.h b/include/trace/events/bonding.h
>new file mode 100644
>index 000000000000..1ee4b07d912a
>--- /dev/null
>+++ b/include/trace/events/bonding.h
>@@ -0,0 +1,37 @@
>+/* SPDX-License-Identifier: GPL-2.0 */
>+
>+#if !defined(_TRACE_BONDING_H) || defined(TRACE_HEADER_MULTI_READ)
>+#define _TRACE_BONDING_H
>+
>+#include <linux/netdevice.h>
>+#include <linux/tracepoint.h>
>+
>+#undef TRACE_SYSTEM
>+#define TRACE_SYSTEM bonding
>+
>+TRACE_EVENT(3ad_mux_state,
>+	TP_PROTO(struct net_device *dev, u32 last_state, u32 curr_state),
>+	TP_ARGS(dev, last_state, curr_state),
>+
>+	TP_STRUCT__entry(
>+		__field(int, ifindex)
>+		__string(dev_name, dev->name)
>+		__field(u32, last_state)
>+		__field(u32, curr_state)
>+	),
>+
>+	TP_fast_assign(
>+		__entry->ifindex = dev->ifindex;
>+		__assign_str(dev_name);
>+		__entry->last_state = last_state;
>+		__entry->curr_state = curr_state;
>+	),
>+
>+	TP_printk("ifindex %d dev %s last_state 0x%x curr_state 0x%x",
>+		  __entry->ifindex, __get_str(dev_name),
>+		  __entry->last_state, __entry->curr_state)
>+);
>+
>+#endif /* _TRACE_BONDING_H */
>+
>+#include <trace/define_trace.h>
>-- 
>2.34.1
>

---
	-Jay Vosburgh, jv@jvosburgh.net

  reply	other threads:[~2025-06-17  0:28 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-10  3:44 [net-next v6 0/4] add broadcast_neighbor for no-stacking networking arch Tonghao Zhang
2025-06-10  3:44 ` [net-next v6 1/4] net: bonding: add broadcast_neighbor option for 802.3ad Tonghao Zhang
2025-06-16 23:04   ` Jakub Kicinski
2025-06-17 10:25     ` Tonghao Zhang
2025-06-10  3:44 ` [net-next v6 2/4] net: bonding: add broadcast_neighbor netlink option Tonghao Zhang
2025-06-10  3:44 ` [net-next v6 3/4] net: bonding: send peer notify when failure recovery Tonghao Zhang
2025-06-17  0:36   ` Jay Vosburgh
2025-06-17 10:47     ` Tonghao Zhang
2025-06-17 11:39       ` Tonghao Zhang
2025-06-18  2:51         ` Tonghao Zhang
2025-06-10  3:44 ` [net-next v6 4/4] net: bonding: add tracepoint for 802.3ad Tonghao Zhang
2025-06-17  0:28   ` Jay Vosburgh [this message]
2025-06-17 10:37     ` Tonghao Zhang
2025-06-23  2:11       ` Tonghao Zhang
2025-06-24 19:43         ` Jay Vosburgh
2025-06-26  2:57           ` Tonghao Zhang
2025-06-16  2:07 ` [net-next v6 0/4] add broadcast_neighbor for no-stacking networking arch Tonghao Zhang

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=1931181.1750120130@famine \
    --to=jv@jvosburgh.net \
    --cc=andrew+netdev@lunn.ch \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=razor@blackwall.org \
    --cc=rostedt@goodmis.org \
    --cc=tonghao@bamaicloud.com \
    --cc=tuzengbing@didiglobal.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;
as well as URLs for NNTP newsgroup(s).