Skip to content
← All routers

Fix bufferbloat on pfSense and OPNsense routers

Real Smart Queue

Yes. Both can shape the line with FQ-CoDel limiters, which is real Smart Queue.

You create a download and an upload limiter (pfSense) or pipe (OPNsense) with FQ-CoDel, then a firewall or shaper rule that sends WAN traffic through them. Both projects' official docs have a bufferbloat walk-through.

1. Test before you change anything

Run the Lag Check and note the "Lag under load" grade and your download and upload speeds. You'll compare against it afterwards.

2. Where the setting is

pfSense

  1. Go to Firewall → Traffic Shaper → Limiters and create two limiters, one for download and one for upload, each with your limit as its bandwidth.
  2. Set the queue management algorithm to Tail Drop and the scheduler to FQ_CODEL on each, and add a child queue to each limiter.
  3. Add a floating firewall rule on the WAN interface (direction out, pass, quick) that uses the upload queue as In and the download queue as Out.
  4. Apply, then test again.

OPNsense

  1. Go to Firewall → Shaper → Pipes and create a download pipe and an upload pipe with your limits and the FlowQueue-CoDel scheduler.
  2. Create a queue for each pipe, then under Firewall → Shaper → Rules add a rule on the WAN interface for each direction (download to the download pipe or queue, upload to the upload one).
  3. Apply, then test again.

3. The numbers to enter

Both ask for Mbit/s. Start at about 90% of your measured speed, or use the figures from the Smart Queue assistant.

Work out my limits

The assistant starts at 90% of your measured speed and tells you when to drop to 85% or 80%.

Gotchas

  • Get the directions right: on the WAN, traffic going out is your upload. A swapped rule shapes the wrong way and the grade won't move.
  • Low-power boxes can struggle with shaping on gigabit lines. Watch the CPU while a download runs.
  • If you also run a VPN client or several WANs, apply the limiters to the interface your traffic actually leaves by.

Test after the change. A good setup brings lag under load down to A or B.

Test before and after