[pdm-devel] [PATCH proxmox v2 4/4] pve-api-types: regenerate

Michael Köppl m.koeppl at proxmox.com
Mon Nov 10 16:25:36 CET 2025


While testing this, I noticed that for many of the structs defined here
(ClusterFirewallOptions, NodeFirewallOptions, etc.), the default values
do not match with the default values defined in the documentation (see
[0] and [1]). Didn't go through each of them to check, but when looking
at what the PDM UI displays compared to the PVE UI if the firewall
hasn't been explicitly configured, many of the values differ (e.g.
ebtables).

[0] https://pve.proxmox.com/pve-docs/chapter-pve-firewall.html#pve_firewall_cluster_wide_setup
[1] https://pve.proxmox.com/pve-docs/chapter-pve-firewall.html#pve_firewall_host_specific_configuration

On Wed Nov 5, 2025 at 5:35 PM CET, Hannes Laimer wrote:
> +            type: String,
> +        },
> +        policy_forward: {
> +            optional: true,
> +            type: FirewallFWPolicy,
> +        },
> +        policy_in: {
> +            optional: true,
> +            type: FirewallIOPolicy,
> +        },
> +        policy_out: {
> +            optional: true,
> +            type: FirewallIOPolicy,
> +        },
> +    },
> +)]
> +/// Object.
> +#[derive(Debug, serde::Deserialize, serde::Serialize)]
> +pub struct ClusterFirewallOptions {
> +    /// Enable ebtables rules cluster wide.
> +    #[serde(deserialize_with = "proxmox_serde::perl::deserialize_bool")]
> +    #[serde(default, skip_serializing_if = "Option::is_none")]
> +    pub ebtables: Option<bool>,
> +
> +    /// Enable or disable the firewall cluster wide.
> +    #[serde(deserialize_with = "proxmox_serde::perl::deserialize_u64")]
> +    #[serde(default, skip_serializing_if = "Option::is_none")]
> +    pub enable: Option<u64>,
> +
> +    /// Log ratelimiting settings
> +    #[serde(default, skip_serializing_if = "Option::is_none")]
> +    pub log_ratelimit: Option<String>,
> +
> +    #[serde(default, skip_serializing_if = "Option::is_none")]
> +    pub policy_forward: Option<FirewallFWPolicy>,
> +
> +    #[serde(default, skip_serializing_if = "Option::is_none")]
> +    pub policy_in: Option<FirewallIOPolicy>,
> +
> +    #[serde(default, skip_serializing_if = "Option::is_none")]
> +    pub policy_out: Option<FirewallIOPolicy>,
> +}




More information about the pdm-devel mailing list