CBQ and bandwidth borrowing (with parent interface switched to 'not borrow').
-
Hi all
I'm facing a situation that demands you experts to tell me if I'm banging my head in the right way.
This is the scenario:
I'm using ALTQ to shape 2 interface, LAN and WAN.My WAN is 550 (burst) Download, 55 (burst) Upload
I've created few queues, as follow:
WAN (48 Mbit, CBQ)
qInternet (48 Mbit, ECN and borrow)- qACK (20% bandwidth, ECN and borrow)
- qHighPrio (1% bandwidth, ECN and borrow)
- qDefault (49% bandwidth, default queue, ECN and borrow)
- qLowPrio (30% bandwitdh, ECN, no borrow)
LAN (1 Gbit, CBQ)
qInternet (495 Mbit, priority 1, ECN and borrow)- qACK (20% bandwidth, priority 7, ECN and borrow)
- qHighPrio (1% bandwidth, priority 6, ECN and borrow)
- qDefault (49% bandwidth, default, priority 5, ECN and borrow)
- qLowPrio (30% bandwitdh, priority 0, ECN, no borrow)
qLink (500 Mbit, priority 5, ECN, default, borrow)
Please note that qInternet and qLink are at the same level (LAN1/qInternet and LAN1/qLink)
I've created all the relevant floating rules ie:
- DNS traffic and ping will be sent to qHighPrio
- all the bulk traffic !localnetwork will be assigned to the ACK and qLowPrio
- all the other traffic !localnetwork will be assigned to the ACK and Default queue
- all the UDP traffic will be assigned to the relevent queue (without ACK)
- all the traffic for the 'localnetwork' will be assigned to ACK and qLink (and the UDP traffic, to qLink and no ACK). This will give me wire speed (1GBit) when I'm doing 'localtraffic' ie talking to my NAS (which is on another internal network)
The problem with this configuration is that if I set 'Borrow' to LAN/qInternet, all the queues will get bandwidth that is more than the one available on the WAN interface -50 Mbit- (as LAN is actually 1 Gbit) with the consequence of a high bufferbloat -I think the packets are still prioritized but there's no shaping at all)
If I remove the check in 'borrow' for LAN/qInternet -while leaving 'borrow' to all the queues- all is working and the queues are borrowing the 'right amount' and I got an A+.
Now, technically speaking this shouldn't be possible as the graphical interface gives you an error if you try to set 'borrow' to a queue and it's parent interface is set to 'no borrow'.
I did manage to 'unset borrow' setting borrow to all and then uncheck borrow for LAN/qInternet.
The question is; is it possible to set to a queue to 'borrow' while it's parent interface is set to 'no borrow? If yes, is this a bug within the pfSense user interface?
Thanks to everyone that wish to shed some lights...