ixgbe: Question about Flow Control on 10G
Subsystems (2)
Hi
I have a question about the ixgbe driver's handling of 'ethtool -a ethX' when the NIC is using fibre.
Specifically I don't understand the code introduced by this commit:
commit 73d80953dfd1d5a92948005798c857c311c2834b
Author: Don Skidmore <[email protected]>
Date: Wed Jul 31 02:19:24 2013 +0000
Subject: ixgbe: fix fc autoneg ethtool reporting.
The function introduced the function:
ixgbe_device_supports_autoneg_fc()
which gets called by ixgbe_get_pauseparam()/ixgbe_set_pauseparam().
specifically there is a case in ixgbe_device_supports_autoneg_fc()
case ixgbe_media_type_fiber_qsfp:
case ixgbe_media_type_fiber:
hw->mac.ops.check_link(hw, &speed, &link_up, false);
/* if link is down, assume supported */
if (link_up)
supported = speed == IXGBE_LINK_SPEED_1GB_FULL ?
true : false;If link_up=1 then why is supported only true for a speed=IXGBE_LINK_SPEED_1GB_FULL ?
Why is Flow Control not supported for IXGBE_LINK_SPEED_10GB_FULL ?
I have search through the 82599 spec, but I can't find a reason. Please can anyone help me understand ?
Thanks
dom
Quoted 39 lines
-----Original Message-----
From: [email protected] [mailto:netdev- [email protected]] On Behalf Of dom
Sent: Tuesday, October 14, 2014 12:01 PM
To: Skidmore, Donald C; [email protected]
Subject: ixgbe: Question about Flow Control on 10GHi
I have a question about the ixgbe driver's handling of 'ethtool -a ethX'
when the NIC is using fibre.Specifically I don't understand the code introduced by this commit:
commit
73d80953dfd1d5a92948005798c857c311c2834b
Author: Don Skidmore <[email protected]>
Date: Wed Jul 31 02:19:24 2013 +0000
Subject: ixgbe: fix fc autoneg ethtool reporting.The function introduced the function:
ixgbe_device_supports_autoneg_fc()which gets called by ixgbe_get_pauseparam()/ixgbe_set_pauseparam().
specifically there is a case in
ixgbe_device_supports_autoneg_fc()case ixgbe_media_type_fiber_qsfp: case ixgbe_media_type_fiber: hw->mac.ops.check_link(hw, &speed, &link_up, false); /* if link is down, assume supported */ if (link_up) supported = speed == IXGBE_LINK_SPEED_1GB_FULL ? true : false;
Quoted 4 lines
If link_up=1 then why is supported only true for a speed=IXGBE_LINK_SPEED_1GB_FULL ?
Why is Flow Control not supported for
IXGBE_LINK_SPEED_10GB_FULL?
For SFP modules (media_type_fiber) flow control autoneg is not supported at 10gig. You can still set flow control manually to enabled/disabled, just not autoneg.
Thanks,
Emil
Quoted 39 lines · Emil S
Quoted 39 lines
-----Original Message-----
From: [email protected] [mailto:netdev- [email protected]] On Behalf Of dom
Sent: Tuesday, October 14, 2014 12:01 PM
To: Skidmore, Donald C; [email protected]
Subject: ixgbe: Question about Flow Control on 10GHi
I have a question about the ixgbe driver's handling of 'ethtool -a ethX'
when the NIC is using fibre.Specifically I don't understand the code introduced by this commit:
commit
73d80953dfd1d5a92948005798c857c311c2834b
Author: Don Skidmore <[email protected]>
Date: Wed Jul 31 02:19:24 2013 +0000
Subject: ixgbe: fix fc autoneg ethtool reporting.The function introduced the function:
ixgbe_device_supports_autoneg_fc()which gets called by ixgbe_get_pauseparam()/ixgbe_set_pauseparam().
specifically there is a case in
ixgbe_device_supports_autoneg_fc()case ixgbe_media_type_fiber_qsfp: case ixgbe_media_type_fiber: hw->mac.ops.check_link(hw, &speed, &link_up, false); /* if link is down, assume supported */ if (link_up) supported = speed == IXGBE_LINK_SPEED_1GB_FULL ? true : false;
Quoted 8 lines
Quoted 4 lines
If link_up=1 then why is supported only true for a speed=IXGBE_LINK_SPEED_1GB_FULL ?
Why is Flow Control not supported for
IXGBE_LINK_SPEED_10GB_FULL?For SFP modules (
media_type_fiber) flow control autoneg is not supported at 10gig. You can still set flow control manually to enabled/disabled, just not autoneg.Thanks,
Emil
Hi Emil
Thank you for the quick answer. I have a one follow-up question if I may...
We noticed that back in 3.2.9 (before 73d80953dfd basically) the behaviour was different for 10G fibre. i.e. autonegotiate showed 'on'.
# ethtool -a eth1 Pause parameters for eth1: Autonegotiate: on RX: on TX: on
The code:
if (hw->fc.disable_fc_autoneg ||
(hw->fc.current_mode == ixgbe_fc_none))
pause->autoneg = 0;
else
pause->autoneg = 1;So I assume this old output from 'ethtool -a' for autogen was just wrong, is that correct ?
[I'm asking cos I _know_ my h/w collegues are going to ask why the change.]
Thanks again
dom
Quoted 71 lines
-----Original Message-----
From: dom [mailto:[email protected]]
Sent: Wednesday, October 15, 2014 11:57 AM
To: Tantilov, Emil S; Skidmore, Donald C; [email protected]
Subject: Re: ixgbe: Question about Flow Control on 10GQuoted 42 lines · Emil S
Quoted 42 lines
-----Original Message-----
From: [email protected] [mailto:netdev- [email protected]] On Behalf Of dom
Sent: Tuesday, October 14, 2014 12:01 PM
To: Skidmore, Donald C; [email protected]
Subject: ixgbe: Question about Flow Control on 10GHi
I have a question about the ixgbe driver's handling of 'ethtool -a ethX'
when the NIC is using fibre.Specifically I don't understand the code introduced by this commit:
commit
73d80953dfd1d5a92948005798c857c311c2834b
Author: Don Skidmore <[email protected]>
Date: Wed Jul 31 02:19:24 2013 +0000
Subject: ixgbe: fix fc autoneg ethtool reporting.The function introduced the function:
ixgbe_device_supports_autoneg_fc()which gets called by ixgbe_get_pauseparam()/ixgbe_set_pauseparam().
specifically there is a case in
ixgbe_device_supports_autoneg_fc()case ixgbe_media_type_fiber_qsfp: case ixgbe_media_type_fiber: hw->mac.ops.check_link(hw, &speed, &link_up, false); /* if link is down, assume supported */ if (link_up) supported = speed == IXGBE_LINK_SPEED_1GB_FULL ? true : false;If link_up=1 then why is supported only true for a speed=IXGBE_LINK_SPEED_1GB_FULL ?
Quoted 6 lines
Quoted 1 line
Why is Flow Control not supported for
IXGBE_LINK_SPEED_10GB_FULL?For SFP modules (
media_type_fiber) flow control autoneg is not supported at 10gig. You can still set flow control manually to enabled/disabled, just not autoneg.Thanks,
EmilHi Emil
Thank you for the quick answer. I have a one follow-up question if I may...
We noticed that back in 3.2.9 (before
73d80953dfdbasically) the behaviour was different for 10G fibre. i.e. autonegotiate showed 'on'.# ethtool -a eth1 Pause parameters for eth1: Autonegotiate: on RX: on TX: onThe code:
Quoted 8 lines
if (hw->fc.disable_fc_autoneg || (hw->fc.current_mode == ixgbe_fc_none)) pause->autoneg = 0; else pause->autoneg = 1;So I assume this old output from 'ethtool -a' for autogen was just wrong, is that correct ?
Correct.
Thanks,
Emil
Quoted 5 lines
[I'm asking cos I _know_ my h/w collegues are going to ask why the change.]
Thanks again
dom