mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 23:29:10 -04:00
9f24f0c4d4ddbd207e655697e78ef67a0374a481
The TTC (Traffic Type Classifier) table classifies the traffic and steers packet to TIRs, where RSS works based on the hash calculated from the selected packet fields. For AH/ESP packets, SPI and IP addresses are the fields used to calculate the hash value for RSS. So, it's hard to distribute packets to different receiving queues as there is usually only one SPI in that direction. IPSec hardware offloads, crypto offload and full (packet) offload were introduced later. For crypto offload, hardware does encryption, decryption and authentication, kernel does the others. Kernel always sends/receives formatted ESP packets with plaintext data instead of the ciphertext data, all other fields are unmodified. For full offload, hardware will take care of almost everything, kernel just sends/receives packets without any IPSec headers. Currently, all packets with ESP protocols are forwarded to IPSec offload tables if IPSec rules are configured. In a downstream patch, the decrypted packets will be recirculated to TTC table, in order to use RSS, which does the hash on L4 fields after IPSec headers are stripped by full offload. So those packets handled by crypto offload must filtered out, as they still have the ESP headers, but apparently no need to be decrypted again. To do that, ipsec_next_header is added for the packet matching, as it is valid only after passing through IPSec decryption. Signed-off-by: Jianbo Liu <jianbol@nvidia.com> Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Link: https://patch.msgid.link/1758179963-649455-2-git-send-email-tariqt@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Linux kernel
============
There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.
In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``. The formatted documentation can also be read online at:
https://www.kernel.org/doc/html/latest/
There are various text files in the Documentation/ subdirectory,
several of them using the reStructuredText markup notation.
Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.
Description
Languages
C
97%
Assembly
1%
Shell
0.6%
Rust
0.5%
Python
0.4%
Other
0.3%