[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+h21hqpO91_LduJhhW7c1fr_0JJg54m8ovu5An-Ly+bzVtQ6g@mail.gmail.com>
Date: Thu, 14 Nov 2019 12:18:50 +0200
From: Vladimir Oltean <olteanv@...il.com>
To: Andrew Lunn <andrew@...n.ch>,
Florian Fainelli <f.fainelli@...il.com>,
Vivien Didelot <vivien.didelot@...il.com>,
"David S. Miller" <davem@...emloft.net>
Cc: netdev <netdev@...r.kernel.org>
Subject: Re: [PATCH net-next] net: dsa: sja1105: Make HOSTPRIO a kernel config
On Tue, 12 Nov 2019 at 23:25, Vladimir Oltean <olteanv@...il.com> wrote:
>
> Unfortunately with this hardware, there is no way to transmit in-band
> QoS hints with management frames (i.e. VLAN PCP is ignored). The traffic
> class for these is fixed in the static config (which in turn requires a
> reset to change).
>
> With the new ability to add time gates for individual traffic classes,
> there is a real danger that the user might unknowingly turn off the
> traffic class for PTP, BPDUs, LLDP etc.
>
> So we need to manage this situation the best we can. There isn't any
> knob in Linux for this, and changing it at runtime probably isn't worth
> it either. So just make the setting loud enough by promoting it to a
> Kconfig, which the user can customize to their particular setup.
>
> Signed-off-by: Vladimir Oltean <olteanv@...il.com>
> ---
> Documentation/networking/dsa/sja1105.rst | 4 ++--
> drivers/net/dsa/sja1105/Kconfig | 11 +++++++++++
> drivers/net/dsa/sja1105/sja1105_main.c | 2 +-
> 3 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/networking/dsa/sja1105.rst b/Documentation/networking/dsa/sja1105.rst
> index eef20d0bcf7c..2eaa6edf9c5b 100644
> --- a/Documentation/networking/dsa/sja1105.rst
> +++ b/Documentation/networking/dsa/sja1105.rst
> @@ -181,8 +181,8 @@ towards the switch, with the VLAN PCP bits set appropriately.
> Management traffic (having DMAC 01-80-C2-xx-xx-xx or 01-19-1B-xx-xx-xx) is the
> notable exception: the switch always treats it with a fixed priority and
> disregards any VLAN PCP bits even if present. The traffic class for management
> -traffic has a value of 7 (highest priority) at the moment, which is not
> -configurable in the driver.
> +traffic is configurable through ``CONFIG_NET_DSA_SJA1105_HOSTPRIO``, which by
> +default has a value of 7 (highest priority).
>
> Below is an example of configuring a 500 us cyclic schedule on egress port
> ``swp5``. The traffic class gate for management traffic (7) is open for 100 us,
> diff --git a/drivers/net/dsa/sja1105/Kconfig b/drivers/net/dsa/sja1105/Kconfig
> index 0fe1ae173aa1..ac63054f578e 100644
> --- a/drivers/net/dsa/sja1105/Kconfig
> +++ b/drivers/net/dsa/sja1105/Kconfig
> @@ -17,6 +17,17 @@ tristate "NXP SJA1105 Ethernet switch family support"
> - SJA1105R (Gen. 2, SGMII, No TT-Ethernet)
> - SJA1105S (Gen. 2, SGMII, TT-Ethernet)
>
> +config NET_DSA_SJA1105_HOSTPRIO
> + int "Traffic class for management traffic"
> + range 0 7
> + default 7
> + depends on NET_DSA_SJA1105
> + help
> + Configure the traffic class which will be used for management
> + (link-local) traffic injected and trapped to/from the CPU.
> +
> + Higher is better as long as you care about your PTP frames.
> +
> config NET_DSA_SJA1105_PTP
> bool "Support for the PTP clock on the NXP SJA1105 Ethernet switch"
> depends on NET_DSA_SJA1105
> diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
> index b60224c55244..907babeb8c8a 100644
> --- a/drivers/net/dsa/sja1105/sja1105_main.c
> +++ b/drivers/net/dsa/sja1105/sja1105_main.c
> @@ -388,7 +388,7 @@ static int sja1105_init_general_params(struct sja1105_private *priv)
> /* Priority queue for link-local management frames
> * (both ingress to and egress from CPU - PTP, STP etc)
> */
> - .hostprio = 7,
> + .hostprio = CONFIG_NET_DSA_SJA1105_HOSTPRIO,
> .mac_fltres1 = SJA1105_LINKLOCAL_FILTER_A,
> .mac_flt1 = SJA1105_LINKLOCAL_FILTER_A_MASK,
> .incl_srcpt1 = false,
> --
> 2.17.1
>
Would a devlink property be better for this?
Thanks,
-Vladimir
Powered by blists - more mailing lists