Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    CBQ and bandwidth borrowing (with parent interface switched to 'not borrow').

    Scheduled Pinned Locked Moved Traffic Shaping
    1 Posts 1 Posters 184 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MrF
      last edited by MrF

      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:

      1. DNS traffic and ping will be sent to qHighPrio
      2. all the bulk traffic !localnetwork will be assigned to the ACK and qLowPrio
      3. all the other traffic !localnetwork will be assigned to the ACK and Default queue
      4. all the UDP traffic will be assigned to the relevent queue (without ACK)
      5. 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...

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.