Enabling auto-negotiation

To enable auto-negotiation on ports use the client_drivshell tool. To enable it on e.g. the first switch port simply run:

client_drivshell port xe0 AN=on

Use the following command to print the current port configuration:

client_drivshell ports

The port xe0 (port 1) should now have auto-negotiation enabled (YES) and since AN=off is the default, all other ports should have set it to NO. In the example below, a 1G active copper SFP is attached to port 1 and the speed has been set accordingly. All other ports have set the speed to 10G by default.

$ client_drivshell ports
          ena/    speed/ link auto    STP                  lrn  inter   max  loop
    port  link    duplex scan neg?   state   pause  discrd ops   face frame  back
 xe0(  1)  up      1G  FD   SW  Yes  Forward          None    F   GMII  9412
 xe1(  2)  up     10G  FD   SW  No   Forward          None    F    SFI  9412

Disable auto-negotiation

To disable auto-negotiation run the following command:

client_drivshell port xe0 AN=off SP=10000

The parameter SP takes the speed you want to configure, in the example above it is 10G. For information how to verify your configuration, please see the section above.

Persistent port configuration

Switch port configuration can be persisted across restarts. In order to turn off auto-negotiation for the ports xe0 and xe1 one would run

client_drivshell port xe0 AN=off SP=10000
client_drivshell port xe1 AN=off SP=10000

To make the commands persist one would add the following lines to the file /etc/ofdpa/rc.soc

port xe0 AN=off SP=10000
port xe1 AN=off SP=10000
exit

Note the absence of client_drivshell and the single exit statement at the end.

Auto-negotiation and bonded interfaces

Auto-negotiation is a property of physical ports, while bond interfaces are logical ports. So any auto-negotiation configuration needs to be set for the individual bond members.