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

    HFSC hierarchical depth limit?

    Scheduled Pinned Locked Moved Traffic Shaping
    5 Posts 2 Posters 1.2k 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.
    • H
      Harvy66
      last edited by

      I had/have this setup

      Interface 1Gb
      –qInternet Upper: 48Mb
      ----qHigh LS: 20%
      ------qGames ...
      ------qVoIP ...
      ------qBlahBlahBlah ...
      ----qBulk LS: 80%
      –----qNormal LS: 80%
      --------qWeb ...
      --------qVPN ...
      --------qBlahBlahBlah ...
      ------qLow LS: 20%
      –------qDefault LS 30%
      –------qP2P LS 30%
      --------qUnknownUDP LS 30%

      I haven't  tried all of the other queues, but qDefault was maxing out 38Mb, which is only 80% of the 48Mb. I changed qBulk to 90%, and qDefault is now maxing out at 44Mb, which is 90%. qDefault seems to be "borrowing" bandwidth up to 2 parent queues deep, but is not borrowing from qHigh. I assume I need to collapse my hierarchy at least one level?

      Now that I'm thinking of it, I should have just moved qDefault directly under qBulk. I'll try that when I get home.

      Thanks  :-)

      1 Reply Last reply Reply Quote 0
      • H
        Harvy66
        last edited by

        Yep, moved qDefault directly under qBulk and it was able to use 100% of the speed, and I even tried setting qBulk down to 50% before moving it, and it did reduce the max speed to 50%.

        I got rid of qBulk and just broke out qNormal and qLow, and it seems to be working fine. Anyone one leaf queue may consume up to 100% of the speed, as long as it's free.

        1 Reply Last reply Reply Quote 0
        • KOMK
          KOM
          last edited by

          Could you share your config please?  Either the XML or a screen?

          1 Reply Last reply Reply Quote 0
          • H
            Harvy66
            last edited by

            Old Setup

             <shaper><queue><interface>wan</interface>
            			<name>wan</name>
            			<scheduler>HFSC</scheduler>
            			<bandwidth>48</bandwidth>
            			<bandwidthtype>Mb</bandwidthtype>
            			<enabled>on</enabled>
            			 <queue><name>pHigh</name>
            				<interface>wan</interface>
            				<priority>1</priority>
            
            				<bandwidth>20</bandwidth>
            				<bandwidthtype>%</bandwidthtype>
            				<enabled>on</enabled>
            				<upperlimit3>95%</upperlimit3>
            				 <queue><name>qACK</name>
            					<interface>wan</interface>
            					<qlimit>5000</qlimit>
            					<priority>5</priority>
            
            					<bandwidth>1</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>20%</realtime3>
            					<realtime>on</realtime></queue> 
            				 <queue><name>qGames</name>
            					<interface>wan</interface>
            					<qlimit>5000</qlimit>
            					<priority>6</priority>
            
            					<bandwidth>1</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>10%</realtime3>
            					<realtime>on</realtime></queue> 
            				 <queue><name>qDNS</name>
            					<interface>wan</interface>
            					<qlimit>1000</qlimit>
            					<priority>1</priority>
            
            					<bandwidth>1</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>2%</realtime3>
            					<realtime>on</realtime></queue> 
            				 <queue><name>qICMP</name>
            					<interface>wan</interface>
            					<qlimit>500</qlimit>
            					<priority>7</priority>
            
            					<bandwidth>1</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>1%</realtime3>
            					<realtime>on</realtime></queue> 
            				 <queue><name>qVoIP</name>
            					<interface>wan</interface>
            					<qlimit>2500</qlimit>
            					<priority>5</priority>
            
            					<bandwidth>1</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>10%</realtime3>
            					<realtime>on</realtime></queue> 
            				<upperlimit>on</upperlimit></queue> 
            			 <queue><name>pBulk</name>
            				<interface>wan</interface>
            				<priority>1</priority>
            
            				<bandwidth>80</bandwidth>
            				<bandwidthtype>%</bandwidthtype>
            				<red>red</red>
            				<enabled>on</enabled>
            				 <queue><name>pNormal</name>
            					<interface>wan</interface>
            					<priority>1</priority>
            
            					<bandwidth>80</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					 <queue><name>qWeb</name>
            						<interface>wan</interface>
            						<qlimit>2500</qlimit>
            						<priority>1</priority>
            
            						<bandwidth>10</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled></queue> 
            					 <queue><name>qVPN</name>
            						<interface>wan</interface>
            						<qlimit>2500</qlimit>
            						<priority>3</priority>
            
            						<bandwidth>10</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled></queue></queue> 
            				 <queue><name>pLow</name>
            					<interface>wan</interface>
            					<priority>1</priority>
            
            					<bandwidth>20</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					 <queue><name>qP2P</name>
            						<interface>wan</interface>
            						<qlimit>2500</qlimit>
            						<priority>1</priority>
            
            						<bandwidth>30</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled></queue> 
            					 <queue><name>qDefault</name>
            						<interface>wan</interface>
            						<qlimit>2500</qlimit>
            						<priority>1</priority>
            
            						<bandwidth>30</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<default>default</default></queue> 
            					 <queue><name>qLowUDP</name>
            						<interface>wan</interface>
            						<qlimit>2500</qlimit>
            						<priority>3</priority>
            
            						<bandwidth>30</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>5%</realtime3>
            						<realtime>on</realtime></queue></queue> 
            				<upperlimit3>95%</upperlimit3>
            				<upperlimit>on</upperlimit></queue></queue> 
            		 <queue><interface>lan</interface>
            			<name>lan</name>
            			<scheduler>HFSC</scheduler>
            			<bandwidth>1</bandwidth>
            			<bandwidthtype>Gb</bandwidthtype>
            			<enabled>on</enabled>
            			 <queue><name>qLink</name>
            				<interface>lan</interface>
            				<qlimit>2000</qlimit>
            				<priority>2</priority>
            				<bandwidth>1</bandwidth>
            				<bandwidthtype>%</bandwidthtype>
            				<enabled>on</enabled></queue> 
            			 <queue><name>pInternet</name>
            				<interface>lan</interface>
            				<bandwidth>48</bandwidth>
            				<bandwidthtype>Mb</bandwidthtype>
            				<enabled>on</enabled>
            				<ecn>ecn</ecn>
            				<upperlimit3>48Mb</upperlimit3>
            				 <queue><name>pHigh</name>
            					<interface>lan</interface>
            
            					<bandwidth>20</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<upperlimit3>95%</upperlimit3>
            					 <queue><name>qACK</name>
            						<interface>lan</interface>
            						<qlimit>2500</qlimit>
            						<priority>5</priority>
            
            						<bandwidth>1</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>9600Kb</realtime3>
            						<realtime>on</realtime></queue> 
            					 <queue><name>qGames</name>
            						<interface>lan</interface>
            						<qlimit>2500</qlimit>
            						<priority>6</priority>
            
            						<bandwidth>1</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>9600Kb</realtime3>
            						<realtime>on</realtime></queue> 
            					 <queue><name>qDNS</name>
            						<interface>lan</interface>
            						<qlimit>2500</qlimit>
            						<priority>3</priority>
            
            						<bandwidth>1</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>1Mb</realtime3>
            						<realtime>on</realtime></queue> 
            					 <queue><name>qICMP</name>
            						<interface>lan</interface>
            						<qlimit>1000</qlimit>
            						<priority>7</priority>
            
            						<bandwidth>1</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>0.5Mb</realtime3>
            						<realtime>on</realtime></queue> 
            					 <queue><name>qVoIP</name>
            						<interface>lan</interface>
            						<qlimit>2500</qlimit>
            						<priority>6</priority>
            
            						<bandwidth>1</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>5Mb</realtime3>
            						<realtime>on</realtime></queue> 
            					<upperlimit>on</upperlimit></queue> 
            				 <queue><name>pBulk</name>
            					<interface>lan</interface>
            					<priority>1</priority>
            
            					<bandwidth>80</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<upperlimit3>95%</upperlimit3>
            					 <queue><name>pLow</name>
            						<interface>lan</interface>
            						<priority>1</priority>
            
            						<bandwidth>20</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						 <queue><name>qP2P</name>
            							<interface>lan</interface>
            							<qlimit>2500</qlimit>
            							<priority>1</priority>
            
            							<bandwidth>30</bandwidth>
            							<bandwidthtype>%</bandwidthtype>
            							<enabled>on</enabled>
            							<red>red</red></queue> 
            						 <queue><name>qDefault</name>
            							<interface>lan</interface>
            							<qlimit>2500</qlimit>
            							<priority>3</priority>
            
            							<bandwidth>30</bandwidth>
            							<bandwidthtype>%</bandwidthtype>
            							<enabled>on</enabled>
            							<default>default</default>
            							<red>red</red></queue> 
            						 <queue><name>qLowUDP</name>
            							<interface>lan</interface>
            							<qlimit>2500</qlimit>
            							<priority>3</priority>
            
            							<bandwidth>30</bandwidth>
            							<bandwidthtype>%</bandwidthtype>
            							<enabled>on</enabled>
            							<red>red</red>
            							<realtime3>5Mb</realtime3>
            							<realtime>on</realtime></queue> 
            						<upperlimit3>98%</upperlimit3>
            						<upperlimit>on</upperlimit></queue> 
            					 <queue><name>pNormal</name>
            						<interface>lan</interface>
            						<priority>1</priority>
            
            						<bandwidth>80</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						 <queue><name>qWeb</name>
            							<interface>lan</interface>
            							<qlimit>5000</qlimit>
            							<priority>3</priority>
            
            							<bandwidth>10</bandwidth>
            							<bandwidthtype>%</bandwidthtype>
            							<enabled>on</enabled></queue> 
            						 <queue><name>qVPN</name>
            							<interface>lan</interface>
            							<qlimit>5000</qlimit>
            							<priority>5</priority>
            
            							<bandwidth>10</bandwidth>
            							<bandwidthtype>%</bandwidthtype>
            							<enabled>on</enabled></queue></queue> 
            					<upperlimit>on</upperlimit></queue> 
            				<upperlimit>on</upperlimit></queue></queue></shaper> 
            

            New Setup

             <shaper><queue><interface>wan</interface>
            			<name>wan</name>
            			<scheduler>HFSC</scheduler>
            			<bandwidth>48</bandwidth>
            			<bandwidthtype>Mb</bandwidthtype>
            			<enabled>on</enabled>
            			 <queue><name>pHigh</name>
            				<interface>wan</interface>
            				<priority>1</priority>
            
            				<bandwidth>19</bandwidth>
            				<bandwidthtype>%</bandwidthtype>
            				<enabled>on</enabled>
            				<upperlimit3>98%</upperlimit3>
            				 <queue><name>qACK</name>
            					<interface>wan</interface>
            					<qlimit>5000</qlimit>
            					<priority>5</priority>
            
            					<bandwidth>1</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>20%</realtime3>
            					<realtime>on</realtime></queue> 
            				 <queue><name>qGames</name>
            					<interface>wan</interface>
            					<qlimit>5000</qlimit>
            					<priority>6</priority>
            
            					<bandwidth>1</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>10%</realtime3>
            					<realtime>on</realtime></queue> 
            				 <queue><name>qDNS</name>
            					<interface>wan</interface>
            					<qlimit>1000</qlimit>
            					<priority>1</priority>
            
            					<bandwidth>1</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>2%</realtime3>
            					<realtime>on</realtime></queue> 
            				 <queue><name>qICMP</name>
            					<interface>wan</interface>
            					<qlimit>500</qlimit>
            					<priority>7</priority>
            
            					<bandwidth>1</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>1%</realtime3>
            					<realtime>on</realtime></queue> 
            				 <queue><name>qVoIP</name>
            					<interface>wan</interface>
            					<qlimit>2500</qlimit>
            					<priority>5</priority>
            
            					<bandwidth>1</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>10%</realtime3>
            					<realtime>on</realtime></queue> 
            				<upperlimit>on</upperlimit></queue> 
            			 <queue><name>pLow</name>
            				<interface>wan</interface>
            				<priority>1</priority>
            
            				<bandwidth>31</bandwidth>
            				<bandwidthtype>%</bandwidthtype>
            				<enabled>on</enabled>
            				 <queue><name>qDefault</name>
            					<interface>wan</interface>
            					<qlimit>2500</qlimit>
            					<priority>3</priority>
            
            					<bandwidth>40</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<codel>codel</codel>
            					<default>default</default></queue> 
            				 <queue><name>qP2P</name>
            					<interface>wan</interface>
            					<qlimit>2500</qlimit>
            					<priority>1</priority>
            
            					<bandwidth>20</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<codel>codel</codel>
            					<upperlimit3>98%</upperlimit3>
            					<upperlimit>on</upperlimit></queue> 
            				 <queue><name>qLowUDP</name>
            					<interface>wan</interface>
            					<qlimit>2500</qlimit>
            					<priority>3</priority>
            
            					<bandwidth>40</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<realtime3>5%</realtime3>
            					<realtime>on</realtime></queue></queue> 
            			 <queue><name>pNormal</name>
            				<interface>wan</interface>
            				<priority>1</priority>
            				<bandwidth>50</bandwidth>
            				<bandwidthtype>%</bandwidthtype>
            				<enabled>on</enabled>
            				 <queue><name>qWeb</name>
            					<interface>wan</interface>
            					<qlimit>2500</qlimit>
            					<priority>1</priority>
            
            					<bandwidth>50</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<codel>codel</codel></queue> 
            				 <queue><name>qVPN</name>
            					<interface>wan</interface>
            					<qlimit>2500</qlimit>
            					<priority>3</priority>
            
            					<bandwidth>50</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled></queue></queue></queue> 
            		 <queue><interface>lan</interface>
            			<name>lan</name>
            			<scheduler>HFSC</scheduler>
            			<bandwidth>1</bandwidth>
            			<bandwidthtype>Gb</bandwidthtype>
            			<enabled>on</enabled>
            			 <queue><name>qLink</name>
            				<interface>lan</interface>
            				<qlimit>2000</qlimit>
            				<priority>2</priority>
            				<bandwidth>1</bandwidth>
            				<bandwidthtype>%</bandwidthtype>
            				<enabled>on</enabled></queue> 
            			 <queue><name>pInternet</name>
            				<interface>lan</interface>
            				<bandwidth>48</bandwidth>
            				<bandwidthtype>Mb</bandwidthtype>
            				<enabled>on</enabled>
            				<ecn>ecn</ecn>
            				<upperlimit3>48Mb</upperlimit3>
            				 <queue><name>pHigh</name>
            					<interface>lan</interface>
            
            					<bandwidth>19</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					<upperlimit3>98%</upperlimit3>
            					 <queue><name>qACK</name>
            						<interface>lan</interface>
            						<qlimit>2500</qlimit>
            						<priority>5</priority>
            
            						<bandwidth>1</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>9600Kb</realtime3>
            						<realtime>on</realtime></queue> 
            					 <queue><name>qGames</name>
            						<interface>lan</interface>
            						<qlimit>2500</qlimit>
            						<priority>6</priority>
            
            						<bandwidth>1</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>9600Kb</realtime3>
            						<realtime>on</realtime></queue> 
            					 <queue><name>qDNS</name>
            						<interface>lan</interface>
            						<qlimit>2500</qlimit>
            						<priority>3</priority>
            
            						<bandwidth>1</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>1Mb</realtime3>
            						<realtime>on</realtime></queue> 
            					 <queue><name>qICMP</name>
            						<interface>lan</interface>
            						<qlimit>1000</qlimit>
            						<priority>7</priority>
            
            						<bandwidth>1</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>0.5Mb</realtime3>
            						<realtime>on</realtime></queue> 
            					 <queue><name>qVoIP</name>
            						<interface>lan</interface>
            						<qlimit>2500</qlimit>
            						<priority>6</priority>
            
            						<bandwidth>1</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>5Mb</realtime3>
            						<realtime>on</realtime></queue> 
            					<upperlimit>on</upperlimit></queue> 
            				 <queue><name>pNormal</name>
            					<interface>lan</interface>
            					<priority>1</priority>
            
            					<bandwidth>50</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					 <queue><name>qWeb</name>
            						<interface>lan</interface>
            						<qlimit>5000</qlimit>
            						<priority>2</priority>
            
            						<bandwidth>50</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<codel>codel</codel></queue> 
            					 <queue><name>qVPN</name>
            						<interface>lan</interface>
            						<qlimit>5000</qlimit>
            						<priority>5</priority>
            
            						<bandwidth>50</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled></queue></queue> 
            				 <queue><name>pLow</name>
            					<interface>lan</interface>
            					<priority>1</priority>
            
            					<bandwidth>31</bandwidth>
            					<bandwidthtype>%</bandwidthtype>
            					<enabled>on</enabled>
            					 <queue><name>pDefault</name>
            						<interface>lan</interface>
            						<qlimit>5000</qlimit>
            						<priority>1</priority>
            
            						<bandwidth>40</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<default>default</default>
            						<codel>codel</codel></queue> 
            					 <queue><name>qP2P</name>
            						<interface>lan</interface>
            						<qlimit>2500</qlimit>
            						<priority>1</priority>
            
            						<bandwidth>20</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<codel>codel</codel>
            						<upperlimit3>98%</upperlimit3>
            						<upperlimit>on</upperlimit></queue> 
            					 <queue><name>qLowUDP</name>
            						<interface>lan</interface>
            						<qlimit>2500</qlimit>
            						<priority>1</priority>
            
            						<bandwidth>40</bandwidth>
            						<bandwidthtype>%</bandwidthtype>
            						<enabled>on</enabled>
            						<realtime3>2Mb</realtime3>
            						<realtime>on</realtime></queue></queue> 
            				<upperlimit>on</upperlimit></queue></queue></shaper> 
            
            1 Reply Last reply Reply Quote 0
            • H
              Harvy66
              last edited by

              Another minor note. I noticed my download was getting up into the 50/51mb range, which was strange because PFSense is really really good at keeping the bandwidth within the desired amount. I assume it was because I had my interface set to 1gb, and while my upper limit was set to 48, all "real time" bandwidth is taken from the root node, this would mean the total bandwidth consumed would be UpperLimit+RealTime.

              I adjusted my my LAN interface to be 48Mb and it seems to be keeping a tight limit to just under 48mb now. To make sure my traffic shaping didn't conflict with managing PFSense, I just opened up my port on my admin vlan.

              I just thought this may be helpful to someone at some point.

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