LAN/WAN port bonding types

Today it appears that peplink devices only support 802.3ad Dynamic link aggregation (LACP), which only works if the other end of the dual connection is on one switch.

We are just upgrading to dual 100g switches, which are trunked to each other with a 4x100g link for 400g.
All servers have balance-XOR bonds between different 100g nics to each switch.
i.e.
nic1 port 1 - BOND1 to switch A
nic 1 port 2 - BOND2 to switch A
nic 2 port 1 - BOND1 to switch B
nic 2 port 2 - BOND2 to switch B
Where BOND1 is for CEPH distributed file system and BOND2 is for proxmox cluster network.
so - I get both load balancing and failover. I can lose a nic, cable, switch and everything keeps working.
I am installing new HA pair of SDX-PRO routers. Each will have two data center router ports from different chassis
BUT - if I connect each SDX to both switches I cannot use any link aggregation, and I create a loop
Since these protocols are built into Linux, which is the underlying OS of the routers, I would hope it is easy to add the other 6 bond types, although some of them are pretty rarely used. But what I really want is balance-xor and active-backup passive:
Active-backup (active-backup)

Only one NIC slave in the bond is active. A different slave becomes active if, and only if, the active slave fails. The single logical bonded interface’s MAC address is externally visible on only one NIC (port) to avoid distortion in the network switch. This mode provides fault tolerance.

XOR (balance-xor)

Transmit network packets based on a hash of the packet’s source and destination. The default algorithm only considers MAC addresses ( layer2 ). Newer versions allow selection of additional policies based on IP addresses ( layer2+3 ) and TCP/UDP port numbers ( layer3+4 ). This selects the same NIC slave for each destination MAC address, IP address, or IP address and port combination, respectively. This mode provides load balancing and fault tolerance.

2020 data center plan.pdf (105.7 KB)

As a workaround can your switches support any kind of stacking feature that would allow them to appear as one switch from a network perspective?

Cisco VSS, VSW, Juniper VC etc.

I have used all of these in the above situation to allow the use of MC-LAGG to devices like upstream routers and firewalls where LACP is used.

Do you also have to do this at layer 2 or could you perhaps be a bit more inteligent in how you distrubute traffic, turning up OSPF between all your devices and allowing some ECMP routing perhaps (although I’m not 100% certain of how the Peplink would deal with this either for what it is worth).