[pve-devel] [PATCH pve-network 5/9] api: nodes: fabrics: add endpoint for querying neighbor information

Stefan Hanreich s.hanreich at proxmox.com
Mon Nov 3 17:34:18 CET 2025



On 11/3/25 3:22 PM, Hannes Laimer wrote:
> On 10/30/25 16:51, Stefan Hanreich wrote:
>> From: Gabriel Goller <g.goller at proxmox.com>
>>
>> This endpoint returns all neighbors for a given fabric and their
>> current status. For more information about the return value, consult
>> the respective proxmox-perl-rs commit. It is used by the
>> NetworkBrowser panel.
>>
>> Co-authored-by: Stefan Hanreich <s.hanreich at proxmox.com>
>> Signed-off-by: Gabriel Goller <g.goller at proxmox.com>
>> Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
>> ---
>>   src/PVE/API2/Network/SDN/Nodes/Fabric.pm | 48 +++++++++++++++++++++++-
>>   1 file changed, 47 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/PVE/API2/Network/SDN/Nodes/Fabric.pm b/src/PVE/API2/
>> Network/SDN/Nodes/Fabric.pm
>> index c1886b7..b5971c7 100644
>> --- a/src/PVE/API2/Network/SDN/Nodes/Fabric.pm
>> +++ b/src/PVE/API2/Network/SDN/Nodes/Fabric.pm
>> @@ -40,7 +40,7 @@ __PACKAGE__->register_method({
>>       code => sub {
>>           my ($param) = @_;
>>           my $res = [
>> -            { subdir => 'routes' },
>> +            { subdir => 'neighbors' }, { subdir => 'routes' },
>>           ];
>>             return $res;
>> @@ -92,3 +92,49 @@ __PACKAGE__->register_method({
>>       },
>>   });
>>   +__PACKAGE__->register_method({
>> +    name => 'neighbors',
>> +    path => 'neighbors',
>> +    method => 'GET',
>> +    description => "Get neighbors of all fabrics.",
>> +    permissions => {
>> +        check => ['perm', '/sdn/fabrics/{fabric}', ['SDN.Audit']],
>> +    },
>> +    protected => 1,
>> +    proxyto => 'node',
>> +    parameters => {
>> +        additionalProperties => 0,
>> +        properties => {
>> +            node => get_standard_option('pve-node'),
>> +            fabric => get_standard_option('pve-sdn-fabric-id'),
>> +        },
>> +    },
>> +    returns => {
>> +        type => 'array',
>> +        items => {
>> +            type => "object",
>> +            properties => {
>> +                neighbor => {
>> +                    description => "The IP of the neighbor.",
>> +                    type => 'string',
> 
> I think we have an IP format, but also fine as is

I think this field could be an interface name as well, I'll check if
that's the case and either update the description or the format.




More information about the pve-devel mailing list