all lists on lists.proxmox.com
 help / color / mirror / Atom feed
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


  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 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.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal