Subject: Re: RFC: dsa: add support for multiple CPU ports

From: Andrew Lunn <[email-masked]>
Date: Tue, 10 Mar 2015 22:13:15 +0100

> I was thinking about the MIB counters, maintained by the switch, on the CPU
> port(s). 
> 
> On this picture:
> 
> +-----------+       +--------------------+
> |           | RGMII |                    |
> |       eth0+-------+ P0              P1 +------ 1000baseT MDI ("WAN")
> |        wan|       |      7-port     P2 +------ 1000baseT MDI ("LAN1")
> |   CPU     |       |      ethernet   P3 +------ 1000baseT MDI ("LAN2")
> |           | RGMII |      switch     P4 +------ 1000baseT MDI ("LAN3")
> |       eth1+-------+ P6   w/5 PHYs   P5 +------ 1000baseT MDI ("LAN4")
> |        lan|       |                    |
> +-----------+       +--------------------+
>           |     MDIO   |
>           \------------/
> 
> We can see MIB stats of P1/P2/P3/P4/P5 by using ethtool -S. But as CPU
> ports don't have a net_device, there isn't a way to access MIB stats of
> P0 & P6.

Ah, sorry, i misunderstood you. As you say, the current DSA does not
give you access to these counters. Apart from these counters, are
there any other needs to have access to these ports? The core idea of
hardware acceleration is that it should look like linux as normal.  P0
and P6 are an internal detail, and you cannot actually use them. You
cannot send packets, they are something special. So unless there is a
good reason, we should not expose them.

> If we have the eth0 <--> P0 and eth1 <--> P6 relationship information in dts,
> we could use it to lookup which switch port is connected to this net_dev and
> show the corresponding counters when running "ethtool -S ethN".

But that is not what the user expects. They expect the statistic
counters for ethN, not the switch port.

	 Andrew