-
Notifications
You must be signed in to change notification settings - Fork 63
Open
Description
We are using teamd on RockyLinux 8.10 and on some nodes we see link speed -1 for the first interface of an lacp team:
$ teamdctl team0 state dump | grep -e ens -e speed
"ens1f0": {
"ifname": "ens1f0"
"speed": -1,
"ens1f1": {
"ifname": "ens1f1"
"speed": 10000,
Full output:
$ teamdctl team0 state dump
{
"ports": {
"ens1f0": {
"ifinfo": {
"dev_addr": "aa:bb:cc:dd:ee:ff",
"dev_addr_len": 6,
"ifindex": 6,
"ifname": "ens1f0"
},
"link": {
"duplex": "full",
"speed": -1,
"up": true
},
"link_watches": {
"list": {
"link_watch_0": {
"delay_down": 0,
"delay_up": 0,
"down_count": 0,
"name": "ethtool",
"up": true
}
},
"up": true
},
"runner": {
"actor_lacpdu_info": {
"key": 0,
"port": 6,
"port_priority": 255,
"state": 63,
"system": "aa:bb:cc:dd:ee:ff",
"system_priority": 65535
},
"aggregator": {
"id": 6,
"selected": true
},
"key": 0,
"partner_lacpdu_info": {
"key": 19,
"port": 22,
"port_priority": 32768,
"state": 61,
"system": "fa:fb:fc:fd:fe:ff",
"system_priority": 32768
},
"prio": 255,
"selected": true,
"state": "current"
}
},
"ens1f1": {
"ifinfo": {
"dev_addr": "aa:bb:cc:dd:ee:ff",
"dev_addr_len": 6,
"ifindex": 7,
"ifname": "ens1f1"
},
"link": {
"duplex": "full",
"speed": 10000,
"up": true
},
"link_watches": {
"list": {
"link_watch_0": {
"delay_down": 0,
"delay_up": 0,
"down_count": 1,
"name": "ethtool",
"up": true
}
},
"up": true
},
"runner": {
"actor_lacpdu_info": {
"key": 0,
"port": 7,
"port_priority": 255,
"state": 63,
"system": "aa:bb:cc:dd:ee:ff",
"system_priority": 65535
},
"aggregator": {
"id": 6,
"selected": true
},
"key": 0,
"partner_lacpdu_info": {
"key": 19,
"port": 128,
"port_priority": 32768,
"state": 61,
"system": "fa:fb:fc:fd:fe:ff",
"system_priority": 32768
},
"prio": 255,
"selected": true,
"state": "current"
}
}
},
"runner": {
"active": true,
"fast_rate": true,
"select_policy": "lacp_prio",
"sys_prio": 65535
},
"setup": {
"daemonized": false,
"dbus_enabled": true,
"debug_level": 0,
"kernel_team_mode_name": "loadbalance",
"pid": 2772,
"pid_file": "/var/run/teamd/team0.pid",
"runner_name": "lacp",
"zmq_enabled": false
},
"team_device": {
"ifinfo": {
"dev_addr": "aa:bb:cc:dd:ee:ff",
"dev_addr_len": 6,
"ifindex": 12,
"ifname": "team0"
}
}
}
(MACs obfuscated).
The speed for the first interface ens1f0 is shown as -1. We can also see that teamnl shows weird values:
$ teamnl team0 ports
7: ens1f1: up 10000Mbit FD
6: ens1f0: up 4294967295Mbit FD
BUT: ethtool looks fine:
ethtool ens1f0
Settings for ens1f0:
Supported ports: [ FIBRE ]
Supported link modes: 10000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Auto-negotiation: off
Port: FIBRE
PHYAD: 0
Transceiver: internal
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
It looks like ethtool reports wrong values or they get parsed incorrectly:
$ teamdctl team0 state view -v | grep -e ethtool -e ens
ens1f0
ethtool link: -1mbit/fullduplex/up
name: ethtool
ens1f1
ethtool link: 10000mbit/fullduplex/up
name: ethtool
Full output:
$ teamdctl team0 state view -v
setup:
runner: lacp
kernel team mode: loadbalance
D-BUS enabled: yes
ZeroMQ enabled: no
debug level: 0
daemonized: no
PID: 2772
PID file: /var/run/teamd/team0.pid
ports:
ens1f0
ifindex: 6
addr: aa:bb:cc:dd:ee:ff
ethtool link: -1mbit/fullduplex/up
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
link up delay: 0
link down delay: 0
runner:
aggregator ID: 6, Selected
selected: yes
state: current
key: 0
priority: 255
actor LACPDU info:
system priority: 65535
system: aa:bb:cc:dd:ee:ff
key: 0
port_priority: 255
port: 6
state: 0x3f
partner LACPDU info:
system priority: 32768
system: fa:fb:fc:fd:fe:ff
key: 19
port_priority: 32768
port: 22
state: 0x3d
Versions:
$ rpm -qf `which teamdctl`
teamd-1.31-4.el8.x86_64
$rpm -qf `which teamnl`
libteam-1.31-4.el8.x86_64
$ rpm -qf `which teamd`
teamd-1.31-4.el8.x86_64
Is this expected behaviour in some situations? Or is it bug?
Metadata
Metadata
Assignees
Labels
No labels