@simonjcarr I think I have solved the problem, although I will see over the next 24 hours if I am issue free.
The problem seemed to be related to an App on my Iphone.
I don't know which one. It dawned on me the issues were only happening when my phone was active. I deleted about 10 apps that I had installed over the last few weeks, and have not had the problem since. I am assuming, that one of the apps got an update over the last few days and it mush have gone rogue.
@sotirone I'd say if it's working then roll with it. :) Besides the traffic graph, Diagnostics/Limiter Info should show the relevant info. The router we have with limiters doesn't have floating rules, we have them on LAN to capture the outbound connections from certain IPs.
By coincidence, this post resurfaced just 3 hours after I posted this. It appears to be the same issue.
I just had to fudge my bandwidth allocations on the LAN queues to be able to set the interface bandwidth correctly. For me, I set the same value as allocated to the WAN queue (19200 Kbs) to qInternet on each LAN interface, rather than using 2%. I also set all the other LAN interface sub-queue percentages down to like 10% though I'm not sure that was necessary, saved and applied. Then I could set the LAN interfaces to what I wanted (96% of 1Gb = 960000 Kbs).
Annoying to figure out but at least it's possible to workaround. Thanks to @seijirou for either deliberately or coincidentally resurfacing that post which helped me out.
@tman222 That would be 409610241024 = 2^32 = 4294967296 so max unsigned 32 bit integer. Can't help with how to change it. :) It presumably depends on how it is being handled in the upstream code. But, with all new routers 64 bit and Netgate releasing 10 Gbit connections it seems logical to make it higher. I'd say go ahead and make a redmine entry. It could just be old input validation.
BTW, nice bandwidth.
Thanks @SteveITS - that makes a lot more sense now. Unfortunately no multi-gig internet access here just yet, but there have been rumors that it may be coming this year (fingers crossed).
@daddygo Hey, just seeing this.. thanks for the reply.
interestingly enough, i came across the whole "fq_codel" thing and started messing around with it.
low and behold, it (seemingly, at least to my novice senses) made a very significant difference with my latency.
going through the bufferbloat test from waveform, initially my unloaded ping was about 10-12ms, and once it started the upload and download tests, my latency was up around 60+ms and i was graded as a C.. i followed some instructions and then messed around with it to adapt it to my particular internet speed (120x6) and my upload/download latency dropped to about 5ms for both upload and download. I can definitely tell the difference (no lagging) when someone else is video conferencing while i'm on my workstation, streaming whatever..
anywho, are you saying that disabling the hn(4) ALTQ support will improve it further?
@cnicules ggrrr wife problem :) "the net was working bad so i went directly on the ISP modem wifi", all day sort of wasted.
putting CODEL, make the setup works, i only get a slight 2-3-4ms increase on ping.
ok, logic is good, so far.
HFSC also looks, good, selecting icmp works.
good, now i can move to more complex stuff
Self-solved. Wrote two new functions in status_queues.php and added a call to SortStats in the existing processInterfaceQueues call:
processInterfaceQueues(SortStats($stats), 0, "");
Code is not so elegant and is not optimised but it works. Sharing for interest.
function SortStats_AppendCurrentAndContained(&$sorted_qname, &$raw_real_if_qlist, $qname, &$qdata, &$qcontains)
# Sort the list of child queue names and store back into the original 'contains' array
$qdata['contains'] = $qcontains;
# Add the current qname (which 'contains' other queues) to the sorted_qname array first
$sorted_qname[$qname] = $qdata;
# Then add the contained queues, in sorted order
foreach ($qcontains as $qcontainedname)
# Retrieve the queue entry for the named queue
$qcontained = $raw_real_if_qlist[$qcontainedname];
# If it has a 'contains' array, recurse the addition of current & contained queues
SortStats_AppendCurrentAndContained($sorted_qname, $raw_real_if_qlist, $qcontainedname, $qcontained, $qcontained['contains']);
# Add the queue data for the named qcontained into the sorted_qname array
$sorted_qname[$qcontainedname] = $qcontained;
foreach ($stats_to_sort['interfacestats'] as $raw_real_if_name => $raw_real_if_qlist)
$sorted_qname = array();
foreach ($raw_real_if_qlist as $qname => $qdata)
# If it has a 'contains' array, sort the children and build out the sorted_real_if_qlist
# Append the current and contained queues
SortStats_AppendCurrentAndContained($sorted_qname, $raw_real_if_qlist, $qname, $qdata, $qdata['contains']);
# Assign the sorted array of queue names back to the raw_real_if_qlist
$stats_to_sort['interfacestats'][$raw_real_if_name] = $sorted_qname;
Does anyone else have any view on using both altq and limiters. I tried it worked for a while, seemingly, then the routing got blocked. I can’t quite understand why but it now seems like you can’t use both at the same time.
@brswattt some further comments. I would suggest you set the "queue management algorithm" to coddle in both the limiter (parent) and the child queue. You've set the scheduler but not the QMA.
Also, presumably you initiated the connection to steam. In which case I think you need to apply the rules on the LAN. I suspect that is the problem. If not, I would mark the rule to to be logged and then look at the firewall log and make sure your rule is triggering correctly. If not, work out why. You seem to be aware of the need to sometimes set quick actions on the floating rules to make the fire immediately but it could be something like that (though not from the looks of things).
As an aside, I would avoid using the floating rules and the WAN until you have this set-up right on the LAN itself. I say this because it is just easier and, as NAT is applied before the rules apply on the WAN, there can be problems writing rules that hit the packets intended. The workaround is tagging packets on the original interface before they hit the WAN then searching for the tagged packets. But the point is avoid applying stuff on the WAN and via floating rules until it is right on the interface rules.