Add NIC SR-IOV and performance tuning units

sriov-enp4s0.service allocates VFs on the ixgbe ports at boot and applies
persistent VF MACs via set-ixgbe-vfmacs-enp4s0.sh, so guests keep stable
addresses across host reboots. The VF MAC assignments are currently all
commented out.

nic-performance-tweaks.service raises ring buffers and txqueuelen on the
uplinks and vmbr0.

unused/ holds the equivalent pair for the retired enp130s0 adapter.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
ergosteur
2026-08-06 15:44:58 +00:00
co-authored by Claude Opus 5
parent 25b96af194
commit 5a661d728f
5 changed files with 52 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh -e
#ip link set dev enp4s0f0 vf 0 mac b4:96:91:ed:63:40 trust on promisc on allmulticast on
#ip link set dev enp4s0f0 vf 1 mac b4:96:91:ed:63:41 trust on promisc on allmulticast on
#ip link set dev enp4s0f0 vf 2 mac b4:96:91:ed:63:42 trust on promisc on allmulticast on
#ip link set dev enp4s0f0 vf 3 mac b4:96:91:ed:63:43 trust on promisc on allmulticast on
#ip link set dev enp4s0f1 vf 0 mac b4:96:91:ed:63:50 trust on promisc on allmulticast on
#ip link set dev enp4s0f1 vf 1 mac b4:96:91:ed:63:51 trust on promisc on allmulticast on
#ip link set dev enp4s0f1 vf 2 mac b4:96:91:ed:63:52 trust on promisc on allmulticast on
#ip link set dev enp4s0f1 vf 3 mac b4:96:91:ed:63:53 trust on promisc on allmulticast on
@@ -0,0 +1,16 @@
[Unit]
Description=NIC performance tuning for enp4s0f0np0, enp4s1f12np12 and vmbr0
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -G enp4s1f12np12 rx 4096 tx 4096
ExecStart=/sbin/ip link set enp4s1f12np12 txqueuelen 10000
ExecStart=/usr/sbin/ethtool -G enp4s0f0np0 rx 4096 tx 4096
ExecStart=/sbin/ip link set enp4s0f0np0 txqueuelen 10000
ExecStart=/sbin/ip link set vmbr0 txqueuelen 10000
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
+9
View File
@@ -0,0 +1,9 @@
[Unit]
Description=Script to enable SR-IOV on boot for enp4s0
[Service]
Type=oneshot
ExecStart=/usr/bin/bash -c '/usr/bin/echo 0 > /sys/class/net/enp4s0f0np0/device/sriov_numvfs'
ExecStart=/usr/bin/bash -c '/usr/bin/echo 4 > /sys/class/net/enp4s0f1np1/device/sriov_numvfs'
ExecStart=/opt/ergosteur/set-ixgbe-vfmacs-enp4s0.sh
[Install]
WantedBy=multi-user.target
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh -e
ip link set dev enp130s0f0 vf 0 mac a0:36:9f:5d:3f:40 trust on promisc on allmulticast on
ip link set dev enp130s0f0 vf 1 mac a0:36:9f:5d:3f:41 trust on promisc on allmulticast on
ip link set dev enp130s0f0 vf 2 mac a0:36:9f:5d:3f:42 trust on promisc on allmulticast on
ip link set dev enp130s0f0 vf 3 mac a0:36:9f:5d:3f:43 trust on promisc on allmulticast on
ip link set dev enp130s0f1 vf 0 mac a0:36:9f:5d:3f:50 trust on promisc on allmulticast on
ip link set dev enp130s0f1 vf 1 mac a0:36:9f:5d:3f:51 trust on promisc on allmulticast on
ip link set dev enp130s0f1 vf 2 mac a0:36:9f:5d:3f:52 trust on promisc on allmulticast on
ip link set dev enp130s0f1 vf 3 mac a0:36:9f:5d:3f:53 trust on promisc on allmulticast on
+9
View File
@@ -0,0 +1,9 @@
[Unit]
Description=Script to enable SR-IOV on boot for enp130s0
[Service]
Type=oneshot
ExecStart=/usr/bin/bash -c '/usr/bin/echo 4 > /sys/class/net/enp130s0f0/device/sriov_numvfs'
ExecStart=/usr/bin/bash -c '/usr/bin/echo 4 > /sys/class/net/enp130s0f1/device/sriov_numvfs'
ExecStart=/opt/ergosteur/set-ixgbe-vfmacs-enp130s0.sh
[Install]
WantedBy=multi-user.target