^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) menuconfig NET_TEAM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) tristate "Ethernet team driver support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) This allows one to create virtual interfaces that teams together
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) multiple ethernet devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Team devices can be added using the "ip" command from the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) iproute2 package:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) "ip link add link [ address MAC ] [ NAME ] type team"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) To compile this driver as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) will be called team.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) if NET_TEAM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) config NET_TEAM_MODE_BROADCAST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) tristate "Broadcast mode support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) depends on NET_TEAM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) Basic mode where packets are transmitted always by all suitable ports.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) All added ports are setup to have team's device address.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) To compile this team mode as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) will be called team_mode_broadcast.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) config NET_TEAM_MODE_ROUNDROBIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) tristate "Round-robin mode support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) depends on NET_TEAM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) Basic mode where port used for transmitting packets is selected in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) round-robin fashion using packet counter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) All added ports are setup to have team's device address.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) To compile this team mode as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) will be called team_mode_roundrobin.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) config NET_TEAM_MODE_RANDOM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) tristate "Random mode support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) depends on NET_TEAM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) Basic mode where port used for transmitting packets is selected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) randomly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) All added ports are setup to have team's device address.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) To compile this team mode as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) will be called team_mode_random.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) config NET_TEAM_MODE_ACTIVEBACKUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) tristate "Active-backup mode support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) depends on NET_TEAM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) Only one port is active at a time and the rest of ports are used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) for backup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) Mac addresses of ports are not modified. Userspace is responsible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) to do so.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) To compile this team mode as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) will be called team_mode_activebackup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) config NET_TEAM_MODE_LOADBALANCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) tristate "Load-balance mode support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) depends on NET_TEAM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) This mode provides load balancing functionality. Tx port selection
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) is done using BPF function set up from userspace (bpf_hash_func
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) option)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) To compile this team mode as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) will be called team_mode_loadbalance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) endif # NET_TEAM