All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Olivari <mathieu@codeaurora.org>
To: Andrew Lunn <andrew@lunn.ch>
Cc: netdev@vger.kernel.org, linux@roeck-us.net, jogo@openwrt.org,
	f.fainelli@gmail.com
Subject: Re: RFC: dsa: add support for multiple CPU ports
Date: Tue, 10 Mar 2015 13:42:28 -0700	[thread overview]
Message-ID: <20150310204021.GA2740@codeaurora.org> (raw)
In-Reply-To: <20150310193151.GE10838@lunn.ch>

On Tue, Mar 10, 2015 at 08:31:51PM +0100, Andrew Lunn wrote:
> > The third point would allow to perform operations currently limited to switch
> > ports. Typically, "ethtool -S eth0" could return the corresponding port's MIB
> > statistics in addition to the eth0 statistics.
> 
> Hi Mathieu
> 
> This already works with DSA. I have a WRT1900AC which has a 7 port
> switch. With DSA i have:
> 
> # ip link show
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
>     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 532
>     link/ether 94:10:3e:80:bc:f3 brd ff:ff:ff:ff:ff:ff
> 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 532
>     link/ether 52:33:3a:a7:c1:8a brd ff:ff:ff:ff:ff:ff
> 4: lan4@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default 
>     link/ether 94:10:3e:80:bc:f3 brd ff:ff:ff:ff:ff:ff
> 5: lan3@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default 
>     link/ether 94:10:3e:80:bc:f3 brd ff:ff:ff:ff:ff:ff
> 6: lan2@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
>     link/ether 94:10:3e:80:bc:f3 brd ff:ff:ff:ff:ff:ff
> 7: lan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
>     link/ether 94:10:3e:80:bc:f3 brd ff:ff:ff:ff:ff:ff
> 8: internet@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
>     link/ether 94:10:3e:80:bc:f3 brd ff:ff:ff:ff:ff:ff
> 
> internet would be your WAN port in your diagram. I just named it the
> same as the label on the case.
> 
> I can get MIB statistics in the normal way for the DSA ports, e.g:
> 
> root@wrt1900ac:~# ethtool -S lan1
> NIC statistics:
>      tx_packets: 153009
>      tx_bytes: 13307317
>      rx_packets: 161136
>      rx_bytes: 21840683
> ...
> 
> 	Andrew
> 
> 

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.

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".

  reply	other threads:[~2015-03-10 20:42 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-10 19:01 RFC: dsa: add support for multiple CPU ports Mathieu Olivari
2015-03-10 19:21 ` Andrew Lunn
2015-03-10 22:13   ` Mathieu Olivari
2015-03-10 22:50     ` Andrew Lunn
2015-03-10 19:31 ` Andrew Lunn
2015-03-10 20:42   ` Mathieu Olivari [this message]
2015-03-10 21:13     ` Andrew Lunn
2015-03-10 22:53       ` Mathieu Olivari
2015-03-11  1:47         ` David Miller
2015-03-11 13:07       ` Jiri Pirko
2015-03-11  0:01     ` Florian Fainelli
2015-03-11  1:18       ` Mathieu Olivari
2015-03-11 13:30         ` Andrew Lunn
2015-03-11 23:37           ` Mathieu Olivari
2015-03-12  0:19             ` Andrew Lunn
2015-03-13  1:57               ` Mathieu Olivari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150310204021.GA2740@codeaurora.org \
    --to=mathieu@codeaurora.org \
    --cc=andrew@lunn.ch \
    --cc=f.fainelli@gmail.com \
    --cc=jogo@openwrt.org \
    --cc=linux@roeck-us.net \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.