Stig Thormodsrud wrote:
> Below is the ethtool output after a disconnect:
> 
> r...@vdut:~# ethtool eth1
> Settings for eth1:
>         Supported ports: [ TP ]
>         Supported link modes:   10baseT/Half 10baseT/Full
>                                 100baseT/Half 100baseT/Full
>                                 1000baseT/Full
>         Supports auto-negotiation: Yes
>         Advertised link modes:  10baseT/Half 10baseT/Full
>                                 100baseT/Half 100baseT/Full
>                                 1000baseT/Full
>         Advertised auto-negotiation: Yes
>         Speed: 1000Mb/s
>         Duplex: Full
>         Port: Twisted Pair
>         PHYAD: 0
>         Transceiver: internal
>         Auto-negotiation: on
>         Supports Wake-on: d
>         Wake-on: d
>         Current message level: 0x00000007 (7)
>         Link detected: yes
> 
> r...@vdut:~# ethtool -i eth1
> driver: e1000
> version: 7.3.21-k3-NAPI
> firmware-version: N/A
> bus-info: 0000:00:11.0
> 
> 
> r...@vdut:~# ethtool -d eth1
> MAC Registers
> -------------
> 0x00000: CTRL (Device control register)  0x00C00249
>       Endian mode (buffers):             little
>       Link reset:                        reset
>       Set link up:                       1
>       Invert Loss-Of-Signal:             no
>       Receive flow control:              disabled
>       Transmit flow control:             disabled
>       VLAN mode:                         disabled
>       Auto speed detect:                 disabled
>       Speed select:                      1000Mb/s
>       Force speed:                       no
>       Force duplex:                      no
> 0x00008: STATUS (Device status register) 0x0000CB83
>       Duplex:                            full
>       Link up:                           link config
>       TBI mode:                          disabled
>       Link speed:                        1000Mb/s
>       Bus type:                          PCI
>       Bus speed:                         66MHz
>       Bus width:                         32-bit
> 0x00100: RCTL (Receive control register) 0x00048002
>       Receiver:                          enabled
>       Store bad packets:                 disabled
>       Unicast promiscuous:               disabled
>       Multicast promiscuous:             disabled
>       Long packet:                       disabled
>       Descriptor minimum threshold size: 1/2
>       Broadcast accept mode:             accept
>       VLAN filter:                       enabled
>       Canonical form indicator:          disabled
>       Discard pause frames:              filtered
>       Pass MAC control frames:           don't pass
>       Receive buffer size:               2048
> 0x02808: RDLEN (Receive desc length)     0x00001000
> 0x02810: RDH   (Receive desc head)       0x0000006B
> 0x02818: RDT   (Receive desc tail)       0x00000069
> 0x02820: RDTR  (Receive delay timer)     0x00000000
> 0x00400: TCTL (Transmit ctrl register)   0x0103F0FA
>       Transmitter:                       enabled
>       Pad short packets:                 enabled
>       Software XOFF Transmission:        disabled
>       Re-transmit on late collision:     enabled
> 0x03808: TDLEN (Transmit desc length)    0x00001000
> 0x03810: TDH   (Transmit desc head)      0x00000000
> 0x03818: TDT   (Transmit desc tail)      0x00000000
> 0x03820: TIDV  (Transmit delay timer)    0x00000008
> PHY type:                                M88
> 

Based on the information provided I would say the problem lies in the 
vmware emulation layer.  Our driver is checking the link status and the 
registers in the emulation layer are reporting that the link is up which 
implies that we should be able to transmit.  Below is the bit I was 
concerned with from the registers as the status register is stating the 
link is up.

  0x00008: STATUS (Device status register) 0x0000CB83
        Duplex:                            full
        Link up:                           link config
        TBI mode:                          disabled
        Link speed:                        1000Mb/s

I suspect that when the vmware emulation layer is disconnected that the 
transmit doesn't actually do anything and so to the driver everything 
appears to be hung.

You might try checking with vmware to see if they can provide you with 
any additional information on their emulation layer since that seems to 
be where things are going wrong.

Thanks,

Alex


------------------------------------------------------------------------------
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel

Reply via email to