From: David Gibson <david@gibson.dropbear.id.au>
To: EJ Campbell <ej.campbell@gmail.com>
Cc: passt-dev@passt.top, sbrivio@redhat.com
Subject: Re: [PATCH] tap: don't let overheard traffic move addr_seen when serving a fixed address
Date: Fri, 19 Jun 2026 14:39:46 +1000 [thread overview]
Message-ID: <ajTIEvrdaQP2-g27@zatzit> (raw)
In-Reply-To: <20260611042619.3704495-1-ej.campbell@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2868 bytes --]
On Thu, Jun 11, 2026 at 04:26:19AM +0000, EJ Campbell wrote:
> Hi Stefano, David,
>
> Thanks for the careful review. David, good to know this is a known
> gap and not just my unusual topology.
>
> You both made the same point: --no-dhcp was the wrong condition.
> Agreed. v2 below keys on -a / --address having been given explicitly:
> a new per-family addr_fixed flag, set where -a is parsed, and the tap
> handlers skip the addr_seen updates when it's set.
Keying off -a is certainly much better than depending on --no-dhcp.
It's probably fine in practice, at least for now. It still doesn't
make a whole lot of logical sense to me.
The question here is whether we support the guest picking an address
other than what we told it: why should that depend on where the
address we told it came from (command line versus host netlink)? I
guess wanting to enforce that the guest uses the given address would
be somewhat correlated with wanting to specify an explicit addres, but
they don't seem inherently linked to me.
Of course, as I've said before, I tend to think supporting the guest
just picking a random address was always a mistake, but it's
established behaviour now.
> Stefano, on your other points:
>
> - IPv6: the global-address updates now get the same guard. I left
> addr_ll_seen tracking alone, since a global -a says nothing about
> which link-local address the guest picked.
>
> - The "behaviour unchanged" code comments are gone; that reasoning
> lives in the commit message now.
>
> - Whitespace: sorry about that; my mail client flattened the tabs
> in v1. This one comes straight from git send-email and applies
> cleanly here.
>
> David, on --no-address-snooping: happy to do a v3 with an explicit
> knob if you'd prefer, but keying on -a covered my case and keeps the
> option count down.
Yeah, I don't know. As above, I feel that makes more logical sense.
But I'll admit as an explicit option it's pretty clunky.
> One more data point since v1: I caught the failure in the act with
> --trace. After overhearing the namespace kernel's broadcasts (ARP
> probes, IGMP joins, sourced from the bridge's address), pasta's
> inbound splice dials the bridge instead of the -a address:
>
> Flow 0 (TCP connection (spliced)):
> HOST [127.0.0.1]:57280 -> [127.0.0.2]:22844
> => SPLICE [0.0.0.0]:0 -> [10.0.2.1]:80 <- bridge addr, not -a
> Flow 0 (TCP connection (spliced)): Error event on socket: Connection refused
>
> With the patch, a reproducer that failed one run in three (99 spliced
> connections per run) passed six consecutive runs.
--
David Gibson (he or they) | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you, not the other way
| around.
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2026-06-19 4:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-03 1:15 EJ Campbell
2026-06-05 11:57 ` Stefano Brivio
2026-06-09 1:54 ` David Gibson
2026-06-11 4:26 ` EJ Campbell
2026-06-19 4:39 ` David Gibson [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ajTIEvrdaQP2-g27@zatzit \
--to=david@gibson.dropbear.id.au \
--cc=ej.campbell@gmail.com \
--cc=passt-dev@passt.top \
--cc=sbrivio@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://passt.top/passt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).