On Sat, 2013-05-25 at 10:04 +0200, Stéphane Glondu wrote:
> Le 24/05/2013 18:07, Ben Hutchings a écrit :
> >> With Linux 3.8, my computer starts (after some time) flooding its
> >> network interface with pause packets, effectively freezing it and
> >> other network-dependent computers connected to the same switch.

This is still the important issue, and regardless of whether pause
frames are being handled properly it sounds like the hardware RX path
may be locking up and that causes it to generate them continuously.  I
don't know how to investigate that, so this message is going to the
e1000e developers.

> > Switches should normally be configured to generate but not respond
> > to pause frames.  I don't know how unmanaged switches are typically
> > configured.  What do ethtool (no options and 'ethtool -a' report for
> > this device?
> 
> The other frozen computers are connected via an unmanaged switch.
> 
> # ethtool eth0
> Settings for eth0:
>         Supported ports: [ TP ]
>         Supported link modes:   10baseT/Half 10baseT/Full
>                                 100baseT/Half 100baseT/Full
>                                 1000baseT/Full
>         Supported pause frame use: No
>         Supports auto-negotiation: Yes
>         Advertised link modes:  10baseT/Half 10baseT/Full
>                                 100baseT/Half 100baseT/Full
>                                 1000baseT/Full
>         Advertised pause frame use: No
>         Advertised auto-negotiation: Yes

I forgot, e1000e still doesn't report autoneg state completely through
ethtool.  How about 'mii-tool -v eth0'?

>         Speed: 100Mb/s
>         Duplex: Full
>         Port: Twisted Pair
>         PHYAD: 2
>         Transceiver: internal
>         Auto-negotiation: on
>         MDI-X: off
>         Supports Wake-on: pumbg
>         Wake-on: g
>         Current message level: 0x00000001 (1)
>                                drv
>         Link detected: yes
> # ethtool -a eth0
> Pause parameters for eth0:
> Autonegotiate:  on
> RX:             on
> TX:             on
> 
> >> When I connect directly my laptop to the computer, and run tcpdump on
> >> the laptop, I see:
> >> [...]
> > There seems to be a bug in your laptop's network driver, because pause
> > frames should not be passed to the kernel.  (Usually they are
> > discarded by the MAC.)
> 
> Even in promiscuous mode?
[...]

MAC control frames, which include pause frames, should never be passed
to the host (specified in IEEE 802.3 clause 31.3).  In case the hardware
still delivers them to the host, it's the driver's responsibility to
discard them.  This is the same as for frames that have an error at the
Ethernet level, e.g. bad CRC.

Ben.

-- 
Ben Hutchings
Computers are not intelligent.  They only think they are.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to