After the not very constructive discussion about 10Gb WAN problems, I looked into the differences in Linux kernel configuration between VyOS and IPFire.
I extracted some parameters and made a patch for the Kernel configuration file
--- ./kernel.config.x86_64-ipfire.ori 2025-12-16 12:03:23.219641848 +0100
+++ ./kernel.config.x86_64-ipfire 2025-12-16 12:21:38.711686554 +0100
@@ -191,6 +191,8 @@
CONFIG_CC_NO_STRINGOP_OVERFLOW=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_SLAB_OBJ_EXT=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
CONFIG_CGROUP_FAVOR_DYNMODS=y
@@ -442,7 +444,7 @@
# CONFIG_X86_5LEVEL is not set
CONFIG_X86_DIRECT_GBPAGES=y
# CONFIG_AMD_MEM_ENCRYPT is not set
-# CONFIG_NUMA is not set
+CONFIG_NUMA=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
@@ -606,6 +608,10 @@
CONFIG_ACPI_NHLT=y
CONFIG_ACPI_NFIT=m
# CONFIG_NFIT_SECURITY_DEBUG is not set
+CONFIG_ACPI_NUMA=y
+CONFIG_AMD_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NODES_SHIFT=10
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
CONFIG_ACPI_APEI=y
@@ -1061,6 +1067,7 @@
CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y
CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y
CONFIG_HAVE_GUP_FAST=y
+CONFIG_NUMA_KEEP_MEMINFO=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -1102,7 +1109,7 @@
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_CMA=y
# CONFIG_CMA_SYSFS is not set
-CONFIG_CMA_AREAS=8
+CONFIG_CMA_AREAS=19
CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
# CONFIG_IDLE_PAGE_TRACKING is not set
@@ -6976,7 +6983,7 @@
CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set
-# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y
CONFIG_IOMMU_DMA=y
CONFIG_IOMMU_SVA=y
CONFIG_IOMMU_IOPF=y
So I recompiled a modified CU199 version based on these new parameters
And I get the following results :
With the modified version CU199 (initial installation Red + Green)
F:\tools\iperf3>iperf3 -c mrs.bbr.iperf.bytel.fr -R -p9201
Connecting to host mrs.bbr.iperf.bytel.fr, port 9201
Reverse mode, remote host mrs.bbr.iperf.bytel.fr is sending
[ 5] local 192.168.20.100 port 12578 connected to 31.33.13.121 port 9201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 936 MBytes 7.81 Gbits/sec
[ 5] 1.01-2.00 sec 955 MBytes 8.04 Gbits/sec
[ 5] 2.00-3.01 sec 954 MBytes 7.97 Gbits/sec
[ 5] 3.01-4.00 sec 942 MBytes 7.95 Gbits/sec
[ 5] 4.00-5.01 sec 938 MBytes 7.80 Gbits/sec
[ 5] 5.01-6.01 sec 943 MBytes 7.87 Gbits/sec
[ 5] 6.01-7.01 sec 934 MBytes 7.89 Gbits/sec
[ 5] 7.01-8.00 sec 945 MBytes 7.94 Gbits/sec
[ 5] 8.00-9.00 sec 927 MBytes 7.80 Gbits/sec
[ 5] 9.00-10.01 sec 955 MBytes 7.97 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.05 sec 9.22 GBytes 7.88 Gbits/sec 102845 sender
[ 5] 0.00-10.01 sec 9.21 GBytes 7.90 Gbits/sec receiver
iperf Done.
With the official CU199 version, and the same test conditions, I only obtained
F:\tools\iperf3>iperf3 -c mrs.bbr.iperf.bytel.fr -R -p9201
Connecting to host mrs.bbr.iperf.bytel.fr, port 9201
Reverse mode, remote host mrs.bbr.iperf.bytel.fr is sending
[ 5] local 192.168.20.100 port 50321 connected to 31.33.13.121 port 9201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 382 MBytes 3.17 Gbits/sec
[ 5] 1.01-2.01 sec 384 MBytes 3.22 Gbits/sec
[ 5] 2.01-3.00 sec 380 MBytes 3.21 Gbits/sec
[ 5] 3.00-4.00 sec 386 MBytes 3.24 Gbits/sec
[ 5] 4.00-5.00 sec 385 MBytes 3.24 Gbits/sec
[ 5] 5.00-6.00 sec 386 MBytes 3.24 Gbits/sec
[ 5] 6.00-7.01 sec 389 MBytes 3.23 Gbits/sec
[ 5] 7.01-8.01 sec 385 MBytes 3.24 Gbits/sec
[ 5] 8.01-9.01 sec 386 MBytes 3.24 Gbits/sec
[ 5] 9.01-10.01 sec 385 MBytes 3.24 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.05 sec 3.77 GBytes 3.22 Gbits/sec 0 sender
[ 5] 0.00-10.01 sec 3.76 GBytes 3.23 Gbits/sec receiver
iperf Done.
Thatâs more than double the download bandwidth.
These tests were performed with my 8Gbps Down/1Gbps Up internet connection on my mini PC
Qotom Q11032H6 S13 miniPC, equipped with a Twin Lake-N Core i3 N355 processor, 8GB RAM, 2 NICS Marvell AQC113 10 Gigabit LAN interfaces
My resources are limited to push these tests further, and my knowledge of the Linux kernel is insufficient to know if these modifications might negatively impact other systems.
If the IPFire development team could verify and test these settings on the different X86_64 platforms, would it be possible to use them in a future version?
I performed a complete reinstall from my CU198 backup + upgraded to CU199 (test).
I then performed another backup and reinstalled the modified CU199.
And Iâm still getting good performance with SpeedTest, with Suricata enabled.
But not for iperf3 with suricata
F:\tools\iperf3>iperf3 -c mrs.bbr.iperf.bytel.fr -R -p9201
Connecting to host mrs.bbr.iperf.bytel.fr, port 9201
Reverse mode, remote host mrs.bbr.iperf.bytel.fr is sending
[ 5] local 192.168.20.32 port 52464 connected to 31.33.13.121 port 9201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 81.4 MBytes 673 Mbits/sec
[ 5] 1.01-2.00 sec 83.2 MBytes 708 Mbits/sec
[ 5] 2.00-3.00 sec 84.9 MBytes 712 Mbits/sec
[ 5] 3.00-4.01 sec 86.4 MBytes 716 Mbits/sec
[ 5] 4.01-5.01 sec 82.8 MBytes 697 Mbits/sec
[ 5] 5.01-6.01 sec 87.4 MBytes 733 Mbits/sec
[ 5] 6.01-7.01 sec 96.8 MBytes 812 Mbits/sec
[ 5] 7.01-8.01 sec 106 MBytes 894 Mbits/sec
[ 5] 8.01-9.00 sec 107 MBytes 898 Mbits/sec
[ 5] 9.00-10.00 sec 106 MBytes 889 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.04 sec 927 MBytes 774 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 922 MBytes 773 Mbits/sec receiver
iperf Done.





