lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d3afcb57-ec0a-7ab7-0965-d5e725f5c617@gmail.com>
Date:   Sat, 15 Dec 2018 09:28:41 -0800
From:   Florian Fainelli <f.fainelli@...il.com>
To:     Vivien Didelot <vivien.didelot@...il.com>, netdev@...r.kernel.org
Cc:     Chris Healy <cphealy@...il.com>,
        "John W . Linville" <linville@...driver.com>, andrew@...n.ch
Subject: Re: [PATCH 0/7] ethtool: add pretty dump for DSA mv88e6xxx drivers

Hi Vivien,

Le 12/14/18 à 6:50 PM, Vivien Didelot a écrit :
> This patch series adds support to pretty dump the registers of user
> ports created by the kernel "dsa" subsystem.
> 
> The first patch adds the base support for "dsa" interfaces.
> 
> The second patch adds the boilerplate for the "mv88e6xxx" DSA driver,
> all using 32 registers of 16 bits, the switch ID being available in
> the port identification register 3. Support for other DSA drivers such
> as "b53" or "ksz" can be added similarly later. Because the different
> switches supported by mv88e6xxx have slightly different register layout,
> we keep it simple and stupid by providing one dump function per switch.

This looks good to me, the only "concern" is that mv88e6xxx set
regs->version = 0, while we could probably put the switch model in there
directly which would avoid other drivers to have to put the chip ID in
regs[3] since that may, or may not be convenient.

For instance the B53 devices are organized by page (0-255), and then by
offsets (0-255 again). Within a page, there are registers that are
really per-port and some that are global. Also, registers can be
8/16/32/48/64 bits (which is going to be interesting to support).

> 
> The remaining patches add support for the switch models currently
> supported by the mv88e6xxx driver. Here's an example of dump of the
> 32 registers of a 88E6352 port:
> 
>     # ethtool -d lan3
>     88E6352  Switch Port Registers
>     ------------------------------
>     00: Port Status                            0x500f
>           Pause Enabled                        0
>           My Pause                             1
>           802.3 PHY Detected                   1
>           Link Status                          Down
>           Duplex                               Half
>           Speed                                10 Mbps
>           EEE Enabled                          0
>           Transmitter Paused                   0
>           Flow Control                         0
>           Config Mode                          0xf
>     01: Physical Control                       0x0003
>           RGMII Receive Timing Control         Default
>           RGMII Transmit Timing Control        Default
>           200 BASE Mode                        100
>           Flow Control's Forced value          0
>           Force Flow Control                   0
>           Link's Forced value                  Down
>           Force Link                           0
>           Duplex's Forced value                Half
>           Force Duplex                         0
>           Force Speed                          Not forced
>     02: Jamming Control                        0x0000
>     03: Switch Identifier                      0x3521
>     04: Port Control                           0x0433
>           Source Address Filtering controls    Disabled
>           Egress Mode                          Unmodified
>           Ingress & Egress Header Mode         0
>           IGMP and MLD Snooping                1
>           Frame Mode                           Normal
>           VLAN Tunnel                          0
>           TagIfBoth                            0
>           Initial Priority assignment          Tag & IP Priority
>           Egress Flooding mode                 No unknown DA
>           Port State                           Forwarding
>     05: Port Control 1                         0x0000
>           Message Port                         0
>           Trunk Port                           0
>           Trunk ID                             0
>           FID[11:4]                            0x000
>     06: Port Base VLAN Map (Header)            0x0060
>           FID[3:0]                             0x000
>           VLANTable                            5 6 
>     07: Default VLAN ID & Priority             0x0000
>           Default Priority                     0x0
>           Force to use Default VID             0
>           Default VLAN Identifier              0
>     08: Port Control 2                         0x2080
>           Force good FCS in the frame          0
>           Jumbo Mode                           10240
>           802.1QMode                           Disabled
>           Discard Tagged Frames                0
>           Discard Untagged Frames              0
>           Map using DA hits                    1
>           ARP Mirror enable                    0
>           Egress Monitor Source Port           0
>           Ingress Monitor Source Port          0
>           Use Default Queue Priority           0
>           Default Queue Priority               0x0
>     09: Egress Rate Control                    0x0001
>     10: Egress Rate Control 2                  0x0000
>     11: Port Association Vector                0x0001
>     12: Port ATU Control                       0x0000
>     13: Override                               0x0000
>     14: Policy Control                         0x0000
>     15: Port Ether Type                        0x9100
>     16: InDiscardsLo Frame Counter             0x0000
>     17: InDiscardsHi Frame Counter             0x0000
>     18: InFiltered/TcamCtr Frame Counter       0x0000
>     19: Rx Frame Counter                       0x0000
>     20: Reserved                               0x0000
>     21: Reserved                               0x0000
>     22: LED Control                            0x0022
>     23: Reserved                               0x0000
>     24: Tag Remap 0-3                          0x3210
>     25: Tag Remap 4-7                          0x7654
>     26: Reserved                               0x0000
>     27: Queue Counters                         0x8000
>     28: Reserved                               0x0000
>     29: Reserved                               0x0000
>     30: Reserved                               0x0000
>     31: Reserved                               0x0000
> 
> 
> Vivien Didelot (7):
>   ethtool: dsa: add pretty dump
>   ethtool: dsa: mv88e6xxx: add pretty dump
>   ethtool: dsa: mv88e6xxx: add pretty dump for 88E6185
>   ethtool: dsa: mv88e6xxx: add pretty dump for 88E6161
>   ethtool: dsa: mv88e6xxx: add pretty dump for 88E6352
>   ethtool: dsa: mv88e6xxx: add pretty dump for 88E6390
>   ethtool: dsa: mv88e6xxx: pretty dump others
> 
>  Makefile.am |   2 +-
>  dsa.c       | 685 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  ethtool.c   |   1 +
>  internal.h  |   3 +
>  4 files changed, 690 insertions(+), 1 deletion(-)
>  create mode 100644 dsa.c
> 


-- 
Florian

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ