* [PATCH manager/network v2 0/4] Extend prefix-list CIDR range
@ 2026-05-13 8:34 Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-network v2 1/4] sdn: prefix-list: allow full prefix " Gabriel Goller
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Gabriel Goller @ 2026-05-13 8:34 UTC (permalink / raw)
To: pve-devel
This is a follow-up on the route-maps and prefix-list series by Stefan.
The goal is to extend the CIDR range on the prefix-list, making it possible to
allow prefixes such as 0.0.0.0/0, which is a classic "allow-all".
The current IP64CIDRAddress(ui)/CIDR(api) format only allows a minimum of /8 CIDR. In order
to keep it backwards compatible and avoid accidentally breaking migration or
replication, create a new format.
Changelog:
v2 (thanks @thomas):
* move formats from pve-common to pve-network and proxmox-widget-toolkit to
pve-manager
pve-network:
Gabriel Goller (2):
sdn: prefix-list: allow full prefix CIDR range
sdn: add full-range CIDR JSON schema formats
src/PVE/Network/SDN/PrefixLists.pm | 42 +++++++++++++++++++++++++++++-
1 file changed, 41 insertions(+), 1 deletion(-)
pve-manager:
Gabriel Goller (2):
sdn: prefix-lists: change prefix format to allow bigger subnets
toolkit: Add IP/CIDR validator with full prefix range checks
www/manager6/Toolkit.js | 16 ++++++++++++++++
www/manager6/sdn/PrefixListPanel.js | 2 +-
2 files changed, 17 insertions(+), 1 deletion(-)
Summary over all repositories:
3 files changed, 58 insertions(+), 2 deletions(-)
--
Generated by murpp 0.11.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH pve-network v2 1/4] sdn: prefix-list: allow full prefix CIDR range
2026-05-13 8:34 [PATCH manager/network v2 0/4] Extend prefix-list CIDR range Gabriel Goller
@ 2026-05-13 8:34 ` Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-network v2 2/4] sdn: add full-range CIDR JSON schema formats Gabriel Goller
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Gabriel Goller @ 2026-05-13 8:34 UTC (permalink / raw)
To: pve-devel
Allow the full CIDR range in the prefix-list prefix. This allows us to
use prefixes such as 0.0.0.0/0.
Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
---
src/PVE/Network/SDN/PrefixLists.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/PVE/Network/SDN/PrefixLists.pm b/src/PVE/Network/SDN/PrefixLists.pm
index 2dd7909007bb..19d752d245f0 100644
--- a/src/PVE/Network/SDN/PrefixLists.pm
+++ b/src/PVE/Network/SDN/PrefixLists.pm
@@ -116,7 +116,7 @@ sub prefix_list_entry_properties {
},
prefix => {
type => 'string',
- format => 'CIDR',
+ format => 'FullRangeCIDR',
optional => $update,
},
le => {
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH pve-network v2 2/4] sdn: add full-range CIDR JSON schema formats
2026-05-13 8:34 [PATCH manager/network v2 0/4] Extend prefix-list CIDR range Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-network v2 1/4] sdn: prefix-list: allow full prefix " Gabriel Goller
@ 2026-05-13 8:34 ` Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-manager v2 3/4] sdn: prefix-lists: change prefix format to allow bigger subnets Gabriel Goller
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Gabriel Goller @ 2026-05-13 8:34 UTC (permalink / raw)
To: pve-devel
Add IPv4, IPv6, and generic CIDR validators that allow the full
prefix range, including /0. Don't change the existing CIDR validators.
Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
---
src/PVE/Network/SDN/PrefixLists.pm | 40 ++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/src/PVE/Network/SDN/PrefixLists.pm b/src/PVE/Network/SDN/PrefixLists.pm
index 19d752d245f0..9bb7174878f7 100644
--- a/src/PVE/Network/SDN/PrefixLists.pm
+++ b/src/PVE/Network/SDN/PrefixLists.pm
@@ -5,6 +5,7 @@ use warnings;
use PVE::Cluster qw(cfs_register_file cfs_read_file cfs_lock_file cfs_write_file);
use PVE::JSONSchema qw(get_standard_option);
+use PVE::Tools;
use PVE::INotify;
use PVE::Network::SDN;
use PVE::Network::SDN::RouteMaps;
@@ -39,6 +40,45 @@ PVE::JSONSchema::register_standard_option(
},
);
+PVE::JSONSchema::register_format('FullRangeCIDRv6', \&pve_verify_fullrangecidrv6);
+
+sub pve_verify_fullrangecidrv6 {
+ my ($cidr, $noerr) = @_;
+
+ if ($cidr =~ m!^(?:$PVE::Tools::IPV6RE)(?:/(\d+))$! && ($1 >= 0) && ($1 <= 128)) {
+ return $cidr;
+ }
+
+ return undef if $noerr;
+ die "value does not look like a valid IPv6 CIDR network\n";
+}
+
+PVE::JSONSchema::register_format('FullRangeCIDRv4', \&pve_verify_fullrangecidrv4);
+
+sub pve_verify_fullrangecidrv4 {
+ my ($cidr, $noerr) = @_;
+
+ if ($cidr =~ m!^(?:$PVE::Tools::IPV4RE)(?:/(\d+))$! && ($1 >= 0) && ($1 <= 32)) {
+ return $cidr;
+ }
+
+ return undef if $noerr;
+ die "value does not look like a valid IPv4 CIDR network\n";
+}
+
+PVE::JSONSchema::register_format('FullRangeCIDR', \&pve_verify_fullrangecidr);
+
+sub pve_verify_fullrangecidr {
+ my ($cidr, $noerr) = @_;
+
+ if (!(pve_verify_fullrangecidrv4($cidr, 1) || pve_verify_fullrangecidrv6($cidr, 1))) {
+ return undef if $noerr;
+ die "value does not look like a valid CIDR network\n";
+ }
+
+ return $cidr;
+}
+
cfs_register_file(
'sdn/prefix-lists.cfg', \&parse_prefix_lists_config, \&write_prefix_lists_config,
);
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH pve-manager v2 3/4] sdn: prefix-lists: change prefix format to allow bigger subnets
2026-05-13 8:34 [PATCH manager/network v2 0/4] Extend prefix-list CIDR range Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-network v2 1/4] sdn: prefix-list: allow full prefix " Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-network v2 2/4] sdn: add full-range CIDR JSON schema formats Gabriel Goller
@ 2026-05-13 8:34 ` Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-manager v2 4/4] toolkit: Add IP/CIDR validator with full prefix range checks Gabriel Goller
2026-05-15 5:02 ` applied: [PATCH manager/network v2 0/4] Extend prefix-list CIDR range Thomas Lamprecht
4 siblings, 0 replies; 6+ messages in thread
From: Gabriel Goller @ 2026-05-13 8:34 UTC (permalink / raw)
To: pve-devel
Change the format on the prefix-list prefix input field. This allows us
to use bigger CIDRs such as /0.
Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
---
www/manager6/sdn/PrefixListPanel.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/www/manager6/sdn/PrefixListPanel.js b/www/manager6/sdn/PrefixListPanel.js
index 451ff9646e0e..5b5c69c9a5f3 100644
--- a/www/manager6/sdn/PrefixListPanel.js
+++ b/www/manager6/sdn/PrefixListPanel.js
@@ -77,7 +77,7 @@ Ext.define('PVE.sdn.EditPrefixListEntryWindow', {
xtype: 'proxmoxtextfield',
fieldLabel: gettext('Prefix'),
name: 'prefix',
- vtype: 'IP64CIDRAddress',
+ vtype: 'IP64FullRangeCIDRAddress',
allowBlank: false,
},
{
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH pve-manager v2 4/4] toolkit: Add IP/CIDR validator with full prefix range checks
2026-05-13 8:34 [PATCH manager/network v2 0/4] Extend prefix-list CIDR range Gabriel Goller
` (2 preceding siblings ...)
2026-05-13 8:34 ` [PATCH pve-manager v2 3/4] sdn: prefix-lists: change prefix format to allow bigger subnets Gabriel Goller
@ 2026-05-13 8:34 ` Gabriel Goller
2026-05-15 5:02 ` applied: [PATCH manager/network v2 0/4] Extend prefix-list CIDR range Thomas Lamprecht
4 siblings, 0 replies; 6+ messages in thread
From: Gabriel Goller @ 2026-05-13 8:34 UTC (permalink / raw)
To: pve-devel
Introduce an IP64FullRangeCIDRAddress validator that accepts IPv4 and
IPv6 CIDR addresses with the full prefix range of 0-32 and 0-128. This
is useful when e.g. selecting a prefix on the route-map, where 0.0.0.0/0
is a valid prefix (allow-all).
Place it here instead of in proxmox-widget-toolkit, because its
probably not gonna be used anywhere else for now. To preserve backwards
compatibility and not break anything, keep the old IP64CIDRAddress (with
cidr ranges 8-32, 8-128) around (in proxmox-widget-toolkit).
Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
---
www/manager6/Toolkit.js | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/www/manager6/Toolkit.js b/www/manager6/Toolkit.js
index ac73f8a7b526..e345b0a8ad07 100644
--- a/www/manager6/Toolkit.js
+++ b/www/manager6/Toolkit.js
@@ -14,6 +14,22 @@ Ext.apply(Ext.form.field.VTypes, {
IP64AddressListMask: /[A-Fa-f0-9,:.; ]/,
PciIdText: gettext('Example') + ': 0x8086',
PciId: (v) => /^0x[0-9a-fA-F]{4}$/.test(v),
+
+ IP64FullRangeCIDRAddress: function (v) {
+ let result = Proxmox.Utils.IP64_cidr_match.exec(v);
+ if (result === null) {
+ return false;
+ }
+ if (result[1] !== undefined) {
+ return result[1] >= 0 && result[1] <= 128;
+ } else if (result[2] !== undefined) {
+ return result[2] >= 0 && result[2] <= 32;
+ } else {
+ return false;
+ }
+ },
+ IP64FullRangeCIDRAddressText: gettext('Example') + ': 192.168.1.1/24 2001:DB8::42/64',
+ IP64FullRangeCIDRAddressMask: /[A-Fa-f0-9.:/]/,
});
Ext.define('PVE.form.field.Display', {
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* applied: [PATCH manager/network v2 0/4] Extend prefix-list CIDR range
2026-05-13 8:34 [PATCH manager/network v2 0/4] Extend prefix-list CIDR range Gabriel Goller
` (3 preceding siblings ...)
2026-05-13 8:34 ` [PATCH pve-manager v2 4/4] toolkit: Add IP/CIDR validator with full prefix range checks Gabriel Goller
@ 2026-05-15 5:02 ` Thomas Lamprecht
4 siblings, 0 replies; 6+ messages in thread
From: Thomas Lamprecht @ 2026-05-15 5:02 UTC (permalink / raw)
To: pve-devel, Gabriel Goller
On Wed, 13 May 2026 10:34:19 +0200, Gabriel Goller wrote:
> This is a follow-up on the route-maps and prefix-list series by Stefan.
> The goal is to extend the CIDR range on the prefix-list, making it possible to
> allow prefixes such as 0.0.0.0/0, which is a classic "allow-all".
>
> The current IP64CIDRAddress(ui)/CIDR(api) format only allows a minimum of /8 CIDR. In order
> to keep it backwards compatible and avoid accidentally breaking migration or
> replication, create a new format.
>
> [...]
Applied, thanks!
[1/2] sdn: prefix-list: allow full prefix CIDR range
commit: 15e78164ef6b6256ed64885817d2582d93610742
[2/2] sdn: add full-range CIDR JSON schema formats
commit: 24b625249a25a944efbe21509b35e8a7545a54bd
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-05-15 5:03 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-13 8:34 [PATCH manager/network v2 0/4] Extend prefix-list CIDR range Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-network v2 1/4] sdn: prefix-list: allow full prefix " Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-network v2 2/4] sdn: add full-range CIDR JSON schema formats Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-manager v2 3/4] sdn: prefix-lists: change prefix format to allow bigger subnets Gabriel Goller
2026-05-13 8:34 ` [PATCH pve-manager v2 4/4] toolkit: Add IP/CIDR validator with full prefix range checks Gabriel Goller
2026-05-15 5:02 ` applied: [PATCH manager/network v2 0/4] Extend prefix-list CIDR range Thomas Lamprecht
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.