bisdn / basebox

A tiny OpenFlow controller for OF-DPA switches.
Mozilla Public License 2.0
45 stars 9 forks source link

How set autoneg for interfaces #427

Closed bidel65 closed 6 months ago

bidel65 commented 6 months ago

Expected Behavior

be same below result for autoneg value for interfaces

client_drivshell command

Accton:~$ sudo client_drivshell ps
Calling ofdpaBcmCommand rpc with command = "ps ". Returned from ofdpaBcmCommand rpc with rc = 0. File logging started to /tmp/.drivshell-output ena/ speed/ link auto STP lrn inter max loop port link duplex scan neg? state pause discrd ops face frame back ge0( 26) up 1G FD SW Yes Forward None FAC SGMII 16356
ge1( 25) up 1G FD SW Yes Forward None FAC SGMII 16356
. . .

and ethtool command

Accton:~$ sudo ethtool port1 Settings for port1: Supported ports: [ ] Supported link modes: Not reported Supported pause frame use: No Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Auto-negotiation: off Port: Twisted Pair PHYAD: 0 Transceiver: internal MDI-X: Unknown Link detected: yes

and we got error for set on with ethtool

Accton:~$ sudo ethtool -s port1 autoneg "on" netlink error: Operation not supported

Actual Behavior

Steps to Reproduce the Problem

Specifications

KanjiMonster commented 6 months ago

Currently autonegotiation related values are not exposed via port interfaces, nor configurable.

Use client_drivshell portstat or client_drivshell port for the actual configuration and state.

You can configure autonegotiation via client_drivshell port:

$ client_drivshell port 1 autoneg=<on|off>

For a full reference of the supported arguments of port, see https://github.com/Broadcom-Network-Switching-Software/OpenBCM/blob/master/sdk-6.5.24/src/appl/diag/esw_diag.c#L846. It also allows you configuring which speeds are advertised, in case you want to limit them.

bidel65 commented 6 months ago

While thank you for your answer, My main question was, despite the autonegotiation, for the interface is ON, why does the kernel display the status off and we can't change it to the On state? I was able to change the status of the interface correctly with client_drivshell port 1 autoneg=<on|off>

KanjiMonster commented 6 months ago

Neither of the chosen abstractions for switch ports (tap devices and knet devices) support configuring or exposing auto-negotiation capabilities.

bidel65 commented 6 months ago

Ok, so what is the usage for changing autoneg with client_drivshell port

jklare commented 6 months ago

The documentation on how to change autoneg with client_drivshell can be found in our docs here: https://docs.bisdn.de/platform_configuration/auto_negotiation.html @bidel65