public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Stefano Brivio <sbrivio@redhat.com>, passt-dev@passt.top
Cc: David Gibson <david@gibson.dropbear.id.au>
Subject: [PATCH 0/3] More graceful handling of kernels without SO_BINDTODEVICE
Date: Fri, 28 Nov 2025 16:33:55 +1100	[thread overview]
Message-ID: <20251128053358.1576513-1-david@gibson.dropbear.id.au> (raw)

Kernels before v5.7 don't allow unprivileged processes to use the
SO_BINDTODEVICE socket option, which is how we implement per-device
listening (e.g. "-t ""%eth0/80").  Currently we detect this error
quite late, and don't produce a particularly helpful error message.

Improve error messages in this case by explicitly probing for support
of the option early.

More importantly this will allow me to implement fallback handling for
older kernels in upcoming socket binding cleanups.

Note: this series applies directly on the current main branch, I'm
going to rebase my socket binding series on top of this, instead of
the other way around.

David Gibson (3):
  util: Correct error message on SO_BINDTODEVICE failure
  util: Extend sock_probe_mem() to sock_probe_features()
  conf: More useful errors for kernels without SO_BINDTODEVICE

 conf.c  |  6 ++++++
 passt.c |  2 +-
 passt.h |  1 +
 util.c  | 26 +++++++++++++++++++++-----
 util.h  |  2 +-
 5 files changed, 30 insertions(+), 7 deletions(-)

-- 
2.51.1


             reply	other threads:[~2025-11-28  5:34 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-28  5:33 David Gibson [this message]
2025-11-28  5:33 ` [PATCH 1/3] util: Correct error message on SO_BINDTODEVICE failure David Gibson
2025-11-28  5:33 ` [PATCH 2/3] util: Extend sock_probe_mem() to sock_probe_features() David Gibson
2025-11-28  5:33 ` [PATCH 3/3] conf: More useful errors for kernels without SO_BINDTODEVICE David Gibson

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=20251128053358.1576513-1-david@gibson.dropbear.id.au \
    --to=david@gibson.dropbear.id.au \
    --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).