From: Stefan Hanreich <s.hanreich@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [pdm-devel] [PATCH proxmox 1/3] pve-api-types: add zone / vnet status reporting endpoints
Date: Fri, 7 Nov 2025 09:59:21 +0100 [thread overview]
Message-ID: <20251107085934.118815-2-s.hanreich@proxmox.com> (raw)
In-Reply-To: <20251107085934.118815-1-s.hanreich@proxmox.com>
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
---
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/<zone>/<vnet>'",
+ "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/<zone>/<vnet>'",
+ "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
next prev parent reply other threads:[~2025-11-07 8:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-07 8:59 [pdm-devel] [PATCH proxmox{, -datacenter-manager} 0/8] Integration of IP-VRF and MAC-VRF status to EVPN panel Stefan Hanreich
2025-11-07 8:59 ` Stefan Hanreich [this message]
2025-11-07 8:59 ` [pdm-devel] [PATCH proxmox 2/3] pve-api-types: generate ip-vrf / mac-vrf endpoints Stefan Hanreich
2025-11-07 8:59 ` [pdm-devel] [PATCH proxmox 3/3] pve-api-types: regenerate Stefan Hanreich
2025-11-07 8:59 ` [pdm-devel] [PATCH proxmox-datacenter-manager 1/5] server: api: sdn: add ip-vrf endpoint Stefan Hanreich
2025-11-07 8:59 ` [pdm-devel] [PATCH proxmox-datacenter-manager 2/5] server: api: sdn: add mac-vrf endpoint Stefan Hanreich
2025-11-07 8:59 ` [pdm-devel] [PATCH proxmox-datacenter-manager 3/5] ui: sdn: evpn: add zone status panel Stefan Hanreich
2025-11-07 8:59 ` [pdm-devel] [PATCH proxmox-datacenter-manager 4/5] ui: sdn: evpn: add vnet " Stefan Hanreich
2025-11-07 8:59 ` [pdm-devel] [PATCH proxmox-datacenter-manager 5/5] sdn: evpn: add detail panel to the evpn panel Stefan Hanreich
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=20251107085934.118815-2-s.hanreich@proxmox.com \
--to=s.hanreich@proxmox.com \
--cc=pdm-devel@lists.proxmox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox