From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id AF8121FF137 for ; Tue, 17 Mar 2026 12:21:21 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6D660AD69; Tue, 17 Mar 2026 12:21:32 +0100 (CET) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773746482; x=1774351282; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=IlokUNE+x5kEnjSdoTBJvhfHBVbFBYcZ7ZI6rQkY3dQ=; b=PK+2Vsc/ErZw4YG2HH5qMP4cRKl0nA27GOSXAuqszrwtGHLTLVBeqLz8qKjODulIvA LXSPTS8XuXYB1cimusQYQp5ycXzI9j01Oi3TT2CnIxj6FoPcfwPcleo/q2JAOZCThuPj Ms1b9qjt69JsoM7ENUQmohnHQ5hykoN93sXytbC48HH1l186xuLVCkAxpG2BLpmUgow0 qN7vZHuEXwVL7wlf+1ick6qOjJnkDrqAJMpNJL7aoRfhuywjUcdDQFyRwymSYPOMjcTr 8NlCcO+chM/0K+0IRUU0TkfDNgXRMjFdAPC9V6ffu+/exdGi3KrD6JWPi8ghVGMZgvBk yrmQ== X-Gm-Message-State: AOJu0YxJfkCRzOZKyk970iYP5/SgOvW6nu1S61xhg4uMGBGt4uRNUsfd 4ksTsHLRfY0KjSWeVx05Fcqcyj+4PPPKN+bzuDa0yM9wqJkmheaXAQV0QhT6ILwldM3H X-Gm-Gg: ATEYQzxaVrDb5e3csQLKpEL0t4bnZEtFr6phIguzwbCkMnmNy3dU1tKUVqx6KoIEkiw Ge9LvICaJfbDj52miMeWvcPKKG9j+QmCy0y9OXIZTU3g34B+ZURuE9VZgRMsdlt4zesi0x68WSJ GBsfT8gQ2zpC0sz8SYVQTZwVtSPxMvIna8Pl9uvOI+aPJnKzfNjDmMna5+AQLnB/Y/51mgjAPEp If8Egi7VXsyB4QPQC9h2IrTm24G9+oXRfzGPMMEXMIthwOZ3JVaXxS/2JR3h2vsZHPlsSpE2mst l1/iCc1eq62lisiW/Q4noj6n8mxIryASVOPQjLh9g5uOA0uaZiqIxpybx5/mJxxfaXAve8RUHxV Q4ScIjy0TGIg08vLJoHnCFpMh82IMeNQ4W4MRXQQK/BuUZD223r9yeUkposFE3ZVCTmrgLWcnMJ jrCWxCN46yPs9svBjoZuH+mXTJV1dMcWUdOcSHF2YBwGfgdozI5rP6WfASdE9bNHmOO5NXp1NCa 252A/6V+LmhKEl0KHZuSc//46r0o5HNBd1ZRea6GTfKFTjPK6Nu32ItvFlS X-Received: by 2002:a17:90b:1d09:b0:35a:1762:92fc with SMTP id 98e67ed59e1d1-35a2205584fmr13355586a91.26.1773746482166; Tue, 17 Mar 2026 04:21:22 -0700 (PDT) From: Ryosuke Nakayama To: pve-devel@lists.proxmox.com Subject: [RFC PATCH pve-common] network: add VPP bridge helpers for vhost-user dataplane Date: Tue, 17 Mar 2026 20:21:16 +0900 Message-ID: <20260317112116.54850-2-ryosuke.nakayama@ryskn.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260317112116.54850-1-ryosuke.nakayama@ryskn.com> References: <20260316222816.42944-1-ryosuke.nakayama@ryskn.com> <20260317112116.54850-1-ryosuke.nakayama@ryskn.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 1.065 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy FREEMAIL_ENVFROM_END_DIGIT 1 Envelope-from freemail username ends in digit FREEMAIL_FORGED_FROMDOMAIN 0.249 2nd level domains in From and EnvelopeFrom freemail headers are different FREEMAIL_FROM 0.001 Sender email is commonly abused enduser mail provider HEADER_FROM_DIFFERENT_DOMAINS 0.25 From and EnvelopeFrom 2nd level mail domains are different KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust RCVD_IN_MSPIKE_H3 0.001 Good reputation (+3) RCVD_IN_MSPIKE_WL 0.001 Mailspike good senders SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: FB2PDXEESPWUIVC46WHP34XXRFMIPXDV X-Message-ID-Hash: FB2PDXEESPWUIVC46WHP34XXRFMIPXDV X-MailFrom: koyakiu666@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: unixtech X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: unixtech - 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 Signed-off-by: unixtech --- 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)