How to get multi-core PPPoE on your x86 router (2024)

One commonly-stated problem with PPPoE, especially done on x86-based routerslike pfSense and OPNsense is they’re “single-threaded”.

The reason why they’re single-threaded is because of how NICs are designed.These NICs know how to sort IPv4 and IPv6 traffic, but not PPP traffic.combined with both Linux and FreeBSD processing PPPoE in the thread thatprocess packets.

However, using virtualization and bridge interfaces (not PCIe passthrough),you can mitigate this issue and get real multi-threaded PPPoE.

So what do you need?

Some routers work very well. Despite the terrible reputation, FreeBSD-basedrouters like OPNsense and pfSense can work with multi-threaded PPPoE if yourWAN uses a paravirtualized NIC like virtio. VMware and Hyper-V NICs shouldalso work but I haven’t tested those.

However, if you use FreeBSD, you will need the following in your/boot/loader.conf.local:

net.isr.numthreads=Xnet.isr.maxthreads=Xnet.isr.dispatch=deferred

If you’re using a Linux-based router distro, like OpenWrt or VyOS, you willneed to look intoReceive Packet Steering,which does the same thing above on Linux.

Some options to avoid include MikroTik CHR and OpenBSD. Both havesingle-threaded PPPoE due to their design. On MikroTik, you can’t configureReceive Packet Steering that I’m aware of. OpenBSD seems to not have kernelPPPoE or any packet steering option. If you manage to get RPS with CHR, hitme up at neel AT neelc DOT org.

Did I mention you need virtualization? Well, you do. And not only that, youalso need to use a bridge interface on the PPPoE WAN.

You may be tempted to use PCIe passthrough, but if you’re dealing with PPPoE,don’t. If you do, you will still have a single-threaded WAN.

While I’m no Linux kernel expert, using a bridge interface means the host OSwill not process the packet on a single core, but instead just forward it tothe bridge which will then balance it across multiple CPUs.

At least on my host, Rocky Linux 9 with KVM, PPPoE is more-or-less evenlybalanced with OPNsense. However, I have not tested ESXi, Windows, or FreeBSDvirtualization hosts, but I believe it should be the same also.

As a side unrelated note, in the past I was a big FreeBSD user, but moved onover a year ago outside of OPNsense (but it was more desktop-drive for me).

You must use a paravirtualized NIC. On KVM and bhyve, it’s virtio. onESXi it’s `vmxnet``. Hyper-V and Xen also have their own respectiveparavirtualized NICs. Using this allows the guest to have multi-threaded PPPoE.

There are a few things to keep in mind with this setup:

  • Host CPU usage will be higher than the guest
  • Fortunately, it’s via multiple threads (via htop)
  • You should disable IPv4 and IPv6 on the PPPoE WAN interface
  • If your ISP uses 6rd and you wish to use it, as I do with CenturyLink in Seattle, DO NOT USE Linux-based firewalls like OpenWrt, CHR or VyOS.
  • This is because 6rd on Linux-based routers is SLOW when compared to FreeBSD.
  • However, a Linux host OS will be fine.

Also, not related to the technicalities of this article, but around August 2024,I will be moving to NYC, so I will be unable to test PPPoE after that. This isbecause Verizon FiOS doesn’t use PPPoE, neither does Spectrum or Optimum ifFiOS is unavailable.

I have multi-threaded PPPoE on the following system:

  • HPE ProLiant ML110 Gen11
  • CPU: Intel Xeon Scalable 4410Y (intial), 5412U (current)
  • Host RAM: 32GB (initial), 64GB (current)
  • Guest RAM: 1.5GB RAM
  • Host Cores: 12 (initial), 24 (current)
  • Guest Cores: 3
  • Host OS: Rocky Linux 9.3 (Linux kernel 5.14.0-362.8.1.el9_3)
  • Guest OS: OPNsense 23.07 (FreeBSD 13.2-p1)
  • Virtualization: KVM
  • Host NIC: Broadcom 57416 OCP3 (dual 10GB)
  • two bridges: one WAN and one LAN
  • Guest NIC: virtio

You could probably use a much smaller RAM allocation if you just do “typical”stuff with a few connections. I have 1.5GB RAM is because of my high-bandwidthTor relays which really crunch the NAT state table: I have ~65000 states at thetime of writing, and it went up to ~78000.

This is what I get:

How to get multi-core PPPoE on your x86 router (1)

Look ma, balanced CPU usage.

How to get multi-core PPPoE on your x86 router (2024)
Top Articles
Types of Jobs Most Likely to Qualify for an H-1B Visa
Swiss Re's US economic outlook: normalisation continues - Reinsurance News
Terrorist Usually Avoid Tourist Locations
Fredatmcd.read.inkling.com
Kokichi's Day At The Zoo
Fototour verlassener Fliegerhorst Schönwald [Lost Place Brandenburg]
Best Private Elementary Schools In Virginia
Was sind ACH-Routingnummern? | Stripe
R Tiktoksweets
The Connecticut Daily Lottery Hub
Shuiby aslam - ForeverMissed.com Online Memorials
Reddit Wisconsin Badgers Leaked
Flower Mound Clavicle Trauma
Most McDonald's by Country 2024
Craigslist Farm And Garden Tallahassee Florida
Maplestar Kemono
Gdlauncher Downloading Game Files Loop
Cambridge Assessor Database
DBZ Dokkan Battle Full-Power Tier List [All Cards Ranked]
Union Ironworkers Job Hotline
Our History
Gayla Glenn Harris County Texas Update
Ups Print Store Near Me
Puretalkusa.com/Amac
Encyclopaedia Metallum - WikiMili, The Best Wikipedia Reader
Integer Division Matlab
How To Tighten Lug Nuts Properly (Torque Specs) | TireGrades
Ficoforum
Ewg Eucerin
Mark Ronchetti Daughters
Promatch Parts
Metro By T Mobile Sign In
Xfinity Outage Map Lacey Wa
Angela Muto Ronnie's Mom
Craigslist Central Il
Upstate Ny Craigslist Pets
Rocketpult Infinite Fuel
The Mad Merchant Wow
A Man Called Otto Showtimes Near Amc Muncie 12
Dr Adj Redist Cadv Prin Amex Charge
3400 Grams In Pounds
Boone County Sheriff 700 Report
Ticket To Paradise Showtimes Near Marshall 6 Theatre
Sabrina Scharf Net Worth
Tripadvisor Vancouver Restaurants
Peace Sign Drawing Reference
412Doctors
Wolf Of Wallstreet 123 Movies
Bf273-11K-Cl
Fine Taladorian Cheese Platter
Lux Funeral New Braunfels
Haunted Mansion Showtimes Near The Grand 14 - Ambassador
Latest Posts
Article information

Author: Barbera Armstrong

Last Updated:

Views: 5609

Rating: 4.9 / 5 (59 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Barbera Armstrong

Birthday: 1992-09-12

Address: Suite 993 99852 Daugherty Causeway, Ritchiehaven, VT 49630

Phone: +5026838435397

Job: National Engineer

Hobby: Listening to music, Board games, Photography, Ice skating, LARPing, Kite flying, Rugby

Introduction: My name is Barbera Armstrong, I am a lovely, delightful, cooperative, funny, enchanting, vivacious, tender person who loves writing and wants to share my knowledge and understanding with you.