If you create a bond using modprobe bonding then a file is stored in /proc/net/bonding/ giving the details of the bond. Is there any equivalent file, giving the runner type, for teamd?

2 Answers 2


I haven't been able to answer this question exactly. /etc/sysconfig/network-scripts will often have this information for the bond but I have been able to create situations (using teamd, teamdctl and ip link to set up the bond) in which this isn't the case.

The solution I settled on to find the runner type was running teamdctl dev <team> config dump. However, I didn't manage to find out where the config produced by teamdctl was stored. Finding where that is kept is probably the best answer to this question.


Apparently the team kernel module does not provide a similar /proc/net/ status file as the bonding module does. Instead, you must use the teamdctl command to query the current configuration.

In RHEL and distributions related to it, if you use the default runner type roundrobin, there will be no mention of the runner type in the /etc/sysconfig/network-scripts/ifcfg-<team> file, because the JSON configuration displayed by teamdctl <team> config dump is actually generated dynamically from default values whenever the team is started, so no JSON needs to be stored.

Other distributions that don't have the /etc/sysconfig/ directory will be using some other NetworkManager configuration storage back-end. In that case, check under /etc/NetworkManager/system-connections/: that's the storage location for NetworkManager's distribution-neutral configuration storage.

If your distribution is not using NetworkManager, but instead some other mechanism to store the network configuration (like Ubuntu's /etc/netplan or a minimal Debian installation's /etc/network/interfaces, then you'll need to investigate how they'll handle teaming. (If you have done that, feel free to edit this answer to add information.)

The most user-friendly way to change the runner type is probably using NetworkManager, e.g. with nmcli:

nmcli c mod <team> team.runner activebackup

This will cause the minimized non-default part of the teamd configuration JSON to be stored in TEAM_CONFIG variable of the /etc/sysconfig/network-scripts/ifcfg-<team> file. For example, the command above applied to a team previously created using default values will result in this line getting added to the team's configuration file:

TEAM_CONFIG="{ \"runner\": { \"name\": \"activebackup\" } }"

If you want to check the current state of the team, teamdctl <team> state view should output something that is more human-friendly than JSON.

If you are looking for something that could be easily checked by a monitoring system, then in /sys/devices/virtual/net/<team>/ directory, the operstate file says up if the team as a whole can pass traffic, and down otherwise. In the lower_<interface>/ sub-directories, there are similar files for individual team members. The carrier and/or carrier_changes files might be good candidates for monitoring too. But there does not seem to be anything that would clearly identify the runner type.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .