public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Stefan Hanreich <s.hanreich@proxmox.com>
To: Gabriel Goller <g.goller@proxmox.com>, pve-devel@lists.proxmox.com
Subject: Re: [pve-devel] [PATCH pve-network v4 01/21] sdn: fix value returned by pending_config
Date: Fri, 4 Jul 2025 16:29:54 +0200	[thread overview]
Message-ID: <421e53c7-6fae-42dc-8662-ff37c65a11c1@proxmox.com> (raw)
In-Reply-To: <20250702145101.894299-37-g.goller@proxmox.com>

looks like some unrelated formatting changes are here? The previous
commit only contained one line of changes.

https://lore.proxmox.com/pve-devel/20250522161731.537011-35-s.hanreich@proxmox.com/

On 7/2/25 16:50, Gabriel Goller wrote:
> From: Stefan Hanreich <s.hanreich@proxmox.com>
> 
> For special types that were encoded by the encode_value function in
> SDN, we returned the encoded value in the API, rather than the actual
> value. Since we use the encoded value only for comparison, we need to
> return the original value instead of the encoded value.
> 
> Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
> ---
>  src/PVE/Network/SDN.pm | 120 ++++++++++++++++++++++++++++++-----------
>  1 file changed, 89 insertions(+), 31 deletions(-)
> 
> diff --git a/src/PVE/Network/SDN.pm b/src/PVE/Network/SDN.pm
> index ef938c461d0a..391c6e26c7c7 100644
> --- a/src/PVE/Network/SDN.pm
> +++ b/src/PVE/Network/SDN.pm
> @@ -24,7 +24,9 @@ use PVE::Network::SDN::Dhcp;
>  my $running_cfg = "sdn/.running-config";
>  
>  my $parse_running_cfg = sub {
> -    my ($filename, $raw) = @_;
> +    my (
> +        $filename, $raw,
> +    ) = @_;
>  
>      my $cfg = {};
>  
> @@ -37,14 +39,18 @@ my $parse_running_cfg = sub {
>  };
>  
>  my $write_running_cfg = sub {
> -    my ($filename, $cfg) = @_;
> +    my (
> +        $filename, $cfg,
> +    ) = @_;
>  
>      my $json = to_json($cfg);
>  
>      return $json;
>  };
>  
> -PVE::Cluster::cfs_register_file($running_cfg, $parse_running_cfg, $write_running_cfg);
> +PVE::Cluster::cfs_register_file(
> +    $running_cfg, $parse_running_cfg, $write_running_cfg,
> +);
>  
>  # improve me : move status code inside plugins ?
>  
> @@ -74,8 +80,12 @@ sub ifquery_check {
>  
>  sub status {
>  
> -    my ($zone_status, $vnet_status) = PVE::Network::SDN::Zones::status();
> -    return ($zone_status, $vnet_status);
> +    my (
> +        $zone_status, $vnet_status,
> +    ) = PVE::Network::SDN::Zones::status();
> +    return (
> +        $zone_status, $vnet_status,
> +    );
>  }
>  
>  sub running_config {
> @@ -83,7 +93,9 @@ sub running_config {
>  }
>  
>  sub pending_config {
> -    my ($running_cfg, $cfg, $type) = @_;
> +    my (
> +        $running_cfg, $cfg, $type,
> +    ) = @_;
>  
>      my $pending = {};
>  
> @@ -100,8 +112,12 @@ sub pending_config {
>              } elsif (!defined($config_object->{$key})) {
>                  $pending->{$id}->{"pending"}->{$key} = 'deleted';
>                  $pending->{$id}->{state} = "changed";
> -            } elsif (PVE::Network::SDN::encode_value(undef, $key, $running_object->{$key}) ne
> -                PVE::Network::SDN::encode_value(undef, $key, $config_object->{$key})
> +            } elsif (
> +                PVE::Network::SDN::encode_value(
> +                    undef, $key, $running_object->{$key},
> +                ) ne PVE::Network::SDN::encode_value(
> +                    undef, $key, $config_object->{$key},
> +                )
>              ) {
>                  $pending->{$id}->{state} = "changed";
>              }
> @@ -115,18 +131,25 @@ sub pending_config {
>          my $config_object = $config_objects->{$id};
>  
>          foreach my $key (sort keys %{$config_object}) {
> -            my $config_value = PVE::Network::SDN::encode_value(undef, $key, $config_object->{$key});
> -            my $running_value =
> -                PVE::Network::SDN::encode_value(undef, $key, $running_object->{$key});
> +            my $config_value = PVE::Network::SDN::encode_value(
> +                undef, $key, $config_object->{$key},
> +            );
> +            my $running_value = PVE::Network::SDN::encode_value(
> +                undef, $key, $running_object->{$key},
> +            );
>              if ($key eq 'type' || $key eq 'vnet') {
>                  $pending->{$id}->{$key} = $config_value;
>              } else {
> -                $pending->{$id}->{"pending"}->{$key} = $config_value
> -                    if !defined($running_value) || ($config_value ne $running_value);
> +                $pending->{$id}->{"pending"}->{$key} = $config_object->{$key}
> +                    if !defined($running_value)
> +                    || ($config_value ne $running_value);
>              }
>              if (!keys %{$running_object}) {
>                  $pending->{$id}->{state} = "new";
> -            } elsif (!defined($running_value) && defined($config_value)) {
> +            } elsif (
> +                !defined($running_value)
> +                && defined($config_value)
> +            ) {
>                  $pending->{$id}->{state} = "changed";
>              }
>          }
> @@ -134,7 +157,9 @@ sub pending_config {
>              if $pending->{$id}->{state} && !defined($pending->{$id}->{"pending"});
>      }
>  
> -    return { ids => $pending };
> +    return {
> +        ids => $pending,
> +    };
>  
>  }
>  
> @@ -167,13 +192,19 @@ sub commit_config {
>          subnets => $subnets,
>      };
>  
> -    cfs_write_file($running_cfg, $cfg);
> +    cfs_write_file(
> +        $running_cfg, $cfg,
> +    );
>  }
>  
>  sub lock_sdn_config {
> -    my ($code, $errmsg) = @_;
> +    my (
> +        $code, $errmsg,
> +    ) = @_;
>  
> -    cfs_lock_file($running_cfg, undef, $code);
> +    cfs_lock_file(
> +        $running_cfg, undef, $code,
> +    );
>  
>      if (my $err = $@) {
>          $errmsg ? die "$errmsg: $err" : die $err;
> @@ -198,16 +229,22 @@ sub get_local_vnets {
>  
>      foreach my $vnetid (@vnetids) {
>  
> -        my $vnet = PVE::Network::SDN::Vnets::sdn_vnets_config($vnets_cfg, $vnetid);
> +        my $vnet = PVE::Network::SDN::Vnets::sdn_vnets_config(
> +            $vnets_cfg, $vnetid,
> +        );
>          my $zoneid = $vnet->{zone};
>          my $comments = $vnet->{alias};
>  
>          my $privs = ['SDN.Audit', 'SDN.Use'];
>  
>          next if !$zoneid;
> -        next if !$rpcenv->check_sdn_bridge($authuser, $zoneid, $vnetid, $privs, 1);
> +        next if !$rpcenv->check_sdn_bridge(
> +            $authuser, $zoneid, $vnetid, $privs, 1,
> +        );
>  
> -        my $zone_config = PVE::Network::SDN::Zones::sdn_zones_config($zones_cfg, $zoneid);
> +        my $zone_config = PVE::Network::SDN::Zones::sdn_zones_config(
> +            $zones_cfg, $zoneid,
> +        );
>  
>          next if defined($zone_config->{nodes}) && !$zone_config->{nodes}->{$nodename};
>          my $ipam = $zone_config->{ipam} ? 1 : 0;
> @@ -228,7 +265,9 @@ sub generate_zone_config {
>      my $raw_config = PVE::Network::SDN::Zones::generate_etc_network_config();
>      if ($raw_config) {
>          eval {
> -            my $net_cfg = PVE::INotify::read_file('interfaces', 1);
> +            my $net_cfg = PVE::INotify::read_file(
> +                'interfaces', 1,
> +            );
>              my $opts = $net_cfg->{data}->{options};
>              log_warn(
>                  "missing 'source /etc/network/interfaces.d/sdn' directive for SDN support!\n")
> @@ -255,13 +294,19 @@ sub generate_dhcp_config {
>  }
>  
>  sub encode_value {
> -    my ($type, $key, $value) = @_;
> +    my (
> +        $type, $key, $value,
> +    ) = @_;
>  
>      if ($key eq 'nodes' || $key eq 'exitnodes' || $key eq 'dhcp-range') {
>          if (ref($value) eq 'HASH') {
> -            return join(',', sort keys(%$value));
> +            return join(
> +                ',', sort keys(%$value),
> +            );
>          } elsif (ref($value) eq 'ARRAY') {
> -            return join(',', sort @$value);
> +            return join(
> +                ',', sort @$value,
> +            );
>          } else {
>              return $value;
>          }
> @@ -272,29 +317,42 @@ sub encode_value {
>  
>  #helpers
>  sub api_request {
> -    my ($method, $url, $headers, $data, $expected_fingerprint) = @_;
> +    my (
> +        $method, $url, $headers, $data, $expected_fingerprint,
> +    ) = @_;
>  
>      my $encoded_data = $data ? to_json($data) : undef;
>  
> -    my $req = HTTP::Request->new($method, $url, $headers, $encoded_data);
> +    my $req = HTTP::Request->new(
> +        $method, $url, $headers, $encoded_data,
> +    );
>  
> -    my $ua = LWP::UserAgent->new(protocols_allowed => ['http', 'https'], timeout => 30);
> +    my $ua = LWP::UserAgent->new(
> +        protocols_allowed => ['http', 'https'],
> +        timeout => 30,
> +    );
>      my $datacenter_cfg = PVE::Cluster::cfs_read_file('datacenter.cfg');
>      if (my $proxy = $datacenter_cfg->{http_proxy}) {
> -        $ua->proxy(['http', 'https'], $proxy);
> +        $ua->proxy(
> +            ['http', 'https'], $proxy,
> +        );
>      } else {
>          $ua->env_proxy;
>      }
>  
>      if (defined($expected_fingerprint)) {
>          my $ssl_verify_callback = sub {
> -            my (undef, undef, undef, undef, $cert, $depth) = @_;
> +            my (
> +                undef, undef, undef, undef, $cert, $depth,
> +            ) = @_;
>  
>              # we don't care about intermediate or root certificates, always return as valid as the
>              # callback will be executed for all levels and all must be valid.
>              return 1 if $depth != 0;
>  
> -            my $fingerprint = Net::SSLeay::X509_get_fingerprint($cert, 'sha256');
> +            my $fingerprint = Net::SSLeay::X509_get_fingerprint(
> +                $cert, 'sha256',
> +            );
>  
>              return $fingerprint eq $expected_fingerprint ? 1 : 0;
>          };



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  reply	other threads:[~2025-07-04 14:29 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-02 14:49 [pve-devel] [PATCH access-control/cluster/docs/gui-tests/manager/network/proxmox{, -firewall, -ve-rs, -perl-rs, -widget-toolkit} v4 00/76] Add SDN Fabrics Gabriel Goller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox v4 1/5] network-types: initial commit Gabriel Goller
2025-07-03 13:11   ` Wolfgang Bumiller
2025-07-03 13:46     ` Stefan Hanreich
2025-07-03 13:48       ` Stefan Hanreich
2025-07-04  7:55         ` Wolfgang Bumiller
2025-07-04 12:19     ` Gabriel Goller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox v4 2/5] network-types: make cidr and mac-address types usable by the api Gabriel Goller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox v4 3/5] network-types: add api types for ipv4/6 Gabriel Goller
2025-07-03 13:18   ` Wolfgang Bumiller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox v4 4/5] network-types: add CIDR overlap detection for IPv4 and IPv6 Gabriel Goller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox v4 5/5] api-macro: add allof schema to enum Gabriel Goller
2025-07-04 13:48   ` [pve-devel] applied: " Wolfgang Bumiller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox-firewall v4 1/1] firewall: nftables: migrate to proxmox-network-types Gabriel Goller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox-ve-rs v4 01/22] config: use proxmox_serde perl helpers Gabriel Goller
2025-07-04 14:09   ` [pve-devel] applied: " Wolfgang Bumiller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox-ve-rs v4 02/22] ve-config: move types to proxmox-network-types Gabriel Goller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox-ve-rs v4 03/22] sdn-types: initial commit Gabriel Goller
2025-07-04 14:09   ` Wolfgang Bumiller
2025-07-04 14:40     ` Gabriel Goller
2025-07-07  7:53       ` Wolfgang Bumiller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox-ve-rs v4 04/22] frr: create proxmox-frr crate Gabriel Goller
2025-07-07 11:12   ` Wolfgang Bumiller
2025-07-07 12:52     ` Gabriel Goller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox-ve-rs v4 05/22] frr: add common frr types Gabriel Goller
2025-07-07 11:18   ` Wolfgang Bumiller
2025-07-07 14:43     ` Gabriel Goller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox-ve-rs v4 06/22] frr: add openfabric types Gabriel Goller
2025-07-07 11:25   ` Wolfgang Bumiller
2025-07-07 15:19     ` Gabriel Goller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox-ve-rs v4 07/22] frr: add ospf types Gabriel Goller
2025-07-07 11:28   ` Wolfgang Bumiller
2025-07-07 17:07     ` Gabriel Goller
2025-07-02 14:49 ` [pve-devel] [PATCH proxmox-ve-rs v4 08/22] frr: add route-map types Gabriel Goller
2025-07-07 11:52   ` Wolfgang Bumiller
2025-07-07 17:13     ` Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 09/22] frr: add generic types over openfabric and ospf Gabriel Goller
2025-07-07 11:58   ` Wolfgang Bumiller
2025-07-07 17:20     ` Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 10/22] config: sdn: fabrics: add section types Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 11/22] config: sdn: fabrics: add node " Gabriel Goller
2025-07-07 12:19   ` Wolfgang Bumiller
2025-07-07 17:22     ` Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 12/22] config: sdn: fabrics: add interface name struct Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 13/22] config: sdn: fabrics: add openfabric properties Gabriel Goller
2025-07-08  8:09   ` Wolfgang Bumiller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 14/22] config: sdn: fabrics: add ospf properties Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 15/22] config: sdn: fabrics: add api types Gabriel Goller
2025-07-08  8:15   ` Wolfgang Bumiller
2025-07-08  9:50     ` Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 16/22] config: sdn: fabrics: add section config Gabriel Goller
2025-07-08  8:18   ` Wolfgang Bumiller
2025-07-11  8:33     ` Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 17/22] config: sdn: fabrics: add fabric config Gabriel Goller
2025-07-08  8:46   ` Wolfgang Bumiller
2025-07-11  9:04     ` Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 18/22] common: sdn: fabrics: implement validation Gabriel Goller
2025-07-08 11:01   ` Wolfgang Bumiller
2025-07-11  9:40     ` Gabriel Goller
2025-07-11 11:38       ` Wolfgang Bumiller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 19/22] sdn: fabrics: config: add conversion from / to section config Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 20/22] sdn: fabrics: implement FRR configuration generation Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 21/22] ve-config: add integrations tests Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-ve-rs v4 22/22] frr: add global ipv6 forwarding Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-perl-rs v4 1/5] pve-rs: Add PVE::RS::SDN::Fabrics module Gabriel Goller
2025-07-04 12:16   ` Wolfgang Bumiller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-perl-rs v4 2/5] pve-rs: sdn: fabrics: add api methods Gabriel Goller
2025-07-04 12:57   ` Wolfgang Bumiller
2025-07-04 15:56     ` Gabriel Goller
2025-07-07  7:48       ` Wolfgang Bumiller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-perl-rs v4 3/5] pve-rs: sdn: fabrics: add frr config generation Gabriel Goller
2025-07-04 13:14   ` Wolfgang Bumiller
2025-07-04 13:23     ` Stefan Hanreich
2025-07-04 13:31       ` Wolfgang Bumiller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-perl-rs v4 4/5] pve-rs: sdn: fabrics: add helper to generate ifupdown2 configuration Gabriel Goller
2025-07-04 13:29   ` Wolfgang Bumiller
2025-07-04 16:15     ` Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-perl-rs v4 5/5] pve-rs: sdn: fabrics: add helper for network API endpoint Gabriel Goller
2025-07-04 13:34   ` Wolfgang Bumiller
2025-07-04 16:31     ` Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-cluster v4 1/1] cfs: add fabrics.cfg to observed files Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-access-control v4 1/1] permissions: add ACL paths for SDN fabrics Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 01/21] sdn: fix value returned by pending_config Gabriel Goller
2025-07-04 14:29   ` Stefan Hanreich [this message]
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 02/21] debian: add dependency to proxmox-perl-rs Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 03/21] fabrics: add fabrics module Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 04/21] refactor: controller: move frr methods into helper Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 05/21] frr: add new helpers for reloading frr configuration Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 06/21] controllers: define new api for frr config generation Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 07/21] sdn: add frr config generation helpers Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 08/21] sdn: api: add check for rewriting frr configuration Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 09/21] test: isis: add test for standalone configuration Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 10/21] sdn: frr: add daemon status to frr helper Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 11/21] sdn: commit fabrics config to running configuration Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 12/21] fabrics: generate ifupdown configuration Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 13/21] fabrics: add jsonschema for fabrics and nodes Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 14/21] api: fabrics: add root-level module Gabriel Goller
2025-07-04 14:32   ` Stefan Hanreich
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 15/21] api: fabrics: add fabric submodule Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 16/21] api: fabrics: add node submodule Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 17/21] api: fabrics: add fabricnode submodule Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 18/21] controller: evpn: add fabrics integration Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 19/21] zone: vxlan: " Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 20/21] test: fabrics: add test cases for ospf and openfabric + evpn Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-network v4 21/21] frr: bump frr config version to 10.3.1 Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH proxmox-widget-toolkit v4 1/1] network selector: add type parameter Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 01/17] api: use new sdn config generation functions Gabriel Goller
2025-07-04 14:27   ` Stefan Hanreich
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 02/17] ui: fabrics: add model definitions for fabrics Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 03/17] fabric: add common interface panel Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 04/17] fabric: add OpenFabric interface properties Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 05/17] fabric: add OSPF " Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 06/17] fabric: add generic node edit panel Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 07/17] fabric: add OpenFabric node edit Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 08/17] fabric: add OSPF " Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 09/17] fabric: add generic fabric edit panel Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 10/17] fabric: add OpenFabric " Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 11/17] fabric: add OSPF " Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 12/17] fabrics: Add main FabricView Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 13/17] ui: permissions: add ACL path for fabrics Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 14/17] api: network: add include_sdn / fabric type Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 15/17] ui: add sdn networks to ceph / migration Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 16/17] ui: sdn: add evpn controller fabric integration Gabriel Goller
2025-07-02 14:50 ` [pve-devel] [PATCH pve-manager v4 17/17] ui: sdn: vxlan: add fabric property Gabriel Goller
2025-07-02 14:51 ` [pve-devel] [PATCH pve-gui-tests v4 1/1] pve: add sdn/fabrics screenshots Gabriel Goller
2025-07-02 14:51 ` [pve-devel] [PATCH pve-docs v4 1/1] fabrics: add initial documentation for sdn fabrics Gabriel Goller
2025-07-03  9:57 ` [pve-devel] [PATCH access-control/cluster/docs/gui-tests/manager/network/proxmox{, -firewall, -ve-rs, -perl-rs, -widget-toolkit} v4 00/76] Add SDN Fabrics Gabriel Goller
2025-07-09 11:27 ` Gabriel Goller
2025-07-16 13:09   ` Gabriel Goller

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=421e53c7-6fae-42dc-8662-ff37c65a11c1@proxmox.com \
    --to=s.hanreich@proxmox.com \
    --cc=g.goller@proxmox.com \
    --cc=pve-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
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal