BR0= bridges ETH00.4 to ETH01.3001
BR1= bridges ETH00.5 to ETH01.3002
BR2= bridges ETH00.4 to ETH01.3003
BR3= bridges ETH00.5 to ETH01.3004
ETH00 = UPLINK
ETH01 = DONWLINK
VLAN 3001 and 3002 has a common max rate of 2048Kbps, that they share
VLAN 3003 and 3004 has a common max rate of 2048Kbps that they share.
VLAN 3001 and 3002 should be able to borrow capacity from each other but not from VLAN 3003 and 3004 and vice versa.
VLAN 3003 and 3004 should be able to borrow capacity from each other but not from VLAN 3001 and 3002 and vice versa.
My goal is to first limit the maximum speed a group of vlans (3001,3002) so that they can´t consume more then their maximum alocated speed (2048Kbps), but they should be able to borrow from each other within the same group.
Second is to do som internal priorisation within that group, but that is later on.
If I add a qdisc to br0, it not possible to borrow capacity from br1, so thats not a solution. If I add a qdisc to ETH01, how do i classify on vlans?
Well… I haven’t tried this particular scenario, so I can not claim to know it works, but essentially, you are looking for a complex solution that requires a bit of rethink on how you are allocating you ‘connections’.
Playing with the QoS in routed mode on my implementation, it seems the QoS is fairly simple to implement – as long as you aggregate to a connection to apply it to. It is simple and limited in it’s inteligence – but that makes it work better.
This is going to probably cost some processing power and add a bit of latency, but essentially, I think you need to configure a couple of additional interfaces:
Add BR4 and BR5 as the next step in the communications:
BR4 would have all traffic forwarded from BR0 and BR1
BR5 woudl have all traffic forwarded from BR2 and BR3
Apply QoS rules to the BR4 / BR5 connections.
It is somewhat nasty in the implementation, but it should solve the problem.