On Wed, 2007-08-15 at 10:27 -0400, sowmini.varadhan at sun.com wrote:
> On (08/14/07 18:20), Peter Memishian wrote:
> > 
> >     * I'd expect "autoneg" to be no/yes rather than 0/1.  Not sure
> >       what the numeric values for pause and rem_fault mean, but I'd
> >       prefer words there too, if possible.
> 
> Raymond's reworking the pause definition, but..


rem_fault has only three values:

none
we-detected-and-sent-a-remote-fault
we-received-remove-fault-from-peer

Generally either of the values other than none indicates that you can't
believe anything about the other bits.

If it is detected, I'd just mark the whole row "faulted" or somesuch,
and rely on FMA to offline the driver. :-)

I'm a little uncomfortable with separate columns for speed and duplex.
While most drivers implement both duplex modes for all speeds, the specs
do not require this.  And today its easy to arrange using ndd to
advertise something like "all modes except 10-Half".

Also, the specs for 10G do not support half duplex for 10GBase-T.

        -- Garrett
> 
> my understanding of the ieee802.3(5) man page for rem_fault 
> for adv/peeradv rows a value of "i" maps to mii_rem_fault[i] where
> 
>     static char *mii_rem_fault[] = {
>             "good", "offline", "link fail", "autoneg fail"
>     };
> 
> 
> for capable, i can be 0/1 indicating no/yes (not capable/capable)
> 
> current value of rem_fault is "good" iff both adv/peeradv rows are "good",
> "possibly bad" otherwise. 
> 
> so if my understanding is right, then the output of dladm show-ether
> now comes out to (some additional bug fixes were encountered for the 
> SPEED column since yesterday)
> 
> LINK            PARAM     STATE AUTONEG        SPEED          DUPLEX PAUSE    
>    REM_FAULT
> bge0            current      up      on           1G            full     1    
>         good
>                 capable      --      on  1G,100M,10M       full,half     1    
>          yes
>                 adv          --      on           1G       full,half     1    
>         good
>                 peeradv      --      on           1G            full     1    
>         good
> bge1            current      up      on           1G            full     1    
>         good
>                 capable      --      on  1G,100M,10M       full,half     1    
>          yes
>                 adv          --      on           1G            full     1    
>         good
>                 peeradv      --      on           1G            full     1    
>         good
> 
> And, after doing something like
> 
>    # ./dladm set-linkprop -p adv_autoneg_cap=0 bge1
> 
> we'd have
> 
> #  ./dladm show-ether -x                        
> LINK            PARAM     STATE AUTONEG        SPEED          DUPLEX PAUSE    
>    REM_FAULT
> bge0            current      up      on           1G            full     1    
>         good
>                 capable      --      on  1G,100M,10M       full,half     1    
>          yes
>                 adv          --      on           1G       full,half     1    
>         good
>                 peeradv      --      on           1G            full     1    
>         good
> bge1            current      up      on           1G            full     1    
>         good
>                 capable      --      on  1G,100M,10M       full,half     1    
>          yes
>                 adv          --     off           1G            full     1    
>         good
>                 peeradv      --      on           1G            full     1    
>         good
> 
> does that make sense?
> 
> --Sowmini
> _______________________________________________
> brussels-dev mailing list
> brussels-dev at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/brussels-dev


Reply via email to