Hi Andrew, > On Thu, Feb 29, 2024 at 10:25:57AM +0100, Lukasz Majewski wrote: > > Hi Andrew, > > > > > On Wed, Feb 28, 2024 at 08:31:15AM -0800, Stephen Hemminger > > > wrote: > > > > On Wed, 28 Feb 2024 16:07:35 +0100 > > > > Lukasz Majewski wrote: > > > > > > > > > > > > > > +/* hsr_proxy_node_table_show - Formats and prints proxy > > > > > node_table entries */ +static int > > > > > +hsr_proxy_node_table_show(struct seq_file *sfp, void *data) > > > > > +{ > > > > > + struct hsr_priv *priv = (struct hsr_priv > > > > > *)sfp->private; > > > > > + struct hsr_node *node; > > > > > + > > > > > + seq_printf(sfp, "Proxy Node Table entries for HSR > > > > > device\n"); > > > > > + seq_puts(sfp, "MAC-Address-SAN, time_in\n"); > > > > > + rcu_read_lock(); > > > > > + list_for_each_entry_rcu(node, &priv->proxy_node_db, > > > > > mac_list) { > > > > > + seq_printf(sfp, "%pM ", > > > > > &node->macaddress_A[0]); > > > > > + seq_printf(sfp, "%10lx\n", > > > > > node->time_in[HSR_PT_INTERLINK]); > > > > > + } > > > > > + rcu_read_unlock(); > > > > > + return 0; > > > > > +} > > > > > + > > > > > DEFINE_SHOW_ATTRIBUTE(hsr_node_table); > > > > > +DEFINE_SHOW_ATTRIBUTE(hsr_proxy_node_table); > > > > > > > > NAK > > > > Do not abuse sysfs to be a debug proc style output. > > > > > > This is actually debugfs, not sysfs. > > > > > > However, i agree, we want information like this exported via > > > netlink as the primary interface to the end user. debugfs is not > > > suitable for that. > > > > Am I correct, that recommended approach would be to: > > > > 1. Modify iproute2 to support for example: > > > > ip addr show dev hsr1 nodes {proxy} ? > > Something like that. iproute2 is more than the ip command. There is > also bridge, dcb, vdpa, etc. So you need to decide where it fits best. > Maybe as part of bridge? Or even a command of its own. IMHO, 'bridge' is not the best place for hsr output, as 'NodeTable' can (and should) be provided for non-redbox communication. For now the ip looks like the best place. > > > 2. Shall the currently exported: > > > > /sys/kernel/debug/hsr/hsrX/node_table be left as it is (for legacy > > usage) or shall it be removed and replaced with netlink and > > iproute2 ? > > There is no legacy usage. debugfs is unstable, it is not KAPI. Nothing > is expected to use it, because it could disappear at any time, its > format can change, etc. For a long time, debugfs was not liked in > networking, because it was abused and tools built on top of it, often > vendor tools. We much prefer well defined interfaces such as > netlink. But it seems like things are becoming a little bit more > loose. Ok. Thanks for the explanation. > If you have a well defined netlink API making debugfs > pointless, you can probably keep the debugfs code :-) But you can also > remove it. I would prefer to keep the code. > > Andrew Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Erika Unter HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de