Showing why sequence is essential when forcing ethernet inteface settings.
This example shows the hme interface - the behaviour is the same on other interfaces. First check current status (100 Mbit/sec, fdx, autoneg):
hugin> ethchk
-----------------------------------------------------------------------------
status for interface hme0
hme0 link is up, speed is 100 Mbit/sec,full duplex
transceiver_inuse: 0 link_status: 1
link_speed: 1 link_mode: 1
ipg1: 8 ipg2: 4
use_int_xcvr: 0 pace_size: 0
adv_autoneg_cap: 1 adv_100T4_cap: 0
adv_100fdx_cap: 1 adv_100hdx_cap: 1
adv_10fdx_cap: 1 adv_10hdx_cap: 1
autoneg_cap: 1 100T4_cap: 0
100fdx_cap: 1 100hdx_cap: 1
10fdx_cap: 1 10hdx_cap: 1
lp_autoneg_cap: 1 lp_100T4_cap: 0
lp_100fdx_cap: 1 lp_100hdx_cap: 1
lp_10fdx_cap: 1 lp_10hdx_cap: 1
instance: 0 lance_mode: 1
ipg0: 16
-----------------------------------------------------------------------------
Then force the interface twice using the hmeconf script, both times
we get the expected result (hmeconf has been edited to set the interface to 10 Mbit/sec hdx before the second run):
hugin> hmeconf
hmeconf: forcing speed on hme0 to 100 Mbit/sec full-duplex
hugin> ethchk
-----------------------------------------------------------------------------
status for interface hme0
hme0 link is up, speed is 100 Mbit/sec,full duplex
transceiver_inuse: 0 link_status: 1
link_speed: 1 link_mode: 1
ipg1: 8 ipg2: 4
use_int_xcvr: 0 pace_size: 0
adv_autoneg_cap: 0 adv_100T4_cap: 0
adv_100fdx_cap: 1 adv_100hdx_cap: 0
adv_10fdx_cap: 0 adv_10hdx_cap: 0
autoneg_cap: 1 100T4_cap: 0
100fdx_cap: 1 100hdx_cap: 1
10fdx_cap: 1 10hdx_cap: 1
lp_autoneg_cap: 1 lp_100T4_cap: 0
lp_100fdx_cap: 1 lp_100hdx_cap: 1
lp_10fdx_cap: 1 lp_10hdx_cap: 1
instance: 0 lance_mode: 1
ipg0: 16
-----------------------------------------------------------------------------
hugin> hmeconf
hmeconf: forcing speed on hme0 to 10 Mbit/sec half-duplex
hugin> ethchk
-----------------------------------------------------------------------------
status for interface hme0
hme0 link is up, speed is 10 Mbit/sec,half duplex
transceiver_inuse: 0 link_status: 1
link_speed: 0 link_mode: 0
ipg1: 8 ipg2: 4
use_int_xcvr: 0 pace_size: 0
adv_autoneg_cap: 0 adv_100T4_cap: 0
adv_100fdx_cap: 0 adv_100hdx_cap: 0
adv_10fdx_cap: 0 adv_10hdx_cap: 1
autoneg_cap: 1 100T4_cap: 0
100fdx_cap: 1 100hdx_cap: 1
10fdx_cap: 1 10hdx_cap: 1
lp_autoneg_cap: 1 lp_100T4_cap: 0
lp_100fdx_cap: 1 lp_100hdx_cap: 1
lp_10fdx_cap: 1 lp_10hdx_cap: 1
instance: 0 lance_mode: 1
ipg0: 16
-----------------------------------------------------------------------------
Now run the hmenoconf script (same script - but auto negotiation is turned off first instead of last - last is the correct way). We get the wrong result (in fact we get the previous settings):
hugin> hmenoconf
hmenoconf: forcing speed on hme0 to 100 Mbit/sec full-duplex
hugin> ethchk
-----------------------------------------------------------------------------
status for interface hme0
hme0 link is up, speed is 10 Mbit/sec,half duplex
transceiver_inuse: 0 link_status: 1
link_speed: 0 link_mode: 0
ipg1: 8 ipg2: 4
use_int_xcvr: 0 pace_size: 0
adv_autoneg_cap: 0 adv_100T4_cap: 0
adv_100fdx_cap: 1 adv_100hdx_cap: 0
adv_10fdx_cap: 0 adv_10hdx_cap: 0
autoneg_cap: 1 100T4_cap: 0
100fdx_cap: 1 100hdx_cap: 1
10fdx_cap: 1 10hdx_cap: 1
lp_autoneg_cap: 1 lp_100T4_cap: 0
lp_100fdx_cap: 1 lp_100hdx_cap: 1
lp_10fdx_cap: 1 lp_10hdx_cap: 1
instance: 0 lance_mode: 1
ipg0: 16
-----------------------------------------------------------------------------
hugin>
| updated: 20030112 |
created: 20030112 |
|