Go to file
Francesco Ruggeri 59bcda1247 netfilter: conntrack: connection timeout after re-register
[ Upstream commit 4f25434bccc28cf8a07876ef5142a2869a674353 ]

If the first packet conntrack sees after a re-register is an outgoing
keepalive packet with no data (SEG.SEQ = SND.NXT-1), td_end is set to
SND.NXT-1.
When the peer correctly acknowledges SND.NXT, tcp_in_window fails
check III (Upper bound for valid (s)ack: sack <= receiver.td_end) and
returns false, which cascades into nf_conntrack_in setting
skb->_nfct = 0 and in later conntrack iptables rules not matching.
In cases where iptables are dropping packets that do not match
conntrack rules this can result in idle tcp connections to time out.

v2: adjust td_end when getting the reply rather than when sending out
    the keepalive packet.

Fixes: f94e63801ab2 ("netfilter: conntrack: reset tcp maxwin on re-register")
Signed-off-by: Francesco Ruggeri <fruggeri@arista.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-16 16:39:05 +08:00
Documentation x86/fpu: Allow multiple bits in clearcpuid= parameter 2021-03-16 16:38:22 +08:00
LICENSES Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
arch KVM: x86: emulating RDPID failure shall return #UD rather than #GP 2021-03-16 16:39:05 +08:00
block blk-mq: move cancel of hctx->run_work to the front of blk_exit_queue 2021-03-16 16:38:30 +08:00
certs Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
crypto crypto: algif_skcipher - EBUSY on aio should be an error 2021-03-16 16:38:24 +08:00
drivers scsi: bfa: Fix error return in bfad_pci_init() 2021-03-16 16:39:05 +08:00
fs ext4: limit entries returned when counting fsmap records 2021-03-16 16:39:03 +08:00
include PCI/IOV: Mark VFs as not implementing PCI_COMMAND_MEMORY 2021-03-16 16:39:00 +08:00
init kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot 2021-03-16 16:37:39 +08:00
ipc ipc/util.c: sysvipc_find_ipc() incorrectly updates position index 2021-03-16 16:27:51 +08:00
kernel module: statically initialize init section freeing data 2021-03-16 16:39:01 +08:00
lib lib/crc32.c: fix trivial typo in preprocessor condition 2021-03-16 16:38:58 +08:00
mm mm/page_owner: change split_page_owner to take a count 2021-03-16 16:38:58 +08:00
net netfilter: conntrack: connection timeout after re-register 2021-03-16 16:39:05 +08:00
package config/arm64: OPEN CONFIG_PSI and phytium configs 2021-03-16 11:02:59 +08:00
samples bpf: Fix fds_example SIGSEGV error 2021-03-16 16:33:24 +08:00
scripts scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting 2021-03-16 16:37:50 +08:00
security ima: Don't ignore errors from crypto_shash_update() 2021-03-16 16:38:21 +08:00
sound ASoC: fsl_sai: Instantiate snd_soc_dai_driver 2021-03-16 16:38:42 +08:00
tools selftests/powerpc: Fix eeh-basic.sh exit codes 2021-03-16 16:38:57 +08:00
usr Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
virt KVM: arm64: Assume write fault on S1PTW permission fault on instruction fetch 2021-03-16 16:37:40 +08:00
.clang-format Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
.cocciconfig Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
.get_maintainer.ignore Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
.gitattributes Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
.gitignore Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
COPYING Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
CREDITS Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
Kbuild Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
Kconfig Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
MAINTAINERS Documentation/llvm: add documentation on building w/ Clang/LLVM 2021-03-16 16:34:24 +08:00
Makefile kbuild: fix broken builds because of GZIP,BZIP2,LZOP variables 2021-03-16 16:35:20 +08:00
README Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
README.md Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
backport_remove_lists.txt Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
tools_key.pub Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00

README.md

Tencent Linux Kernel 4.0