All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Toke Høiland-Jørgensen" <toke@kernel.org>
To: Ramses de Norre via B4 Relay
	<devnull+ramses.well-founded.dev@kernel.org>,
	"Jason A. Donenfeld" <Jason@zx2c4.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Martin KaFai Lau <kafai@fb.com>
Cc: wireguard@lists.zx2c4.com, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Ramses de Norre <ramses@well-founded.dev>
Subject: Re: [PATCH net] wireguard: queueing: preserve tstamp_type in wg_reset_packet()
Date: Thu, 27 Aug 2026 15:28:19 +0200	[thread overview]
Message-ID: <87a4q74rrg.fsf@toke.dk> (raw)
In-Reply-To: <20260827-wg-tstamp-v1-1-4acfebb855ef@well-founded.dev>

Ramses de Norre via B4 Relay
<devnull+ramses.well-founded.dev@kernel.org> writes:

> From: Ramses de Norre <ramses@well-founded.dev>
>
> Sending traffic through a wireguard tunnel on a host using the fq
> qdisc fills the log with:
>
>   fq: likely mono tstamp with tstamp_type 0
>
> An skb carries a timestamp in skb->tstamp and, separately, a
> skb->tstamp_type field recording which clock that timestamp came from.
> The two have to agree.
>
> When wireguard encapsulates a packet it calls wg_reset_packet(), which
> clears the fields that must not leak from the inner packet into the
> tunnel packet. It does so in two steps:
>
>   skb_scrub_packet(skb, true);
>   memset(&skb->headers, 0, sizeof(skb->headers));
>
> skb_scrub_packet() deliberately keeps skb->tstamp when it holds a
> monotonic timestamp: that value is the time the packet is scheduled to
> be sent, and the qdisc still needs it. The memset then zeroes
> skb->tstamp_type, because that field sits inside the headers group
> while skb->tstamp does not. The packet therefore leaves wireguard
> carrying a monotonic timestamp labelled as a realtime one.
>
> Nothing noticed until commit c4f796c4f16b ("net_sched: sch_fq: convert
> skb->tstamp if not monotonic"): fq used to assume every timestamp was
> monotonic. It now consults tstamp_type, spots the mismatch, warns, and
> falls back to treating the value as monotonic. Pacing still ends up
> correct, so the log spam is the actual problem.
>
> Save tstamp_type before the memset and restore it when encapsulating,
> next to the hash fields that are already carried over this way. When
> decapsulating it stays zeroed, which is right: an incoming packet's
> timestamp is a realtime receive timestamp.
>
> Fixes: de799101519a ("net: Add skb_clear_tstamp() to keep the mono delivery_time")
> Signed-off-by: Ramses de Norre <ramses@well-founded.dev>

Seems reasonable:

Reviewed-by: Toke Høiland-Jørgensen <toke@kernel.org>

  reply	other threads:[~2026-08-27 13:28 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-27 11:52 [PATCH net] wireguard: queueing: preserve tstamp_type in wg_reset_packet() Ramses de Norre via B4 Relay
2026-08-27 11:52 ` Ramses de Norre
2026-08-27 13:28 ` Toke Høiland-Jørgensen [this message]
2026-08-27 13:32   ` Eric Dumazet
2026-08-27 13:35 ` Jason A. Donenfeld
2026-08-31  3:25 ` Jason A. Donenfeld
2026-08-31 10:24   ` Ramses
2026-09-16  9:26     ` Jason A. Donenfeld

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=87a4q74rrg.fsf@toke.dk \
    --to=toke@kernel.org \
    --cc=Jason@zx2c4.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=devnull+ramses.well-founded.dev@kernel.org \
    --cc=edumazet@google.com \
    --cc=kafai@fb.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=ramses@well-founded.dev \
    --cc=wireguard@lists.zx2c4.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.