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

From: Florian Fainelli
Date: Fri Sep 08 2017 - 15:54:12 EST


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 |

>
> 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/Documentation/networking/dsa/dsa.txt#n275
--
Florian