[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <63247b7c.050a0220.6327b.5198@mx.google.com>
Date: Fri, 16 Sep 2022 08:05:28 +0200
From: Christian Marangi <ansuelsmth@...il.com>
To: Mattias Forsblad <mattias.forsblad@...il.com>
Cc: netdev@...r.kernel.org, Andrew Lunn <andrew@...n.ch>,
Vivien Didelot <vivien.didelot@...il.com>,
Florian Fainelli <f.fainelli@...il.com>,
Vladimir Oltean <olteanv@...il.com>,
"David S . Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, linux@...linux.org.uk
Subject: Re: [PATCH net-next v13 0/6] net: dsa: qca8k, mv88e6xxx: rmon: Add
RMU support
On Fri, Sep 16, 2022 at 02:18:11PM +0200, Mattias Forsblad wrote:
> The Marvell SOHO switches have the ability to receive and transmit
> Remote Management Frames (Frame2Reg) to the CPU through the
> attached network interface.
> This is handled by the Remote Management Unit (RMU) in the switch
> These frames can contain different payloads:
> single switch register read and writes, daisy chained switch
> register read and writes, RMON/MIB dump/dump clear and ATU dump.
> The dump functions are very costly over MDIO but it's
> only a couple of network packets via the RMU.
>
> Next step could be to implement ATU dump.
> We've found that the gain to use RMU for single register
> read and writes is neglible.
>
> qca8k
> =====
> There's a newly introduced convenience function for sending
> and waiting for frames. Changes have been made for the qca8k
> driver to use this. Please test for regressions.
>
Hi,
I found time to test this aaaand it's broken...
I leaved some comments in the specific patch to make this work on legacy
custom completion implementation.
Ideally I will convert qca8k to the non legacy but I like your approach
of not enforcing stuff.
> RFC -> v1:
> - Track master interface availability.
> - Validate destination MAC for incoming frames.
> - Rate limit outputs.
> - Cleanup setup function validating upstream port on switch.
> - Fix return values when setting up RMU.
> - Prefix defines correctly.
> - Fix aligned accesses.
> - Validate that switch exists for incoming frames.
> - Split RMON stats function.
>
> v1 -> v2:
> - Remove unused variable.
>
> v2 -> v3:
> - Rewrite after feedback. Use tagger_data to handle
> frames more like qca8k.
> - qca8k: Change to use convenience functions introduced.
> Requesting test of this.
>
> v3 -> v4:
> - Separated patches more granular.
>
> v4 -> v5:
> - Some small fixes after feedback.
>
> v5 -> v6:
> - Rewrite of send_wait function to more adhere
> to RPC standards
> - Cleanup of ops handling
> - Move get id to when master device is available.
>
> v6 -> v7:
> - Some minor cleanups.
>
> v7 -> v8:
> - Moved defines to header file.
> - Check RMU response length and return actual
> length received.
> - Added disable/enable helpers for RMU.
> - Fixed some error paths.
>
> v8 -> v9:
> - Naming consistency for parameters/functions.
> - Streamlined completion routines.
> - Moved completion init earlier.
> - Spelling corrected.
> - Moved dsa_tagger_data declaration.
> - Minimal frame2reg decoding in tag_dsa.
> - Fixed return codes.
> - Use convenience functions.
> - Streamlined function parameters.
> - Fixed error path when master device changes
> state.
> - Still verify MAC address (per request of Andrew Lunn)
> - Use skb_get instead of skb_copy
> - Prefix defines and structs correctly.
> - Change types to __beXX.
>
> v9 -> v10:
> - Patchworks feedback fixed.
>
> v10 -> v11:
> - Fixed sparse warnings.
>
> v11 -> v12:
> - Split mv88e6xxx_stats_get_stats into separate
> functions, one for RMU and one for legacy
> access.
>
> v12 -> v13:
> - Expose all RMON counters via RMU.
>
> Regards,
> Mattias Forsblad
>
> Mattias Forsblad (6):
> net: dsa: mv88e6xxx: Add RMU enable for select switches.
> net: dsa: Add convenience functions for frame handling
> net: dsa: Introduce dsa tagger data operation.
> net: dsa: mv88e6xxxx: Add RMU functionality.
> net: dsa: mv88e6xxx: rmon: Use RMU for reading RMON data
> net: dsa: qca8k: Use new convenience functions
>
> drivers/net/dsa/mv88e6xxx/Makefile | 1 +
> drivers/net/dsa/mv88e6xxx/chip.c | 117 +++++++++-
> drivers/net/dsa/mv88e6xxx/chip.h | 31 +++
> drivers/net/dsa/mv88e6xxx/global1.c | 64 ++++++
> drivers/net/dsa/mv88e6xxx/global1.h | 3 +
> drivers/net/dsa/mv88e6xxx/rmu.c | 320 ++++++++++++++++++++++++++++
> drivers/net/dsa/mv88e6xxx/rmu.h | 73 +++++++
> drivers/net/dsa/mv88e6xxx/smi.c | 3 +
> drivers/net/dsa/qca/qca8k-8xxx.c | 61 ++----
> include/linux/dsa/mv88e6xxx.h | 6 +
> include/net/dsa.h | 11 +
> net/dsa/dsa.c | 17 ++
> net/dsa/dsa2.c | 2 +
> net/dsa/dsa_priv.h | 2 +
> net/dsa/tag_dsa.c | 40 +++-
> 15 files changed, 692 insertions(+), 59 deletions(-)
> create mode 100644 drivers/net/dsa/mv88e6xxx/rmu.c
> create mode 100644 drivers/net/dsa/mv88e6xxx/rmu.h
>
> --
> 2.25.1
>
--
Ansuel
Powered by blists - more mailing lists