Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net/tap: fix RSS for fragmented packets
[ upstream commit db6a3ddb166bb53ac7929e4b5c4cad94f6fa6871 ] As per analysis on Tap PMD, the existing RSS algorithm considering 4-tuple (Src-IP, Dst-IP, Src-port and Dst-port) and identification of fragment packets is not done, thus we are seeing all the fragmented chunks of single packet differs in RSS hash value and distributed across multiple queues. The RSS algorithm assumes that, all the incoming IP packets are based on L4-protocol(UDP/TCP) and trying to fetch the L4 fields(Src-port and Dst-port) for each incoming packet, but for the fragmented chunks these L4-header will not be present (except for first packet) and should not consider in RSS hash for L4 header fields in-case of fragmented chunks. Which is a bug in the RSS algorithm implemented in the BPF functionality under TAP PMD. So, modified the RSS eBPF C-program and generated the structure of C-array in the 'tap_bpf_insns.h' file, which is in eBPF byte-code instructions format. Bugzilla ID: 870 Fixes: cdc07e8 ("net/tap: add eBPF program file") Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
- Loading branch information