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 08BEB1FF16B for ; Fri, 7 Nov 2025 09:58:59 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9C71AB9B0; Fri, 7 Nov 2025 09:59:39 +0100 (CET) From: Stefan Hanreich To: pdm-devel@lists.proxmox.com Date: Fri, 7 Nov 2025 09:59:21 +0100 Message-ID: <20251107085934.118815-2-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251107085934.118815-1-s.hanreich@proxmox.com> References: <20251107085934.118815-1-s.hanreich@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.181 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 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Subject: [pdm-devel] [PATCH proxmox 1/3] pve-api-types: add zone / vnet status reporting endpoints X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" Signed-off-by: Stefan Hanreich --- pve-api-types/pve-api.json | 286 ++++++++++++++++++++++++++++++++++++- 1 file changed, 282 insertions(+), 4 deletions(-) diff --git a/pve-api-types/pve-api.json b/pve-api-types/pve-api.json index 1775fdae..7ac1244b 100644 --- a/pve-api-types/pve-api.json +++ b/pve-api-types/pve-api.json @@ -50740,12 +50740,173 @@ "leaf": 1, "path": "/nodes/{node}/sdn/zones/{zone}/content", "text": "content" + }, + { + "info": { + "GET": { + "allowtoken": 1, + "description": "Get a list of all bridges (vnets) that are part of a zone, as well as the ports that are members of that bridge.", + "method": "GET", + "name": "bridges", + "parameters": { + "additionalProperties": 0, + "properties": { + "node": { + "description": "The cluster node name.", + "format": "pve-node", + "type": "string" + }, + "zone": { + "description": "zone name or \"localnetwork\"", + "type": "string" + } + } + }, + "permissions": { + "check": [ + "perm", + "/sdn/zones/{zone}", + [ + "SDN.Audit" + ] + ] + }, + "protected": 1, + "proxyto": "node", + "returns": { + "items": { + "description": "List of bridges contained in the SDN zone.", + "properties": { + "name": { + "description": "Name of the bridge.", + "type": "string" + }, + "ports": { + "description": "All ports that are members of the bridge", + "items": { + "description": "Information about bridge ports.", + "properties": { + "index": { + "description": "The index of the guests network device that this interface belongs to.", + "optional": 1, + "type": "number" + }, + "name": { + "description": "The name of the bridge port.", + "type": "string" + }, + "primary_vlan": { + "description": "The primary VLAN configured for the port of this bridge (= PVID). Only for VLAN-aware bridges.", + "optional": 1, + "type": "number" + }, + "vlans": { + "description": "A list of VLANs and VLAN ranges that are allowed for this bridge port in addition to the primary VLAN. Only for VLAN-aware bridges.", + "items": { + "description": "A single VLAN (123) or a VLAN range (234-435).", + "type": "string" + }, + "optional": 1, + "type": "array" + }, + "vmid": { + "description": "The ID of the guest that this interface belongs to.", + "optional": 1, + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + "vlan_filtering": { + "description": "Whether VLAN filtering is enabled for this bridge (= VLAN-aware).", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "leaf": 1, + "path": "/nodes/{node}/sdn/zones/{zone}/bridges", + "text": "bridges" + }, + { + "info": { + "GET": { + "allowtoken": 1, + "description": "Get the IP VRF of an EVPN zone.", + "method": "GET", + "name": "ip-vrf", + "parameters": { + "additionalProperties": 0, + "properties": { + "node": { + "description": "The cluster node name.", + "format": "pve-node", + "type": "string" + }, + "zone": { + "description": "Name of an EVPN zone.", + "type": "string" + } + } + }, + "permissions": { + "check": [ + "perm", + "/sdn/zones/{zone}", + [ + "SDN.Audit" + ] + ] + }, + "protected": 1, + "proxyto": "node", + "returns": { + "description": "All entries in the VRF table of zone {zone} of the node.This does not include /32 routes for guests on this host,since they are handled via the respective vnet bridge directly.", + "items": { + "properties": { + "ip": { + "description": "The CIDR of the route table entry.", + "format": "CIDR", + "type": "string" + }, + "metric": { + "description": "This route's metric.", + "type": "integer" + }, + "nexthops": { + "description": "A list of nexthops for the route table entry.", + "items": { + "description": "the interface name or ip address of the next hop", + "type": "string" + }, + "type": "array" + }, + "protocol": { + "description": "The protocol where this route was learned from (e.g. BGP).", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "leaf": 1, + "path": "/nodes/{node}/sdn/zones/{zone}/ip-vrf", + "text": "ip-vrf" } ], "info": { "GET": { "allowtoken": 1, - "description": "", + "description": "Directory index for SDN zone status.", "method": "GET", "name": "diridx", "parameters": { @@ -50769,9 +50930,7 @@ "/sdn/zones/{zone}", [ "SDN.Audit" - ], - "any", - 1 + ] ] }, "returns": { @@ -50853,6 +51012,124 @@ "leaf": 0, "path": "/nodes/{node}/sdn/zones", "text": "zones" + }, + { + "children": [ + { + "children": [ + { + "info": { + "GET": { + "allowtoken": 1, + "description": "Get the MAC VRF for a VNet in an EVPN zone.", + "method": "GET", + "name": "mac-vrf", + "parameters": { + "additionalProperties": 0, + "properties": { + "node": { + "description": "The cluster node name.", + "format": "pve-node", + "type": "string" + }, + "vnet": { + "completion": ("Code")[], + "description": "The SDN vnet object identifier.", + "format": "pve-sdn-vnet-id", + "type": "string" + } + } + }, + "permissions": { + "description": "Require 'SDN.Audit' permissions on '/sdn/zones//'", + "user": "all" + }, + "protected": 1, + "proxyto": "node", + "returns": { + "description": "All routes from the MAC VRF that this node self-originates or has learned via BGP.", + "items": { + "properties": { + "ip": { + "description": "The IP address of the MAC VRF entry.", + "format": "ip", + "type": "string" + }, + "mac": { + "description": "The MAC address of the MAC VRF entry.", + "format": "mac-addr", + "type": "string" + }, + "nexthop": { + "description": "The IP address of the nexthop.", + "format": "ip", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "leaf": 1, + "path": "/nodes/{node}/sdn/vnets/{vnet}/mac-vrf", + "text": "mac-vrf" + } + ], + "info": { + "GET": { + "allowtoken": 1, + "description": "", + "method": "GET", + "name": "diridx", + "parameters": { + "additionalProperties": 0, + "properties": { + "node": { + "description": "The cluster node name.", + "format": "pve-node", + "type": "string" + }, + "vnet": { + "completion": ("Code")[], + "description": "The SDN vnet object identifier.", + "format": "pve-sdn-vnet-id", + "type": "string" + } + } + }, + "permissions": { + "description": "Require 'SDN.Audit' permissions on '/sdn/zones//'", + "user": "all" + }, + "returns": { + "items": { + "properties": { + "subdir": { + "type": "string" + } + }, + "type": "object" + }, + "links": [ + { + "href": "{subdir}", + "rel": "child" + } + ], + "type": "array" + } + } + }, + "leaf": 0, + "path": "/nodes/{node}/sdn/vnets/{vnet}", + "text": "{vnet}" + } + ], + "leaf": 0, + "path": "/nodes/{node}/sdn/vnets", + "text": "vnets" } ], "info": { @@ -50874,6 +51151,7 @@ "permissions": { "user": "all" }, + "proxyto": "node", "returns": { "items": { "properties": {}, -- 2.47.3 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel