Multi-core network packet steering: Difference between revisions

Content deleted Content added
FrancioT (talk | contribs)
corrected categories
FrancioT (talk | contribs)
correction for clarity
Line 22:
[[File:ARFS architecture.png|upright=1.7|thumb|Simple view of the accelerated receive flow steering architecture]]
Accelerated Receive Flow Steering (aRFS) is another hardware supported technique, born with the idea of leveraging [[Locality of reference|cache locality]] to improve performances by routing incoming packet flows to specific cores.
Differently from RSS which is a fully hardware independent hardware implementation, aRFS needs to interface with the software (the [[Kernel (operating system)|kernel]]) to properly function.<ref>{{Cite web|title=aRFS kernel linux docs|url=https://www.kernel.org/doc/html/v5.1/networking/scaling.html#accelerated-rfs|access-date=2025-07-08|website=kernel.org|publisher=The Linux Kernel documentation|language=en-US}}</ref><br>
RSS simply load balance incoming traffic across the cores; however if a packet flow is directed to the ''core i'' (as a result of the hash function) while the application needing the received packet is running on ''core j'', many cache misses could be avoided by simply forcing ''i=j'', so that packets are received exactly where they are needed and consumed.<ref name="aRFS by nvidea" /><br>
To do this aRFS doesn't forward packets directly from the result of the hash function, but using a configurable routing table (which can be filled and updated for instance by the [[Scheduling (computing)|scheduler]] through an [[API]]) packet flows can be steered to the specific consuming core.<ref name="aRFS by nvidea" /><ref name="aRFS by redhat" />