[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

802.3x pause frames




Hello,

I indend to do some experiments with 802.3x pause frames, but I have yet to find a setup that works. I used a tool that generates pause frames [1] in two setups. First one consists of two virtual machines on a VMWare ESXi 5.5 server connected with each other through a virtual switch. In second setup two physical machines (Desktop PCs) were connected directly by an ethernet cable. The VMs are running Debian Wheezy 32bit while Debian Testing (Jessie) 64bit is installed on both desktop PCs. Below you will find some information on the ethernet adapters and drivers used in the VM [2], the desktop PC with the more up to date hardware [3] and the older machine [4]. I used the following command to activate flow control:

ethtool -A <eth> autoneg off rx on tx on

First of all I noticed some discrepancies between the output of mii-tools or ethtool -a and the attempt to change the flow control settings with the command above. Only the Realtek adapter actually output that it didn't support the operation, the other adapters accepted the settings without any error message.

In both setups pause frames were generated on one machine while a ping was sent simultaneously, as suggested in [1]. While the VM connection was set to 1 Gbps the whole time, I also tested a 10 Mbps setting on the physical connection. Even though the pause frames were always visible in tcpdump at the receiver, I didn't notice any influence whatsoever in the ping results.

Did I miss some important settings that activate pause frame support, or is it possible that none of those different ethernet adapters and modules that were tested support at least the reception of pause frames? If so, are there any adapters that do support them? I'm also not sure how to interpret the output of ethtool. E.g. what does "Advertised pause frame use" mean, exactly?


Many thanks.

Julia Niewiejska


[1] http://www.tux.org/pub/sites/www.zip.com.au/%257Eakpm/linux/#flow-ctrl


----------------------------------------------
[2] Virtual machine on VMWare ESXi 5.5: Debian Wheezy 32bit, kernel 3.2

*** lspci -v ***

02:02.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
        Subsystem: VMware PRO/1000 MT Single Port Adapter
        Physical Slot: 34
        Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 16
        Memory at fd5a0000 (64-bit, non-prefetchable) [size=128K]
        Memory at fdfe0000 (64-bit, non-prefetchable) [size=64K]
        I/O ports at 2040 [size=64]
        [virtual] Expansion ROM at ebb10000 [disabled] [size=64K]
        Capabilities: [dc] Power Management version 2
        Capabilities: [e4] PCI-X non-bridge device
        Kernel driver in use: e1000


*** mii-tool -v ***

eth1: negotiated 1000baseT-FD flow-control, link ok
  product info: Yukon 88E1011 rev 3
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD



*** ethtool eth1 ***

Settings for eth1:
        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
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

*** ethtool -a eth1 ***

Pause parameters for eth1:
Autonegotiate:  on
RX:             off
TX:             off

----------------------------------------------
[3] Desktop PC 1: Debian Jessie 64bit, kernel 3.16

*** lspci -v ***

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
        Subsystem: ASUSTeK Computer Inc. Device 8554
        Flags: bus master, fast devsel, latency 0, IRQ 44
        I/O ports at d000 [size=256]
        Memory at f7100000 (64-bit, non-prefetchable) [size=4K]
        Memory at f2100000 (64-bit, prefetchable) [size=16K]
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [70] Express Endpoint, MSI 01
        Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
        Capabilities: [d0] Vital Product Data
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Virtual Channel
        Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
        Capabilities: [170] Latency Tolerance Reporting
        Kernel driver in use: r8169

*** mii-tool -v ***

eth0: negotiated 1000baseT-FD flow-control, link ok
  product info: vendor 00:07:32, model 0 rev 0
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control

*** ethtool eth0 ***

Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
1000baseT/Half 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: Symmetric Receive-only Advertised auto-negotiation: Yes Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Link partner advertised pause frame use: Symmetric Receive-only Link partner advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: MII PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000033 (51) drv probe ifdown ifup
        Link detected: yes

*** ethtool -a eth0 ***

Pause parameters for eth0:
Cannot get device pause settings: Operation not supported


----------------------------------------------
[4] Desktop PC 2: Debian Jessie 64bit, kernel 3.16

*** lspci -v ***

00:19.0 Ethernet controller: Intel Corporation 82578DM Gigabit Network Connection (rev 05) Subsystem: Hewlett-Packard Company Device 304b Flags: bus master, fast devsel, latency 0, IRQ 43
        Memory at f0400000 (32-bit, non-prefetchable) [size=128K]
        Memory at f0425000 (32-bit, non-prefetchable) [size=4K]
        I/O ports at 2100 [size=32]
        Capabilities: [c8] Power Management version 2
        Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [e0] PCI Advanced Features
        Kernel driver in use: e1000e

*** mii-tool -v ***

eth1: negotiated 1000baseT-FD flow-control, link ok
  product info: vendor 00:13:74, model 4 rev 0
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control

*** ethtool eth1 ***

Settings for eth1:
        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
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 2
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: off (auto)
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

*** ethtool -a eth1 ***

Pause parameters for eth1:
Autonegotiate:  on
RX:             on
TX:             off


Reply to: