https://github.com/torvalds/linux
Revision 7eaf1f37b8817c608c4e959d69986ef459d345cd authored by Tariq Toukan on 31 January 2022, 08:26:19 UTC, committed by Saeed Mahameed on 24 February 2022, 00:08:16 UTC
For RX TLS device-offloaded packets, the HW spec guarantees checksum
validation for the offloaded packets, but does not define whether the
CQE.checksum field matches the original packet (ciphertext) or
the decrypted one (plaintext). This latitude allows architetctural
improvements between generations of chips, resulting in different decisions
regarding the value type of CQE.checksum.

Hence, for these packets, the device driver should not make use of this CQE
field. Here we block CHECKSUM_COMPLETE usage for RX TLS device-offloaded
packets, and use CHECKSUM_UNNECESSARY instead.

Value of the packet's tcp_hdr.csum is not modified by the HW, and it always
matches the original ciphertext.

Fixes: 1182f3659357 ("net/mlx5e: kTLS, Add kTLS RX HW offload support")
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
1 parent 0b89429
History
Tip revision: 7eaf1f37b8817c608c4e959d69986ef459d345cd authored by Tariq Toukan on 31 January 2022, 08:26:19 UTC
net/mlx5e: kTLS, Use CHECKSUM_UNNECESSARY for device-offloaded packets
Tip revision: 7eaf1f3
File Mode Size
bpf
cgroup
configs
debug
dma
entry
events
futex
gcov
irq
kcsan
livepatch
locking
power
printk
rcu
sched
time
trace
.gitignore -rw-r--r-- 67 bytes
Kconfig.freezer -rw-r--r-- 92 bytes
Kconfig.hz -rw-r--r-- 1.7 KB
Kconfig.locks -rw-r--r-- 4.9 KB
Kconfig.preempt -rw-r--r-- 4.7 KB
Makefile -rw-r--r-- 5.2 KB
acct.c -rw-r--r-- 15.4 KB
async.c -rw-r--r-- 9.2 KB
audit.c -rw-r--r-- 64.8 KB
audit.h -rw-r--r-- 10.7 KB
audit_fsnotify.c -rw-r--r-- 5.2 KB
audit_tree.c -rw-r--r-- 25.6 KB
audit_watch.c -rw-r--r-- 13.7 KB
auditfilter.c -rw-r--r-- 34.4 KB
auditsc.c -rw-r--r-- 80.5 KB
backtracetest.c -rw-r--r-- 1.9 KB
bounds.c -rw-r--r-- 751 bytes
capability.c -rw-r--r-- 14.8 KB
cfi.c -rw-r--r-- 8.1 KB
compat.c -rw-r--r-- 6.8 KB
configs.c -rw-r--r-- 2.0 KB
context_tracking.c -rw-r--r-- 6.4 KB
cpu.c -rw-r--r-- 65.2 KB
cpu_pm.c -rw-r--r-- 6.1 KB
crash_core.c -rw-r--r-- 11.9 KB
crash_dump.c -rw-r--r-- 1.1 KB
cred.c -rw-r--r-- 24.4 KB
delayacct.c -rw-r--r-- 5.9 KB
dma.c -rw-r--r-- 3.3 KB
exec_domain.c -rw-r--r-- 1.1 KB
exit.c -rw-r--r-- 45.3 KB
extable.c -rw-r--r-- 3.8 KB
fail_function.c -rw-r--r-- 7.0 KB
fork.c -rw-r--r-- 76.9 KB
freezer.c -rw-r--r-- 4.4 KB
gen_kheaders.sh -rwxr-xr-x 3.1 KB
groups.c -rw-r--r-- 4.8 KB
hung_task.c -rw-r--r-- 9.4 KB
iomem.c -rw-r--r-- 4.7 KB
irq_work.c -rw-r--r-- 7.4 KB
jump_label.c -rw-r--r-- 21.4 KB
kallsyms.c -rw-r--r-- 22.2 KB
kcmp.c -rw-r--r-- 5.4 KB
kcov.c -rw-r--r-- 28.2 KB
kexec.c -rw-r--r-- 7.4 KB
kexec_core.c -rw-r--r-- 31.2 KB
kexec_elf.c -rw-r--r-- 11.4 KB
kexec_file.c -rw-r--r-- 33.6 KB
kexec_internal.h -rw-r--r-- 924 bytes
kheaders.c -rw-r--r-- 1.6 KB
kmod.c -rw-r--r-- 5.0 KB
kprobes.c -rw-r--r-- 70.3 KB
ksysfs.c -rw-r--r-- 6.3 KB
kthread.c -rw-r--r-- 41.6 KB
latencytop.c -rw-r--r-- 7.2 KB
module-internal.h -rw-r--r-- 1.2 KB
module.c -rw-r--r-- 121.1 KB
module_decompress.c -rw-r--r-- 5.7 KB
module_signature.c -rw-r--r-- 1.1 KB
module_signing.c -rw-r--r-- 1.1 KB
notifier.c -rw-r--r-- 15.9 KB
nsproxy.c -rw-r--r-- 12.8 KB
padata.c -rw-r--r-- 27.4 KB
panic.c -rw-r--r-- 18.1 KB
params.c -rw-r--r-- 23.1 KB
pid.c -rw-r--r-- 18.2 KB
pid_namespace.c -rw-r--r-- 11.3 KB
profile.c -rw-r--r-- 13.3 KB
ptrace.c -rw-r--r-- 37.5 KB
range.c -rw-r--r-- 3.0 KB
reboot.c -rw-r--r-- 21.5 KB
regset.c -rw-r--r-- 1.9 KB
relay.c -rw-r--r-- 30.0 KB
resource.c -rw-r--r-- 48.9 KB
resource_kunit.c -rw-r--r-- 4.3 KB
rseq.c -rw-r--r-- 10.3 KB
scftorture.c -rw-r--r-- 20.0 KB
scs.c -rw-r--r-- 2.8 KB
seccomp.c -rw-r--r-- 62.3 KB
signal.c -rw-r--r-- 123.1 KB
smp.c -rw-r--r-- 33.5 KB
smpboot.c -rw-r--r-- 11.7 KB
smpboot.h -rw-r--r-- 640 bytes
softirq.c -rw-r--r-- 23.6 KB
stackleak.c -rw-r--r-- 4.1 KB
stacktrace.c -rw-r--r-- 10.4 KB
static_call.c -rw-r--r-- 12.5 KB
stop_machine.c -rw-r--r-- 17.8 KB
sys.c -rw-r--r-- 64.4 KB
sys_ni.c -rw-r--r-- 10.1 KB
sysctl-test.c -rw-r--r-- 10.7 KB
sysctl.c -rw-r--r-- 67.7 KB
task_work.c -rw-r--r-- 4.6 KB
taskstats.c -rw-r--r-- 15.2 KB
torture.c -rw-r--r-- 25.3 KB
tracepoint.c -rw-r--r-- 20.3 KB
tsacct.c -rw-r--r-- 4.8 KB
ucount.c -rw-r--r-- 9.1 KB
uid16.c -rw-r--r-- 5.1 KB
uid16.h -rw-r--r-- 442 bytes
umh.c -rw-r--r-- 15.1 KB
up.c -rw-r--r-- 1.5 KB
user-return-notifier.c -rw-r--r-- 1.3 KB
user.c -rw-r--r-- 5.9 KB
user_namespace.c -rw-r--r-- 35.3 KB
usermode_driver.c -rw-r--r-- 4.3 KB
utsname.c -rw-r--r-- 3.8 KB
utsname_sysctl.c -rw-r--r-- 3.2 KB
watch_queue.c -rw-r--r-- 16.4 KB
watchdog.c -rw-r--r-- 22.4 KB
watchdog_hld.c -rw-r--r-- 7.7 KB
workqueue.c -rw-r--r-- 168.4 KB
workqueue_internal.h -rw-r--r-- 2.4 KB

back to top