Share your knowledge at the LQ Wiki.
Go Back > Forums > Linux Forums > Linux - Networking
User Name
Linux - Networking This forum is for any issue related to networks or networking.
Routing, network cards, OSI, etc. Anything is fair game.


  Search this Thread
Old 07-21-2021, 07:31 AM   #1
LQ Newbie
Registered: Jan 2019
Distribution: OEL8
Posts: 7

Rep: Reputation: Disabled
Setting up a very low-latency router using linux.


I've been dabbling in Linux, UX derivatives such as BSD and HP-UX for a while now and was in need of a bit of help.
I've had this small side-project going on of creating a linux router out of an old 2013 personal computer at home.

The specs of the machine:

8GB 1600Mhz XMP
OCZ Vertex4 SSD

I'm using OEL8.4 and doing IPv4 routing and firewalling + NAT on this machine.
On its outbound interface I also configure CAKE:
By default you cannot do this because the OEL kernel in use is too "old" and without cake.
So I'm using elrepo to install the latest longterm-branch kernel version. 5.4.#

I'm currently trying to set up a "real" low-latency OS configuration where I isolate a few cores and configure networking to run on only the isolated cores.
The problem I have is, I don't know exactly which kernel threads do the networking.
My guess is I need to move the IRQs to the isolated cores but I don't know what else needs to be moved. Any help here, is appreciated.

tuned-adm has a profile for partitioning the CPU:

The plan I have is to utilize it and isolate cores 3 and 4, move the device IRQs to them using tuna:
via a systemd startup service.

The system has 2 ethernet adapters. eth0 for WAN, eth1 for LAN.
Intel Gigabit CT desktop adapter:

The onboard is not used.

Does anyone know what else needs to be assigned to the isolated cores and perhaps what extra steps I'd need to take to build this lowest and stablest possible latency router?

Thank you in advance.
Old 07-22-2021, 07:42 PM   #2
Registered: Mar 2008
Posts: 20,983

Rep: Reputation: 3404Reputation: 3404Reputation: 3404Reputation: 3404Reputation: 3404Reputation: 3404Reputation: 3404Reputation: 3404Reputation: 3404Reputation: 3404Reputation: 3404
Just some thoughts, maybe others have ideas.

I might run it from ram. Might switch packet transfers so that it doesn't wait for the entire packet to route. Forget what the cisco name for that is. Usually the true enterprise level devices get up wire speeds. It may be hard to compete even with a 7 year old used device.

Not sure trying to isolate cores is best. Would need to do test. Moving to near real time kernel may help if the drivers for nic are also nrt. Best would be a full real time system that had all drivers in real time. QNX and some commercial RTL tout that a lot. One could build a custom kernel too and consider how the scheduler works.


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Using "normal", vs "low-latency" vs "real-time RT" kernels GTrax Linux - Software 7 07-10-2014 04:34 AM
Audio Glitches with Linux 3.8.0-34 Low Latency 64-bit kernel on Linux Mint 15. tamag901 Linux - Software 7 12-22-2013 04:24 PM
Ideas for a low cost, low power, low noise web server/torrent box alecjtaylor Linux - Hardware 13 01-10-2012 05:26 AM
A very very very very big problem!! Elbryan Linux - Software 2 09-23-2005 05:56 AM
Whitepaper: Preempt v. Low-Latency Patch jeremy Linux - General 1 03-22-2002 02:07 PM > Forums > Linux Forums > Linux - Networking

All times are GMT -5. The time now is 11:10 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration