[pdm-devel] [PATCH pve-network v3 6/6] api: zones: update schema of endpoints

Shannon Sterz s.sterz at proxmox.com
Wed Sep 3 11:37:02 CEST 2025


small comments in-line

On Tue Sep 2, 2025 at 4:09 PM CEST, Stefan Hanreich wrote:
> The possible properties returned by the zone endpoints were only
> partly documented. Add all missing properties and improve descriptions
> for existing properties.
>
> Extract all duplicate properties into a separate variable, so we
> don't have to rewrite the whole API definition for every endpoint.
>
> Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
> ---
>  src/PVE/API2/Network/SDN/Zones.pm        | 203 +++++++++++++++++++++--
>  src/PVE/Network/SDN/Zones/EvpnPlugin.pm  |  22 ++-
>  src/PVE/Network/SDN/Zones/QinQPlugin.pm  |   6 +-
>  src/PVE/Network/SDN/Zones/VlanPlugin.pm  |   1 +
>  src/PVE/Network/SDN/Zones/VxlanPlugin.pm |  15 +-
>  5 files changed, 218 insertions(+), 29 deletions(-)
>

-->8 snip 8<--

> +    'vxlan-port' => {
> +        description =>
> +            "UDP port that should be used for the VXLAN tunnel (default 4789). VXLAN zone only.",

wouldn't it make sense to define a `default` property here then? so:

    default => 4789,

-->8 snip 8<--

>          'rt-import' => {
>              type => 'string',
> -            description => "Route-Target import",
> +            description =>
> +                'List of Route Targets that should be imported into the VRF of the zone',

nit: you added a period to all other descriptions here, so end this
sentence with one too?

>              optional => 1,
>              format => 'pve-sdn-bgp-rt-list',
>          },
> diff --git a/src/PVE/Network/SDN/Zones/QinQPlugin.pm b/src/PVE/Network/SDN/Zones/QinQPlugin.pm
> index 5806e69..3c72d35 100644
> --- a/src/PVE/Network/SDN/Zones/QinQPlugin.pm
> +++ b/src/PVE/Network/SDN/Zones/QinQPlugin.pm
> @@ -18,11 +18,11 @@ sub properties {
>          tag => {
>              type => 'integer',
>              minimum => 0,
> -            description => "Service-VLAN Tag",
> +            description => "Service-VLAN Tag (outer VLAN)",
>          },

since this is so short, i think it's probably fine to leave that without
a period here.

>          mtu => {
>              type => 'integer',
> -            description => "MTU",
> +            description => "MTU of the zone, will be used for the created VNet bridges.",
>              optional => 1,
>          },
>          'vlan-protocol' => {
> @@ -30,6 +30,8 @@ sub properties {
>              enum => ['802.1q', '802.1ad'],
>              default => '802.1q',
>              optional => 1,
> +            description =>
> +                "Which VLAN protocol should be used for the creation of the QinQ zone",

nit: add a period here too?

>          },
>      };
>  }
> diff --git a/src/PVE/Network/SDN/Zones/VlanPlugin.pm b/src/PVE/Network/SDN/Zones/VlanPlugin.pm
> index 90f16bf..9d6932f 100644
> --- a/src/PVE/Network/SDN/Zones/VlanPlugin.pm
> +++ b/src/PVE/Network/SDN/Zones/VlanPlugin.pm
> @@ -27,6 +27,7 @@ sub properties {
>      return {
>          'bridge' => {
>              type => 'string',
> +            description => 'the bridge for which VLANs should be managed',

nit: capitalize beginning of sentence and end it in a period?

>          },
>          'bridge-disable-mac-learning' => {
>              type => 'boolean',
> diff --git a/src/PVE/Network/SDN/Zones/VxlanPlugin.pm b/src/PVE/Network/SDN/Zones/VxlanPlugin.pm
> index 8f6fba0..7ab89da 100644
> --- a/src/PVE/Network/SDN/Zones/VxlanPlugin.pm
> +++ b/src/PVE/Network/SDN/Zones/VxlanPlugin.pm
> @@ -27,21 +27,22 @@ sub type {
>  sub properties {
>      return {
>          'peers' => {
> -            description => "peers address list.",
> +            description =>
> +                "Comma-separated list of peers, that are part of the VXLAN zone. Usually the IPs of the nodes.",
>              type => 'string',
>              format => 'ip-list',
>          },
> -        fabric => {
> -            description => "SDN fabric to use as underlay for this VXLAN zone.",
> -            type => 'string',
> -            format => 'pve-sdn-fabric-id',
> -        },
>          'vxlan-port' => {
> -            description => "Vxlan tunnel udp port (default 4789).",
> +            description => "UDP port that should be used for the VXLAN tunnel (default 4789).",
>              minimum => 1,
>              maximum => 65536,

could also define the default here too?

>              type => 'integer',
>          },
> +        fabric => {
> +            description => "SDN fabric to use as underlay for this VXLAN zone.",
> +            type => 'string',
> +            format => 'pve-sdn-fabric-id',
> +        },
>      };
>  }
>





More information about the pdm-devel mailing list