[Experimental] WAN Connection Buffer Size on cellular interface


Trying to optimize MAX BR 1 modem to my own real time application usage, i have tried to play with WAN Connection Buffer Size config and i see no affect on my upstream when configure very low or very high numbers.

I constantly trying to send 15mbps over the modem, when the modem able to send 7-10mbps in order to test bufferbloat.
On every packet arriving to my server i measure the one way latency and getting following distribution of packets latency.

With the usage of bufferbloat mitigation feature i could reduce the latency to 500ms-1sec of the majority of the packets.

The behavior i am searching is for the modem to not queue more than 100ms packets. Older than 100ms packet should be dropped by the modem.

Model: Pepwave MAX BR1 Pro 5G
Firmware: 8.4.0 build 5396

Why WAN Connection Buffer Size on cellular interface has no affect on my upstream?
Can i configure my modem to desired behavior?


You should be able to use Mitigate Bufferbloat to control your upload speed to be less than a certain value. This is done by setting your Upload and Download Bandwidth. In Network, select your WAN connection to set them. You will want the settings to be around 5-10% less. For example, if you want a maximum of 7Mbps upload, then try setting it to 6.3Mbps as a starting point.

You can test with Waveform Bufferbloat test.

The value you set in Download is currently ignored (I usually set it to 1Gbps). Version 9 will hopefully remedy the Download situation.

I always make sure DSL Cable optimization is Disabled too although I believe Mitigate Bufferbloat has been fixed to ignore it. Network->QoS Application, DSL cable optimization: Disable.

With the Mitigate Bufferbloat approach, there is no need to play with WAN Connection Buffer Size.

Hi Mark,

Thanks for replying!

i am searching a way to reduce bufferbloat in the cellular interface, not searching to control the maximum speed.
From my tests it looks the modem queue a huge number of packets, trying to reduce the buffer size on cellular interface doesn’t have actual affect.

Any idea how to do it?

The fq_codel and Cake algorithms were specifically created to deal with Bufferbloat. They include sophisticated technology like monitoring RTT (round trip time) to figure out when to slow down sending packets based on RTT getting larger. They need guidance of the maximum bandwidth you should use to avoid high latency lag (bufferbloat). Usually this is around 10% below the ISP’s advertised bandwidth but can be less or more. You have to experiment with a site like WaveForm bufferbloat test to find the highest bandwidth setting that avoids lag.

Fq_codel and Cake work well with cable, fiber and DSL. They are less successful on cellular fixed wireless and satellite (Starlink) because the bandwidth fluctuates so much with wild swings. For example, Starlink might cut your bandwidth in half during busy times. So some people who really need to avoid lag (gamers) will set their bandwidth for fq_codel or Cake fairly low to avoid the big swings.

Your quest to set buffer sizes doesn’t address the reality of how bufferbloat may occur. It can occur anyplace there is a router between you and the destination. So there can be slowdowns between you and a cellular tower. There can be slowdowns in the backhaul between a cellular tower and the next router. And so on. That is why fq_codel and Cake have to be more sophisticated, monitoring RTT and adjusting flows that take into account the entire path to and from the destination.

Here are some starting points that discuss bufferbloat and what you need to do about it:


Thanks again @Mark9.

I see Cake can be configured with many parameters, one of them is bandwidth.

Is there a way to control all parameters ? Which parameters are exposed?

So if i understood correctly, mitigate bufferbloat option enable cake algorithm on the router which actively controlling the queue size in the router. But for the cellular modem buffers nothing is promised. Right?

Only fq_codel is available on Peplink products and is known as Mitigate Bufferbloat:

  1. Configure the Upload Bandwidth to XXX Mbps and the Download Bandwidth to YYY Mbps. A good starting point is 10-15% below your ISP’s provisioned speeds.

  2. Enable “Mitigate bufferbloat” on the Support page. This is the option which turns on fq_codel for Upload, but not currently for Download. On my Balance, this was “http://192.168.xxx.1/cgi-bin/MANGA/support.cgi”. On the home page, I just change “index.cgi” to “support.cgi” in the url to reach this special option.

These two steps are taken from a Peplink forum article that I initiated in 2019: Please release a working version of fq_codel for Bufferbloat for the COVID-19 situation. As mentioned previously, “Version 9 will hopefully remedy the Download situation.” I believe Peplink will release version 9 sometime this year.

There are no other parameters for Peplink’s Mitigate Bufferbloat other than Upload and Download bandwidth. And I doubt that Peplink will make Cake available. While better than fq_codel, it uses more CPU, something that can be a bottleneck on many Peplink routers.