Home
Help
Search
Login
Register
OPNsense Forum
»
English Forums
»
Development and Code Review
(Moderator:
fabian
) »
PPPoE and Receive Packet Steering (RPS)
« previous
next »
Print
Pages: [
1
]
Author
Topic: PPPoE and Receive Packet Steering (RPS) (Read 7166 times)
bunchofreeds
Full Member
Posts: 203
Karma: 11
PPPoE and Receive Packet Steering (RPS)
«
on:
November 07, 2021, 11:24:16 pm »
Hi,
Is anyone able to confirm if Receive Packet Steering would allow a PPPoE connection to be distributed across multiple CPU's and therefore increase the performance of this type of connection in a multi CPU deployment?
https://forum.opnsense.org/index.php?topic=24409.msg121444#msg121444
This is a feature available in Linux but is not current in FreeBSD
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/performance_tuning_guide/network-rps
There is a FreeBSD version but it was created in 2011 during Googles Summer of Code I think
https://github.com/gokzy/freebsd-rps/wiki/Receive-Packet-Steering-on-FreeBSD
Logged
franco
Administrator
Hero Member
Posts: 17661
Karma: 1611
Re: PPPoE and Receive Packet Steering (RPS)
«
Reply #1 on:
November 08, 2021, 09:05:10 am »
That's an interesting find, thanks! The patch doesn't look very complicated and might be compatible with newer FreeBSD versions, though looking at it:
* the use of M_FLOWID looks like when RSS is active RPS cannot be active
* the hash being used might not be the best fit nowadays
* only when ether_demux() is called by PPPoE code it can accelerate it
I'm not sure about that last part in particular.
Cheers,
Franco
Logged
bunchofreeds
Full Member
Posts: 203
Karma: 11
Re: PPPoE and Receive Packet Steering (RPS)
«
Reply #2 on:
November 08, 2021, 09:01:38 pm »
Thanks for taking a look at this Franco,
Unfortunately I don't have any ability to progress this so was hoping that anyone with code skills could take a look. So thank you.
I think the plan for the FreeBSD patch was to replicate what exists in Linux, but I have no idea how successful it is or any idea how to test it out.
Also after some reading up on RSS, RPS and RFS it seems that a user would choose either RSS or RPS depending on what they are trying to achieve.
RSS is best for protocols that can be handled within NIC hardware. Whereas RPS is more flexible but consumes additional CPU cycles to load share across CPU's
https://www.alibabacloud.com/blog/597128
I found the above to be a good write up.
Also this
https://wiki.freebsd.org/DevSummit/201305/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD
«
Last Edit: November 08, 2021, 09:44:48 pm by bunchofreeds
»
Logged
alexdelprete
Jr. Member
Posts: 73
Karma: 4
Re: PPPoE and Receive Packet Steering (RPS)
«
Reply #3 on:
December 09, 2021, 06:20:12 am »
I found this post on freebsd-net mailing-list:
https://freebsd.markmail.org/message/5kuryot256poxznv
I also wrote an email to the author of the post, askinf for more info about that.
Thanks for your links and findings about the topic.
Logged
Print
Pages: [
1
]
« previous
next »
OPNsense Forum
»
English Forums
»
Development and Code Review
(Moderator:
fabian
) »
PPPoE and Receive Packet Steering (RPS)