On Mon, Jun 06, 2016 at 02:55:29PM -0400, Jarod Wilson wrote:
> On Mon, Jun 06, 2016 at 05:29:30PM +0100, Bert Kenward wrote:
> > 7000-series SFC NICs connected with an SFP+ module currently fail to
> > report any supported link speeds.
> > 
> > Reported-by: Jarod Wilson <ja...@redhat.com>
> > Signed-off-by: Bert Kenward <bkenw...@solarflare.com>
> 
> Had a feeling my cut might not have been quite right. Looks good to me.
> 
> Reviewed-by: Jarod Wilson <ja...@redhat.com>

...however, upon testing, there's a gotcha. This results in my 10Gbps sfc
nic reporting that it supports 40Gbps:

$ ethtool ens4f0
Settings for ens4f0:
        Supported ports: [ FIBRE ]
        Supported link modes:   1000baseT/Full
                                10000baseT/Full
                                40000baseKR4/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Advertised link modes:  Not reported
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10000baseT/Full
        Link partner advertised pause frame use: Symmetric
        Link partner advertised auto-negotiation: No
        Speed: 10000Mb/s
        Duplex: Full
        Port: FIBRE
        PHYAD: 255
        Transceiver: internal
        Auto-negotiation: on
Cannot get wake-on-lan settings: Operation not permitted
        Current message level: 0x000020f7 (8439)
                               drv probe link ifdown ifup rx_err tx_err hw
        Link detected: yes

$ ethtool -i ens4f0
driver: sfc
version: 4.0
firmware-version: 4.6.1.1001 rx1 tx1
expansion-rom-version:
bus-info: 0000:05:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

$ lspci -v -s 0000:05:00.0
05:00.0 Ethernet controller: Solarflare Communications SFC9120 (rev 01)
        Subsystem: Solarflare Communications SFN7x22F-R2 Flareon Ultra 7000 
Series 10G Adapter
        Physical Slot: 4
        Flags: bus master, fast devsel, latency 0, IRQ 16
        I/O ports at c100 [size=256]
        Memory at ef000000 (64-bit, non-prefetchable) [size=8M]
        Memory at ef884000 (64-bit, non-prefetchable) [size=16K]
        Expansion ROM at ef840000 [disabled] [size=256K]
        Capabilities: <access denied>
        Kernel driver in use: sfc

One solution would be to move the case MC_CMD_MEDIA_QSFP_PLUS above
XFP/SFP_PLUS, only check the 40Gbps cap, no break, fall through into the
XFP/SFP_PLUS chunk, continue processing there.

-- 
Jarod Wilson
ja...@redhat.com

Reply via email to