RE: [PATCH RFC] Update documentation for KSZ DSA drivers so that new drivers can be added

From: Tristram.Ha
Date: Fri Sep 08 2017 - 16:08:35 EST


> -----Original Message-----
> From: Florian Fainelli [mailto:f.fainelli@xxxxxxxxx]
> Sent: Friday, September 08, 2017 12:54 PM
> To: Tristram Ha - C24268; muvarov@xxxxxxxxx
> Cc: andrew@xxxxxxx; pavel@xxxxxx; nathan.leigh.conrad@xxxxxxxxx;
> vivien.didelot@xxxxxxxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; Woojung Huh - C21699
> Subject: Re: [PATCH RFC] Update documentation for KSZ DSA drivers so that new
> drivers can be added
>
> On 09/08/2017 12:48 PM, Tristram.Ha@xxxxxxxxxxxxx wrote:
> >> -----Original Message-----
> >> From: Maxim Uvarov [mailto:muvarov@xxxxxxxxx]
> >> Sent: Friday, September 08, 2017 12:00 PM
> >> To: Florian Fainelli
> >> Cc: Tristram Ha - C24268; Andrew Lunn; Pavel Machek; Nathan Conrad; Vivien
> >> Didelot; netdev; linux-kernel@xxxxxxxxxxxxxxx; Woojung Huh - C21699
> >> Subject: Re: [PATCH RFC] Update documentation for KSZ DSA drivers so that
> new
> >> drivers can be added
> >>
> >> 2017-09-08 21:48 GMT+03:00 Florian Fainelli <f.fainelli@xxxxxxxxx>:
> >>> On 09/07/2017 02:11 PM, Tristram.Ha@xxxxxxxxxxxxx wrote:
> >>>> From: Tristram Ha <Tristram.Ha@xxxxxxxxxxxxx>
> >>>>
> >>>> Add other KSZ switches support so that patch check does not complain.
> >>>>
> >>>> Signed-off-by: Tristram Ha <Tristram.Ha@xxxxxxxxxxxxx>
> >>>> ---
> >>>> Documentation/devicetree/bindings/net/dsa/ksz.txt | 117
> >>>> ++++++++++++----------
> >>>> 1 file changed, 62 insertions(+), 55 deletions(-)
> >>>>
> >>>> diff --git a/Documentation/devicetree/bindings/net/dsa/ksz.txt
> >>>> b/Documentation/devicetree/bindings/net/dsa/ksz.txt
> >>>> index 0ab8b39..34af0e0 100644
> >>>> --- a/Documentation/devicetree/bindings/net/dsa/ksz.txt
> >>>> +++ b/Documentation/devicetree/bindings/net/dsa/ksz.txt
> >>>> @@ -3,8 +3,15 @@ Microchip KSZ Series Ethernet switches
> >>>>
> >>>> Required properties:
> >>>>
> >>>> -- compatible: For external switch chips, compatible string must be
> >>>> exactly one
> >>>> - of: "microchip,ksz9477"
> >>>> +- compatible: Should be "microchip,ksz9477" for KSZ9477 chip,
> >>>> + "microchip,ksz8795" for KSZ8795 chip,
> >>>> + "microchip,ksz8794" for KSZ8794 chip,
> >>>> + "microchip,ksz8765" for KSZ8765 chip,
> >>>> + "microchip,ksz8895" for KSZ8895 chip,
> >>>> + "microchip,ksz8864" for KSZ8864 chip,
> >>>> + "microchip,ksz8873" for KSZ8873 chip,
> >>>> + "microchip,ksz8863" for KSZ8863 chip,
> >>>> + "microchip,ksz8463" for KSZ8463 chip
> >>>
> >>
> >>
> >> Tristram, does any of this devices support chaining?
> >>
> >> Maxim.
> >
> > They do not if you mean daisy-chaining the switches together.
>
> Marvell tags allow you to specify both a port and switch index
> destination after setting up an appropriate routing table, I am assuming
> this is not supported.
>
> What happens though if I connect two KSZ switches ones to another say:
>
> eth0
> -> KSZ8463
> -> KSZ8463
>
> Will the first switch terminates KSZ tag if it sees two tags
> encapsulated in another, something like this:
>
> | MAC DA | MAC SA | .... payload | Inner KSZ tag | Inner KSZ tag | FCS |
>

In theory it is doable by adding more tags and remember which port
is connected to the cpu port of another switch, but there is no switch
forwarding and everything is handled by software.

> >
> > There is always a problem that once tail tagging mode is enabled
> > sending a frame through the MAC without going through the DSA
> > layer will cause the frame to be dropped.
>
> Yes, once the master network device is used for DSA, it is still usable
> directly by e.g: applications, but it won't do anything if the switch is
> configured such that it drops ingressing frames not having the proper
> tag. We documented that here:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Docume
> ntation/networking/dsa/dsa.txt#n275
> --

As the DSA was developed for the Marvell switches I assumed they can
forward frame without a tag.