# SPDX-License-Identifier: GPL-2.0-only
menuconfig NET_TEAM
	tristate "Ethernet team driver support"
	help
	  This allows one to create virtual interfaces that teams together
	  multiple ethernet devices.

	  Team devices can be added using the "ip" command from the
	  iproute2 package:

	  "ip link add link [ address MAC ] [ NAME ] type team"

	  To compile this driver as a module, choose M here: the module
	  will be called team.

if NET_TEAM

config NET_TEAM_MODE_BROADCAST
	tristate "Broadcast mode support"
	depends on NET_TEAM
	help
	  Basic mode where packets are transmitted always by all suitable ports.

	  All added ports are setup to have team's device address.

	  To compile this team mode as a module, choose M here: the module
	  will be called team_mode_broadcast.

config NET_TEAM_MODE_ROUNDROBIN
	tristate "Round-robin mode support"
	depends on NET_TEAM
	help
	  Basic mode where port used for transmitting packets is selected in
	  round-robin fashion using packet counter.

	  All added ports are setup to have team's device address.

	  To compile this team mode as a module, choose M here: the module
	  will be called team_mode_roundrobin.

config NET_TEAM_MODE_RANDOM
	tristate "Random mode support"
	depends on NET_TEAM
	help
	  Basic mode where port used for transmitting packets is selected
	  randomly.

	  All added ports are setup to have team's device address.

	  To compile this team mode as a module, choose M here: the module
	  will be called team_mode_random.

config NET_TEAM_MODE_ACTIVEBACKUP
	tristate "Active-backup mode support"
	depends on NET_TEAM
	help
	  Only one port is active at a time and the rest of ports are used
	  for backup.

	  Mac addresses of ports are not modified. Userspace is responsible
	  to do so.

	  To compile this team mode as a module, choose M here: the module
	  will be called team_mode_activebackup.

config NET_TEAM_MODE_LOADBALANCE
	tristate "Load-balance mode support"
	depends on NET_TEAM
	help
	  This mode provides load balancing functionality. Tx port selection
	  is done using BPF function set up from userspace (bpf_hash_func
	  option)

	  To compile this team mode as a module, choose M here: the module
	  will be called team_mode_loadbalance.

endif # NET_TEAM