Since teaming is going to be deprecated, Red hat suggested to use bonding instead, however bonding in the past had the limitation of being able to bond two network cards only, which was not the case for teaming (you could add for example add 4 NICs to team and get the max throughput; is this still the case for bonding? I think since it is going to replace teaming, it should not, however I could not find any document or source about it.
How does that limitation show in practice?
# ip -s li | grep -A 5 "master bond0" | sed "s/00:..:..:..:..:../XXXX/g"
3: ens7f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether XXXX brd ff:ff:ff:ff:ff:ff permaddr XXXX
RX: bytes packets errors dropped missed mcast
433420537784 405488069 0 1 0 1513476
TX: bytes packets errors dropped carrier collsns
5058085 41794 0 0 0 0
--
7: ens6f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether XXXX brd ff:ff:ff:ff:ff:ff permaddr XXXX
RX: bytes packets errors dropped missed mcast
434266394957 406818151 0 1 0 1876096
TX: bytes packets errors dropped carrier collsns
1669210194383 1164062836 0 0 0 0
--
9: ens5f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether XXXX brd ff:ff:ff:ff:ff:ff permaddr XXXX
RX: bytes packets errors dropped missed mcast
450294627579 559081953 0 1 0 1644275
TX: bytes packets errors dropped carrier collsns
5219467 46664 0 0 0 0
--
11: enp8s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether XXXX brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped missed mcast
434527789211 406836385 0 0 0 1654723
TX: bytes packets errors dropped carrier collsns
22916959889 306034610 0 0 0 0