mainline as of which kernel version?
Looks like 6.6
Hello @frank-w and @tabrisnet
sorry for the delay as I had working on hardware issues with my sfp nas solution⦠I wrote script which is running as a systemd service to configure rss/lro every startup.
It should work for more IP aliases, and because several issues appeared, I was trying to comment every non-stright solution. Script should produce easy readable output like:
OK irq 104 smp_affinity set to 1
OK irq 105 smp_affinity set to 2
OK irq 106 smp_affinity set to 4
OK irq 107 smp_affinity set to 8
OK rps value set to 0
OK HW LRO RX rule for sfp2 with dest ip 192.168.2.161 created
OK LRO for sfp2 enabled
OK HW LRO RX rule for sfp1 with dest ip 192.168.2.129 created
OK LRO for sfp1 enabled
or also ERROR in case of any problem. rsslro_set.sh (4.7 KB)
Please try it and let me know if it helps or not.
Have you bridged sfps or are subnets small enough to have their own?
Thank you very much for the script,iām not sure about the lro state in ethtool.
on which kernel-version do you have it running? how are the results of your tests?
I am using 6.16.0-rc1-bpi-r4-rsslro, and bridged are only lan1-3 ports, both sfp and wan are routed.
Hmm, just looked into the script shortly, and instead of parsing dmesg output, I would rather use /sys structure today. I did not know how to work with it when the script is created. ![]()
Hereās my script: BPI-R4 script for Receive-Side-Scaling & interrupt balancing Ā· GitHub
it has issues for sure⦠but it does use the /sys/devices [and no part of dmesg] and I hope itās a bit more readable. BUT⦠it also has an issue or 3 in that it more or less operates via assumed-state rather than rsslro_set.shās better state verification.
But I also donāt see how it gets around how many rules you can have. Mind you, my assumptions are much more complex. Iām trying to have half a dozen VLANs.
e.g.
tabris@ratatosk:~$ ip a|grep -A2 ethLAN|egrep '(ethLAN|inet )'
4: ethLAN: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.88.253/23 brd 192.168.89.255 scope global ethLAN
10: guest@ethLAN: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 192.168.80.253/24 brd 192.168.80.255 scope global guest
11: iot@ethLAN: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 192.168.82.253/24 brd 192.168.82.255 scope global iot
12: modem@ethLAN: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 192.168.100.253/24 brd 192.168.100.255 scope global modem
13: surv@ethLAN: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 192.168.81.253/24 brd 192.168.81.255 scope global surv
Thanks for sharing, I bookmarked it and I will take a look later, whenever I have to deal with vlans. It is not priority forme at this time.