On Wed, Sep 21, 2016 at 1:59 PM, Phineas Gage <phineas919@gmail.com> wrote:I have two questions about using fq_codel on an edge router when the
Internet uplink is through point-to-point WiFi:
Question #1: Is it still effective to run fq_codel on our edge router when I
have a WiFi uplink to the Internet, instead of a cabled connection like
ADSL? And related to that, is a high quality point-to-point WiFi connection
indistinguishable from a cabled connection as far as fq_codel is concerned?
Yes, it is effective to a small extent. However, I would highlyrecommend that you look into make-wifi-fast, and start testing thefirmware that Toke uploaded.See this: http://blog.cerowrt.org/post/crypto_fq_bug/
Thanks, this looks great. I’ll see if my WISP is willing to experiment on our point-to-point connection, but it would require driver support for an Atheros AR9300 on a Mikrotik 911-5HnD (firmware 3.30). That’s on our side. There’s another Mikrotik on the other side, but I don’t know its specs yet.
Question #2: Assuming the answer to Question #1 is an overall "yes", is it
then better to have a guaranteed speed from the ISP, instead of having a
variable but potentially higher speed, so that I can control the queue and
have fq_codel and HTB prioritization work effectively?
Guaranteed speed, or at least minimum guaranteed speed for both uploadand download is a good idea. You don't have to login and tweak eachtime.
Ok, that’s along the lines of what I’m thinking also. I may ask them for flexibility in the contract and try the aggregated connection to save money, then switch to guaranteed depending on the actual conditions on their network.
LAN <=> Linux bridge with fq_codel <=> ADSL Modem 0.4 / 5.0 Mbps <=> DSLAM …
I have a similar configuration: LAN <=> fq_codel (tp-link archer c7 v2with pppoe) <=> FTTH modem (bridge mode)May I ask why put the ADSL modem in bridge mode, and let the fq_codelbox handle pope ?
This way, if the bridge ever fails, I can tell someone even if I’m off-site to just “plug in the red cable”, bypassing the bridge. The modem does PPPoE, DHCP and DNS caching. The bridge provides better DNS caching, an NTP server, and HTB+fq_codel, but if it’s replaced with a cable, the network continues working without any configuration changes.
Is there a benefit to running PPPoE on the bridge, other than possibly a bit faster PPPoE encapsulation?
But now, we have a chance to improve our throughput problem by switching to
a point-to-point WiFi uplink that could hit speeds of 30-40 Mbit symmetric
(more on the speeds later). We have to decide on starting a contract with
them. At the same time, I’ll be switching the bridge to a Ubiquiti
EdgeRouter X, which has fq_codel in its kernel, but should have the same
effect. It would look something like:
Does EdgeRouter X also implement BQL for its network drivers ?
I hadn’t heard of BQL actually, so I read this:
https://www.bufferbloat.net/projects/bloat/wiki/BQL_enabled_drivers/. I don’t think I currently have BQL in my setup, and it’s still effective, maybe because I’m doing rate limiting, but that makes me wonder what I might be missing. Also, I started this thread for an update on BQL support in the EdgeRouter X:
Q1: In what cases does BQL help, and is it like do be more useful or higher or lower bandwidths, or does that make a difference?
Q2: Is there a way I can tell in Linux if a given net driver supports BQL without looking at the source?
For the bridge, I’m repurposing an old Mac Mini with 1.25GHz PPC and am using its internal adapter (a Sun GEM 100Mbit adapter using the sungem driver) on the inside of our network. The outside, which has the fq_codel applied to it, is an Apple USB 100Mbit adapter.
Q3: Is it better to run fq_codel on an internal PCI based network adapter, or a USB ethernet adapter, or is there no difference?
In case it matters, the kernel has CONFIG_HZ=250. Also, I try to turn off any offloads in the interfaces file (to be honest, I don’t know if it makes a difference with the USB ethernet driver):
# eth1 interface to cable modem
auto eth1
iface eth1 inet manual
pre-up /sbin/ethtool --offload eth1 gso off sg off gro off
post-up /sbin/ifconfig eth1 mtu 1492