From: Ryosuke Nakayama <ryosuke.nakayama@ryskn.com>
To: pve-devel@lists.proxmox.com
Cc: unixtech <ryosuke_666@icloud.com>
Subject: [RFC PATCH pve-common] network: add VPP bridge helpers for vhost-user dataplane
Date: Tue, 17 Mar 2026 20:21:16 +0900 [thread overview]
Message-ID: <20260317112116.54850-2-ryosuke.nakayama@ryskn.com> (raw)
In-Reply-To: <20260317112116.54850-1-ryosuke.nakayama@ryskn.com>
From: unixtech <ryosuke_666@icloud.com>
- add is_vpp_bridge() to detect vppbrN interfaces
- skip tap_plug() for VPP bridges (vhost-user sockets are used instead
of tap interfaces)
- skip read_bridge_mtu() kernel path for VPP bridges, return 1500
Signed-off-by: Ryosuke Nakayama <ryosuke.nakayama@ryskn.com>
Signed-off-by: unixtech <ryosuke.nakayama@ryskn.com>
---
src/PVE/Network.pm | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/PVE/Network.pm b/src/PVE/Network.pm
index 573e34e..2c57ddb 100644
--- a/src/PVE/Network.pm
+++ b/src/PVE/Network.pm
@@ -128,6 +128,8 @@ sub tap_rate_limit {
sub read_bridge_mtu {
my ($bridge) = @_;
+ return 1500 if is_vpp_bridge($bridge);
+
my $mtu = PVE::Tools::file_read_firstline("/sys/class/net/$bridge/mtu");
die "bridge '$bridge' does not exist\n" if !$mtu;
@@ -515,6 +517,9 @@ sub tap_plug {
$opts = {} if !defined($opts);
$opts = { learning => $opts } if !ref($opts); # FIXME: backward compat, drop with PVE 8.0
+ # VPP bridges use vhost-user sockets, not tap devices
+ return if is_vpp_bridge($bridge);
+
if (!defined($opts->{learning})) { # auto-detect
$opts = {} if !defined($opts);
my $interfaces_config = PVE::INotify::read_file('interfaces');
@@ -966,6 +971,11 @@ sub is_ovs_bridge {
die "failed to query OVS to determine type of '$bridge': $res\n";
}
+sub is_vpp_bridge {
+ my ($bridge) = @_;
+ return defined($bridge) && $bridge =~ /^vppbr\d+$/;
+}
+
# for backward compat, prefer the methods from the leaner IPRoute2 module.
sub ip_link_details {
return PVE::IPRoute2::ip_link_details();
--
2.50.1 (Apple Git-155)
prev parent reply other threads:[~2026-03-17 11:21 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-16 22:28 [RFC PATCH 0/2] network: add VPP (fd.io) as alternative dataplane Ryosuke Nakayama
2026-03-16 22:28 ` [RFC PATCH manager 1/2] api: network: add VPP (fd.io) dataplane bridge support Ryosuke Nakayama
2026-03-16 22:28 ` [RFC PATCH widget-toolkit 2/2] ui: network: add VPP (fd.io) bridge type support Ryosuke Nakayama
2026-03-17 6:39 ` [RFC PATCH 0/2] network: add VPP (fd.io) as alternative dataplane Stefan Hanreich
2026-03-17 10:18 ` DERUMIER, Alexandre
2026-03-17 11:14 ` Ryosuke Nakayama
2026-03-17 11:14 ` [RFC PATCH qemu-server 1/2] qemu: add VPP vhost-user dataplane support Ryosuke Nakayama
2026-03-17 11:14 ` [RFC PATCH qemu-server 2/2] qemu: VPP: clean up vhost-user interfaces on stop, fix tx_queue_size Ryosuke Nakayama
2026-03-17 11:26 ` [RFC PATCH qemu-server 1/2] qemu: add VPP vhost-user dataplane support Ryosuke Nakayama
2026-03-17 11:21 ` [RFC PATCH 0/2] network: add VPP (fd.io) as alternative dataplane Ryosuke Nakayama
2026-03-17 11:21 ` Ryosuke Nakayama [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=20260317112116.54850-2-ryosuke.nakayama@ryskn.com \
--to=ryosuke.nakayama@ryskn.com \
--cc=pve-devel@lists.proxmox.com \
--cc=ryosuke_666@icloud.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.