RE: [E1000-devel] igb: question regarding auto-negotiation
-Original Message- From: Dominic Curran [mailto:dominic.cur...@citrix.com] Sent: Thursday, August 04, 2016 4:02 PM To: Alexander Duyck <alexander.du...@gmail.com>; e1000-de...@lists.sourceforge.net Cc: Netdev <netdev@vger.kernel.org> Subject: Re: [E1000-devel] igb: question regarding auto-negotiation On 07/29/2016 09:35 PM, Alexander Duyck wrote: > On Fri, Jul 29, 2016 at 4:37 PM, Dominic Curran > <dominic.cur...@citrix.com> wrote: >> Hi >> >> This question refers to igb codebase. >> I have a question regarding the setting of hw->mac.autoneg. >> >> Is it correct to say for igb driver: >> "if speed=1000 and duplex=FULL and media_type=COPPER then only >> auto-negotiate enable is supported" >> >> i.e. >> with these settings (speed/duplex/media_type) then auto-negotiate can >> _not_ be disabled. Correct ? >> >> I say this for two reasons: >> 1) The code in igb_set_spd_dplx() seems to indicate it: >> >> case SPEED_1000 + DUPLEX_FULL: >> mac->autoneg = 1; >> adapter->hw.phy.autoneg_advertised = ADVERTISE_1000_FULL; >> break; >> >> 2) Instrumenting the driver, I always see the autoneg code in >> e1000_check_for_copper_link_generic() get called after an igb_reset(). >> >> >> Have i understood correctly ? >> >> thanks in advance >> dom > If you are using copper then you are likely referring to 1000Base-T > correct? If so then autonegotation is a requirement. > > Here is the wikipedia URL that refers to this: > https://en.wikipedia.org/wiki/Gigabit_Ethernet#1000BASE-T > > Hope this helps to clear it up. > > Thanks. > > - Alex Thanks for reply. I read the wiki link and a bunch of other links besides. So I have a follow-up question: You're right I am using copper and 1000Base-T, and as you say auto-neg is then requirement. So why is it possible with the igb driver to set auto-neg to OFF ? e.g. # ethtool -a eth6 Pause parameters for eth6: Autonegotiate: on RX: on TX: on Now turn it OFF: # ethtool -A eth6 autoneg off # ethtool -a eth6 Pause parameters for eth6: Autonegotiate: off RX: on TX: on But added debug to the driver I _know_ that it is still auto-negotiating, and printing current settings indicates 'Auto-negotiatiate' is on... # ethtool eth6 Settings for eth6: 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: 1 Transceiver: internal Auto-negotiation: on <<<< MDI-X: on Supports Wake-on: pumbg Wake-on: d Current message level: 0x0007 (7) drv probe link Link detected: yes So I dont understand the difference between these two values ?? Can anyone help please ? Thanks dom Dom, ethtool -A is used to set flow-control parameters, not speed/duplex/autoneg. Speed/duplex parameters are set with ethtool -s. man ethtool should help explain the difference. I hope this helps, Jeff -- ___ E1000-devel mailing list e1000-de...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel Ethernet, visit http://communities.intel.com/community/wired
Re: igb: question regarding auto-negotiation
On 07/29/2016 09:35 PM, Alexander Duyck wrote: On Fri, Jul 29, 2016 at 4:37 PM, Dominic Curranwrote: Hi This question refers to igb codebase. I have a question regarding the setting of hw->mac.autoneg. Is it correct to say for igb driver: "if speed=1000 and duplex=FULL and media_type=COPPER then only auto-negotiate enable is supported" i.e. with these settings (speed/duplex/media_type) then auto-negotiate can _not_ be disabled. Correct ? I say this for two reasons: 1) The code in igb_set_spd_dplx() seems to indicate it: case SPEED_1000 + DUPLEX_FULL: mac->autoneg = 1; adapter->hw.phy.autoneg_advertised = ADVERTISE_1000_FULL; break; 2) Instrumenting the driver, I always see the autoneg code in e1000_check_for_copper_link_generic() get called after an igb_reset(). Have i understood correctly ? thanks in advance dom If you are using copper then you are likely referring to 1000Base-T correct? If so then autonegotation is a requirement. Here is the wikipedia URL that refers to this: https://en.wikipedia.org/wiki/Gigabit_Ethernet#1000BASE-T Hope this helps to clear it up. Thanks. - Alex Thanks for reply. I read the wiki link and a bunch of other links besides. So I have a follow-up question: You're right I am using copper and 1000Base-T, and as you say auto-neg is then requirement. So why is it possible with the igb driver to set auto-neg to OFF ? e.g. # ethtool -a eth6 Pause parameters for eth6: Autonegotiate: on RX: on TX: on Now turn it OFF: # ethtool -A eth6 autoneg off # ethtool -a eth6 Pause parameters for eth6: Autonegotiate: off RX: on TX: on But added debug to the driver I _know_ that it is still auto-negotiating, and printing current settings indicates 'Auto-negotiatiate' is on... # ethtool eth6 Settings for eth6: 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: 1 Transceiver: internal Auto-negotiation: on MDI-X: on Supports Wake-on: pumbg Wake-on: d Current message level: 0x0007 (7) drv probe link Link detected: yes So I dont understand the difference between these two values ?? Can anyone help please ? Thanks dom
Re: igb: question regarding auto-negotiation
On Fri, Jul 29, 2016 at 4:37 PM, Dominic Curranwrote: > Hi > > This question refers to igb codebase. > I have a question regarding the setting of hw->mac.autoneg. > > Is it correct to say for igb driver: >"if speed=1000 and duplex=FULL and media_type=COPPER then only > auto-negotiate enable is supported" > > i.e. >with these settings (speed/duplex/media_type) then auto-negotiate can > _not_ be disabled. Correct ? > > I say this for two reasons: > 1) The code in igb_set_spd_dplx() seems to indicate it: > >case SPEED_1000 + DUPLEX_FULL: > mac->autoneg = 1; > adapter->hw.phy.autoneg_advertised = ADVERTISE_1000_FULL; > break; > > 2) Instrumenting the driver, I always see the autoneg code in > e1000_check_for_copper_link_generic() get called after an igb_reset(). > > > Have i understood correctly ? > > thanks in advance > dom If you are using copper then you are likely referring to 1000Base-T correct? If so then autonegotation is a requirement. Here is the wikipedia URL that refers to this: https://en.wikipedia.org/wiki/Gigabit_Ethernet#1000BASE-T Hope this helps to clear it up. Thanks. - Alex
igb: question regarding auto-negotiation
Hi This question refers to igb codebase. I have a question regarding the setting of hw->mac.autoneg. Is it correct to say for igb driver: "if speed=1000 and duplex=FULL and media_type=COPPER then only auto-negotiate enable is supported" i.e. with these settings (speed/duplex/media_type) then auto-negotiate can _not_ be disabled. Correct ? I say this for two reasons: 1) The code in igb_set_spd_dplx() seems to indicate it: case SPEED_1000 + DUPLEX_FULL: mac->autoneg = 1; adapter->hw.phy.autoneg_advertised = ADVERTISE_1000_FULL; break; 2) Instrumenting the driver, I always see the autoneg code in e1000_check_for_copper_link_generic() get called after an igb_reset(). Have i understood correctly ? thanks in advance dom