From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathieu Olivari Subject: Re: RFC: dsa: add support for multiple CPU ports Date: Tue, 10 Mar 2015 13:42:28 -0700 Message-ID: <20150310204021.GA2740@codeaurora.org> References: <20150310190129.GB5636@codeaurora.org> <20150310193151.GE10838@lunn.ch> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: netdev@vger.kernel.org, linux@roeck-us.net, jogo@openwrt.org, f.fainelli@gmail.com To: Andrew Lunn Return-path: Received: from smtp.codeaurora.org ([198.145.29.96]:37046 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752461AbbCJUmj (ORCPT ); Tue, 10 Mar 2015 16:42:39 -0400 Content-Disposition: inline In-Reply-To: <20150310193151.GE10838@lunn.ch> Sender: netdev-owner@vger.kernel.org List-ID: 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: 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: 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: 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: 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: 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: 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: 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: 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".