public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Stefan Hanreich <s.hanreich@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] superseded:  [PATCH manager/network/proxmox{-ve-rs, -perl-rs} v4 00/13] Add fabric status view
Date: Thu, 30 Oct 2025 16:53:10 +0100	[thread overview]
Message-ID: <5d263988-9cc3-4e82-8269-2526ba748712@proxmox.com> (raw)
In-Reply-To: <20250904114206.193052-1-g.goller@proxmox.com>

https://lore.proxmox.com/pve-devel/20251030154851.540408-1-s.hanreich@proxmox.com/T/#t

On 9/4/25 1:42 PM, Gabriel Goller wrote:
> This patch series adds fabric status monitoring to the UI by adding the fabric
> status into pvestatd, making it visible in the SDN view and node resources.
> 
> There is also a new FabricContentView visible when clicking on the fabrics in
> the node resource tree. There you can see the routes distributed by the fabric
> and the neighbors of the current node. These statistics are retrieved using
> separate api calls and are not stored in pvestatd.
> 
> The fabric status is "ok" when at least one route exists.
> 
> Route and neighbor data comes from FRR via `vtysh` commands. Since routes and
> neighbors often lack fabric association, we match them by the interface name:
> we retrieve interfaces configured for the fabric on the current node (by
> reading and parsing the running-config), then match against e.g. a routes
> outgoing interface.
> 
> Changelog:
> v3, thanks @Stefan:
>  * read running-config instead of written config
>  * rebase
> 
> v2, thanks @Wobu:
>  * moved the conversion functions and return types to another module
>  * removed some allocations
> 
> v1, thanks @Stefan:
>  * moved the frr deserialization structs to proxmox-frr
>  * fixed typo in documentation
> 
> proxmox-ve-rs:
> 
> Gabriel Goller (3):
>   frr: make room for deserialization structs
>   frr: add deserialization types for openfabric and ospf
>   ve-config: add helper function to iterate over all nodes in all
>     fabrics
> 
>  proxmox-frr/Cargo.toml                  |   1 +
>  proxmox-frr/debian/control              |   4 +
>  proxmox-frr/src/de/mod.rs               | 104 ++++++++++
>  proxmox-frr/src/de/openfabric.rs        |  42 ++++
>  proxmox-frr/src/de/ospf.rs              |  57 ++++++
>  proxmox-frr/src/lib.rs                  | 243 +-----------------------
>  proxmox-frr/src/ser/mod.rs              | 241 +++++++++++++++++++++++
>  proxmox-frr/src/{ => ser}/openfabric.rs |   4 +-
>  proxmox-frr/src/{ => ser}/ospf.rs       |   2 +-
>  proxmox-frr/src/{ => ser}/route_map.rs  |   0
>  proxmox-frr/src/{ => ser}/serializer.rs |   2 +-
>  proxmox-ve-config/src/sdn/fabric/frr.rs | 170 +++++++++--------
>  proxmox-ve-config/src/sdn/fabric/mod.rs |   5 +
>  proxmox-ve-config/src/sdn/frr.rs        |   2 +-
>  proxmox-ve-config/tests/fabric/main.rs  |   2 +-
>  15 files changed, 554 insertions(+), 325 deletions(-)
>  create mode 100644 proxmox-frr/src/de/mod.rs
>  create mode 100644 proxmox-frr/src/de/openfabric.rs
>  create mode 100644 proxmox-frr/src/de/ospf.rs
>  create mode 100644 proxmox-frr/src/ser/mod.rs
>  rename proxmox-frr/src/{ => ser}/openfabric.rs (97%)
>  rename proxmox-frr/src/{ => ser}/ospf.rs (99%)
>  rename proxmox-frr/src/{ => ser}/route_map.rs (100%)
>  rename proxmox-frr/src/{ => ser}/serializer.rs (99%)
> 
> 
> proxmox-perl-rs:
> 
> Gabriel Goller (4):
>   pve: fabrics: update proxmox-frr import path
>   fabrics: add function to get status of fabric
>   fabrics: add function to get all routes distributed by the fabrics
>   fabrics: add function to get all neighbors of the fabric
> 
>  pve-rs/src/bindings/sdn/fabrics.rs | 163 +++++++++++++-
>  pve-rs/src/lib.rs                  |   2 +
>  pve-rs/src/sdn/mod.rs              |   3 +
>  pve-rs/src/sdn/status.rs           | 339 +++++++++++++++++++++++++++++
>  4 files changed, 506 insertions(+), 1 deletion(-)
>  create mode 100644 pve-rs/src/sdn/mod.rs
>  create mode 100644 pve-rs/src/sdn/status.rs
> 
> 
> pve-network:
> 
> Gabriel Goller (3):
>   fabrics: add fabrics status to SDN::status function
>   fabrics: add api endpoint to return fabrics routes
>   fabrics: add api endpoint to return fabric neighbors
> 
>  src/PVE/API2/Network/SDN/Fabrics.pm       | 117 +++++++++++++++++++++-
>  src/PVE/API2/Network/SDN/Zones/Content.pm |   2 +-
>  src/PVE/API2/Network/SDN/Zones/Status.pm  |   2 +-
>  src/PVE/Network/SDN.pm                    |   6 +-
>  src/test/debug/statuscheck.pl             |   3 +-
>  5 files changed, 124 insertions(+), 6 deletions(-)
> 
> 
> pve-manager:
> 
> Gabriel Goller (3):
>   pvestatd: add fabrics status to pvestatd
>   fabrics: add resource view for fabrics
>   permissions: differentiate between zone and fabric paths
> 
>  PVE/API2/Cluster.pm                    |  73 ++++++++++++---
>  PVE/Service/pvestatd.pm                |  12 ++-
>  www/manager6/Makefile                  |   1 +
>  www/manager6/data/PermPathStore.js     |   9 +-
>  www/manager6/sdn/Browser.js            | 120 ++++++++++++++++++++-----
>  www/manager6/sdn/FabricsContentView.js |  91 +++++++++++++++++++
>  www/manager6/sdn/StatusView.js         |   2 +-
>  7 files changed, 267 insertions(+), 41 deletions(-)
>  create mode 100644 www/manager6/sdn/FabricsContentView.js
> 
> 
> Summary over all repositories:
>   31 files changed, 1451 insertions(+), 373 deletions(-)
> 



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


      parent reply	other threads:[~2025-10-30 15:53 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-04 11:41 [pve-devel] " Gabriel Goller
2025-09-04 11:41 ` [pve-devel] [PATCH proxmox-ve-rs v4 1/3] frr: make room for deserialization structs Gabriel Goller
2025-09-04 11:41 ` [pve-devel] [PATCH proxmox-ve-rs v4 2/3] frr: add deserialization types for openfabric and ospf Gabriel Goller
2025-09-04 11:41 ` [pve-devel] [PATCH proxmox-ve-rs v4 3/3] ve-config: add helper function to iterate over all nodes in all fabrics Gabriel Goller
2025-09-04 11:41 ` [pve-devel] [PATCH proxmox-perl-rs v4 1/4] pve: fabrics: update proxmox-frr import path Gabriel Goller
2025-09-04 11:41 ` [pve-devel] [PATCH proxmox-perl-rs v4 2/4] fabrics: add function to get status of fabric Gabriel Goller
2025-09-04 11:41 ` [pve-devel] [PATCH proxmox-perl-rs v4 3/4] fabrics: add function to get all routes distributed by the fabrics Gabriel Goller
2025-09-04 11:41 ` [pve-devel] [PATCH proxmox-perl-rs v4 4/4] fabrics: add function to get all neighbors of the fabric Gabriel Goller
2025-09-04 11:41 ` [pve-devel] [PATCH pve-network v4 1/3] fabrics: add fabrics status to SDN::status function Gabriel Goller
2025-09-04 11:42 ` [pve-devel] [PATCH pve-network v4 2/3] fabrics: add api endpoint to return fabrics routes Gabriel Goller
2025-09-04 11:42 ` [pve-devel] [PATCH pve-network v4 3/3] fabrics: add api endpoint to return fabric neighbors Gabriel Goller
2025-09-04 11:42 ` [pve-devel] [PATCH pve-manager v4 1/3] pvestatd: add fabrics status to pvestatd Gabriel Goller
2025-09-04 11:42 ` [pve-devel] [PATCH pve-manager v4 2/3] fabrics: add resource view for fabrics Gabriel Goller
2025-09-04 11:42 ` [pve-devel] [PATCH pve-manager v4 3/3] permissions: differentiate between zone and fabric paths Gabriel Goller
2025-10-30 15:53 ` Stefan Hanreich [this message]

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=5d263988-9cc3-4e82-8269-2526ba748712@proxmox.com \
    --to=s.hanreich@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