Date: Sun, 10 Jul 2022 13:32:52 +0000 (UTC) From: "Bjoern A. Zeeb" <bz@FreeBSD.org> To: "Alexander V. Chernikov" <melifaro@FreeBSD.org> Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 50fa27e795ea - main - netinet6: fix interface handling for loopback traffic Message-ID: <alpine.BSF.2.00.2207101330050.68830@ai.fobar.qr> In-Reply-To: <202207101248.26ACmWT1069733@gitrepo.freebsd.org> References: <202207101248.26ACmWT1069733@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 10 Jul 2022, Alexander V. Chernikov wrote: > The branch main has been updated by melifaro: > > URL: https://cgit.FreeBSD.org/src/commit/?id=50fa27e795eaae97dae87ac4532799f7aea87e9f > > commit 50fa27e795eaae97dae87ac4532799f7aea87e9f > Author: Alexander V. Chernikov <melifaro@FreeBSD.org> > AuthorDate: 2022-07-10 12:27:23 +0000 > Commit: Alexander V. Chernikov <melifaro@FreeBSD.org> > CommitDate: 2022-07-10 12:47:47 +0000 > > netinet6: fix interface handling for loopback traffic > > Currently, processing of IPv6 local traffic is partially broken: > link-local connection fails and global unicast connect() takes > 3 seconds to complete. > This happens due to the combination of multiple factors. > IPv6 code passes original interface "origifp" when passing > traffic via loopack to retain the scope that is mandatory for the > correct hadling of link-local traffic. First problem is that the logic > of passing source interface is not working correcly for TCP connections, > resulting in passing "origifp" on the first 2 connection attempts and > lo0 on the subsequent ones. Second problem is that source address > validation logic skips its checks iff the source interface is loopback, > which doesn't cover "origifp" case. > More detailed description is available at https://reviews.freebsd.org/D35732 > > Fix the first problem by untangling&simplifying ifp/origifp logic. > Fix the second problem by switching source address validation check to > using M_LOOP mbuf flag instead of interface type. > > PR: 265089 > Reviewed by: ae, bz(previous version) I did not review, I had only commented on D35117. > Differential Revision: https://reviews.freebsd.org/D35732 > MFC after: 2 weeks > --- > sys/netinet6/ip6_input.c | 2 +- > sys/netinet6/ip6_output.c | 61 ++++++++++++++++++----------------- > tests/sys/netinet6/test_ip6_output.py | 4 +-- > 3 files changed, 35 insertions(+), 32 deletions(-) -- Bjoern A. Zeeb r15:7
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.2207101330050.68830>