Compare commits

...

66 Commits

Author SHA1 Message Date
Binny
7bffbb1cc9 OLS-425: second review comments 2024-11-18 14:44:13 +00:00
Binny
e96efa25ae OLS-425 second commit with review comments incorporated. 2024-11-12 19:40:43 +00:00
Binny
5622b66bb8 OLS-425 Sprint-6-Schema 2024-10-30 05:31:54 +00:00
Mike Hansen
5bc20c20b3 Merge pull request #26 from Telecominfraproject/OLS_390_Move_uplink_interface_definition_to_state.yml_Add_version_connect.capabilities
[OLS-390] Move uplink_interface definition to state.yml, add version …
2024-10-07 09:47:59 -04:00
Mike Hansen
9a7f469e61 [OLS-390] Move uplink_interface definition to state.yml, add version to connect.capabilities
Signed-off-by: Mike Hansen <mike.hansen@netexperience.com>
2024-10-04 12:00:20 -04:00
Binny
a8d8de9b4d Merge pull request #25 from Telecominfraproject/OLS_319_sprint4_schema
OLS-319 sprint4 schema
2024-09-23 21:28:22 +05:30
Binny
53c239b60d OLS-319 incorporated most review comments, revised files 2024-09-23 07:47:42 +00:00
Binny
9a994374b5 OLS-319 Schema changes for 3.2 Sprint-4 Features to private Branch - Edits 2024-09-19 16:54:23 +00:00
Binny
44ed03b3f7 OLS-319 Schema changes for 3.2 Sprint-4 Features to private Branch 2024-09-19 16:51:30 +00:00
Binny
a72be45c21 OLS-319 test commit schema to priv repo 2024-09-19 09:27:16 +00:00
Mike Hansen
7c62326155 change port mirror type to array
-- rebased and merge changes from https://github.com/Telecominfraproject/ols-ucentral-schema/pull/23 into main

Signed-off-by: Mike Hansen <mike.hansen@netexperience.com>
2024-09-09 10:08:22 -04:00
Mike Hansen
5291c3da99 Merge pull request #24 from Telecominfraproject/OLS-295_capabilities_add_lacp_linkAggregation_jumboFrames
[OLS-295] Add LACP, Link-Aggregation, and Jumbo-Frames to capabilities
2024-09-06 09:17:10 -04:00
Mike Hansen
1b12452eeb [OLS-295] Add LACP, Link-Aggregation, and Jumbo-Frames to capabilities
In ols-ucentral-schema->capabilities->connect.capabilities.yml->supported-features
Added enums for
  - Jumbo-Frames
  - LACP
  - Link-Aggregation

Regenerated json files.

Signed-off-by: Mike Hansen <mike.hansen@netexperience.com>
2024-09-04 14:50:31 -04:00
Mike Hansen
76504b1ad6 Merge pull request #20 from Telecominfraproject/link_aggregation
support link aggregation
2024-08-13 09:19:28 -04:00
jacky1100002
bcde6a7155 Merge branch 'main' into link_aggregation 2024-08-13 18:36:32 +08:00
Olexandr, Mazur
82f5eb7740 Merge pull request #19 from Telecominfraproject/jumbo_frames
support jumbo frames
2024-08-13 11:09:26 +03:00
Olexandr, Mazur
ceccdef561 Merge pull request #18 from Telecominfraproject/lacp
support LACP
2024-08-13 11:09:15 +03:00
jacky1100002
80a598fadf Merge branch 'main' into lacp 2024-08-12 17:43:00 +08:00
jacky1100002
81e8cd5706 Merge branch 'main' into link_aggregation 2024-08-12 17:40:36 +08:00
jacky1100002
8a4815187f Merge branch 'main' into jumbo_frames 2024-08-12 17:32:34 +08:00
jacky_chang
e8da89616e generate corresponding json files 2024-08-12 10:33:59 +08:00
jacky_chang
5da5b090be generate corresponding json files 2024-08-12 10:32:10 +08:00
jacky_chang
f9e15067ff generate corresponding json files 2024-08-12 10:28:53 +08:00
Mike Hansen
4235960ab8 Merge pull request #22 from Telecominfraproject/OLS-229-generate-json-file-for-capabilities-connect.capabilities.yml
[OLS-229] generate json file for capabilities/connect.capabilities.yml
2024-08-08 13:31:31 -04:00
Mike Hansen
7e839b0681 Merge pull request #21 from Telecominfraproject/OLS-228-delta_counters
[OLS-228] Schema -- adding delta_counters
2024-08-08 13:30:53 -04:00
Mike Hansen
b98f8a2b46 [OLS-229] generate json file for capabilities/connect.capabilities.yml
Signed-off-by: Mike Hansen <mike.hansen@netexperience.com>
2024-08-06 14:03:43 -04:00
Mike Hansen
1de6cad7e8 [OLS-228] Schema
Add delta_counters to

state/interface.yml

state/link-state.yml

Signed-off-by: Mike Hansen <mike.hansen@netexperience.com>
2024-08-06 13:58:37 -04:00
Olexandr, Mazur
0f9f4489d2 Merge pull request #17 from Telecominfraproject/secure_http_server
add whether enabled & port number support for https
2024-08-06 12:49:01 +03:00
jacky_chang
5dc634f78e support link aggregation 2024-08-06 13:29:06 +08:00
jacky_chang
4d03a432c1 support jumbo frmaes 2024-08-06 11:08:10 +08:00
jacky_chang
ee945311e1 support LACP 2024-08-06 10:38:40 +08:00
jacky_chang
4336be981b Use generate.sh to generate related json files to make settings consistent. 2024-08-05 10:38:57 +08:00
Olexandr, Mazur
747ccb4993 Merge pull request #16 from Telecominfraproject/fix/capabilities_add_missing_field
Schema: capabilities: add missed <compatible> field
2024-06-05 17:25:31 +03:00
Oleksandr Mazur
a0fac0b3d7 Schema: capabilities: add missed <compatible> field
Connect message is required to have compatible field,
as it defines device's <family> of devices and compatible
counterparts.

Add this - originally missed - field to the schema, to make
sure cloud infrastructure has enough information to deduce
device type / compatible devices (for cfg generation etc).

Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-06-05 11:30:47 +03:00
jacky_chang
1e33d3fa0a add whether enabled & port number support for https 2024-05-10 16:27:03 +08:00
Olexandr, Mazur
dc754dc519 Merge pull request #15 from Telecominfraproject/feat/connect_capabilities
Schema: formalize connect.capabilities message format
2024-04-12 12:21:15 +03:00
Oleksandr Mazur
b3374bb60b Schema: formalize connect.capabilities message format
Capabilities message is unregulated as of now;
Formalize the layout by introducing yml file.

Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-04-11 10:18:27 +03:00
Olexandr, Mazur
0ef7362930 Merge pull request #14 from Telecominfraproject/feat/global_igmp_querier_floodcontrol
Add flood-control and querier-enable fields to unit.yml
2024-04-02 15:30:51 +03:00
Serhiy Boiko
b9762df2cf Add flood-control and querier-enable fields to unit.yml
These fields are used to specify the global fc and querier
configuration.

Signed-off-by: Serhiy Boiko <serhiy.boiko@plvision.eu>
2024-04-02 12:58:10 +03:00
Olexandr, Mazur
0983abe2bf Merge pull request #13 from Telecominfraproject/revert_public_ip_lookup
Revert public ip lookup
2024-03-27 11:09:20 +02:00
Oleksandr Mazur
719fd97705 Fixup generated schema after fdeb2b8 revert
Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-03-26 11:25:07 +02:00
Oleksandr Mazur
777e2b26a8 Revert "revert "public_ip_lookup" patch"
This reverts commit fdeb2b8b85.
2024-03-26 11:24:35 +02:00
Olexandr, Mazur
ab43179a83 Merge pull request #12 from Telecominfraproject/fix_port_isolation
Move port-isolation schema from ethernet.yml to switch.yml
2024-03-19 20:08:28 +02:00
Serhiy Boiko
3a41591f85 Move port-isolation schema from ethernet.yml to switch.yml
port-isolation is a global configuration and should be described in
switch.yml, not in ethernet.yml
No changes were made to any of the fields.

Signed-off-by: Serhiy Boiko <serhiy.boiko@plvision.eu>
2024-03-19 12:44:31 +02:00
tip-admin
7fa4d15f5e Create LICENSE 2024-02-29 08:53:54 -08:00
Olexandr, Mazur
d105fe165e Merge pull request #11 from Telecominfraproject/fix_loop_detection_schema_instances_indentation
Correct indentation of instances block in switch.yml
2024-02-27 10:50:30 +02:00
Mike Hansen
d3f610d9ef Correct indentation of instances block in switch.yml
The property 'instance' is not indented correctly and therefore doesn't end up under the loop-detection properties in the switch configuration.

Signed-off-by: Mike Hansen <mike.hansen@netexperience.com>
2024-02-26 11:35:09 -05:00
Olexandr, Mazur
711d7d9066 Merge pull request #10 from Telecominfraproject/change_vrf_id_to_integer
Change VRF id type from number to integer
2024-02-21 18:16:16 +02:00
Mike Hansen
89a78c61be Change VRF id type from number to integer
Signed-off-by: Mike Hansen <mike.hansen@netexperience.com>
2024-02-21 05:28:01 -05:00
Olexandr, Mazur
f5608bd42c Merge pull request #9 from Telecominfraproject/schema_fixes_and_updates
Align dhcp-relay with ols-ucentral-client, STP object typo #7 Fix spelling, make power limit an integer
2024-02-15 12:17:22 +02:00
Mike Hansen
54358ff146 - Align dhcp-relay with ols-ucentral-client
Declare dhcp-relay in interface.ipv4.dhcp.yml, aligns with client and allows setting per logical interface.
- STP object typo #7
Fix spelling

Additional:
schema/ethernet.yml - make power limit an integer

Signed-off-by: Mike Hansen <mike.hansen@netexperience.com>
2024-02-14 10:22:22 -05:00
Olexandr, Mazur
7994980a3d Merge pull request #5 from Telecominfraproject/feat/move_changes_shastacloud_to_tip
Feat/move changes shastacloud to tip
2024-02-05 21:42:15 +02:00
Oleksandr Mazur
ffafd5bfae Update ucentral.schema using generated version
Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 19:52:49 +02:00
Oleksandr Mazur
c29c0d3b3a state: interface: ipv6-lease: add missing description
Add description to lease object, as lack of one causes invalid
schema to be generated.

Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 19:52:17 +02:00
Oleksandr Mazur
02fa109dc6 state: link-state: PoE: add missing counters description
Empty object description lead to invalid schema generation.
Fix it by adding description.

Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 19:52:17 +02:00
Oleksandr Mazur
ad41fc5b27 ethernet: fix host-mode description (802.1x)
Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 19:46:42 +02:00
Oleksandr Mazur
8a55cf509d state: extend schema to support setting static system password
Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 19:46:42 +02:00
Oleksandr Mazur
0b59636360 Extend schema/service.yml to support altering services state
Extend schema to support enabling or disabling completely specified services (ssh,telnet)

Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 19:46:42 +02:00
Oleksandr Mazur
75a5670219 Extend state/link-state.yml to support reporting of SFP transceivers info
Report SFP transceiver base info (if connected, module inserted) per-port -
vendor, name, form-factor, supported link modes etc.

Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 19:46:42 +02:00
Oleksandr Mazur
d2042faf6b Extend schema to support reporting of FDB table (wired clients)
Extend state/unit.yml to report triplet that states which mac
  has been learned on which port in which vlan.
Example of "mac-forwarding-table" in json format:
...
            "mac-forwarding-table": {
                "overflow": false,
                "Ethernet0":    {
                    "1":    ["90:3c:b3:6a:e3:59"]
                },
                "Ethernet1":    {
                    "1":    ["90:3c:b3:6a:e4:d5"]
                },
                "Ethernet47":   {
                    "1":    ["ac:1f:6b:65:a4:86"]
                },
                "Ethernet46":   {
                    "1":    ["ac:1f:6b:65:a4:89"]
                }
            },
...

Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 19:46:39 +02:00
Oleksandr Mazur
fec747ae43 state/link-state.yml: remove trailing space in Duplex object
Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 14:46:18 +02:00
Oleksandr Mazur
e81889c1c2 Extend schema to support port-isolation config
Extend schema/ethernet.yml to allow configuring port-forwarding
  matrix (which ports can allow forwarding traffic to which ports).
Extend state/link-state.yml to support reporting configured
  port-forwarding matrix back.

Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 14:46:18 +02:00
Oleksandr Mazur
4e9d466c81 Extend schema to add dynamic authorization (CoA) support
- Extend schema/switch.yml to support configuring
  DAC list (origin of CoA and DM messages), as well as
  configiguring DAS (port on which receive CoA + DM) etc.
- Extend state/unit.yml to report back to the cloud
  current DAS configuration and DAC config.

Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 14:46:18 +02:00
Oleksandr Mazur
a57682c9ef Extend state and config models to support mcast (IGMP)
Extend interface config data model to support configuring underline device's
IGMP engine - switching snooping, IGMP version used, querier config, static
groups configuration etc.

Extend state model to report back to the cloud current IGMP configuration,
IGMP-enabled-groups (both static and dynamically joined), ports that are
members of groups that should replicate mcast traffic etc.

Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
2024-02-05 14:46:05 +02:00
Olexandr, Mazur
c769b4e24e Merge pull request #3 from Telecominfraproject/default-values-for-schema/ethernet.yml-speed-and-duplex
The ols-ucentral-client src/ucentral-client/proto.c depends on the et…
2024-01-26 15:34:35 +02:00
Mike Hansen
32e90c0ea3 The ols-ucentral-client src/ucentral-client/proto.c depends on the ethernet port speed and duplex values being present, even if the port itself is not enabled:
enabled =
                        cJSON_IsTrue(cJSON_GetObjectItemCaseSensitive(eth, "enabled"));
                duplex =
                        cJSON_GetStringValue(cJSON_GetObjectItemCaseSensitive(eth, "duplex"));
                speed =
                        cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(eth, "speed"));

                if (!duplex || !speed || !select_ports) {
                        UC_LOG_ERR("Ethernet obj doesn't hold duplex, speed or select-ports fields, parse failed\n");
                        return -1;
                }

While personally I believe it might be better not to care about speed and duplex setting for a port that is disabled, if they are required, it makes sense to define defaults for them in the schema, as it is highly likely that any operator configuring a switch would not think it necessary to define these values on disabled physical ports.

Speed is defaulted to 1000
Duplex is defaulted to full
Signed-off-by: Mike Hansen <mike.hansen@netexperience.com>
2024-01-25 11:20:41 -05:00
36 changed files with 9045 additions and 182 deletions

28
LICENSE Normal file
View File

@@ -0,0 +1,28 @@
BSD 3-Clause License
Copyright (c) 2024, Telecom Infra Project
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -0,0 +1,290 @@
description:
uCentral protocol (OpenLan) device and features capabilities schema
type: object
properties:
serial:
type: string
examples:
- aabbccddeeff
firmware:
type: string
description:
Platform revision
examples:
- Rel 1.6 build 5
version:
type: object
description:
The ols schema version to be used with this Switch
properties:
major:
type: integer
minor:
type: integer
patch:
type: integer
examples:
- 'major': 3
'minor': 2
'patch': 0
platform:
type: string
enum:
- Switch
- AP
model:
type: string
description:
Device model
hw-sku:
type: string
description:
Stock keeping unit
compatible:
type: string
description:
Compatibility string, that defines the family of the device
base-mac:
type: string
description:
Switch MAC address
format: uc-mac
examples:
- aa:bb:cc:dd:ee:ff
port-list:
type: array
description:
The list of physical network devices
items:
type: object
properties:
name:
type: string
description:
The logical name of the port that is used by the OS
examples:
- Ethernet0
- Ethernet1
- Ethernet76
front-panel-number:
type: integer
description:
The identification number of the port as can be seen on the front-panel of the device
port-capabilities:
type: object
description:
Description of physical ports and their form-factors
properties:
form-factors:
type: array
items:
type: string
enum:
- RJ45
- SFP
- SFP+
- SFP28
- SFP-DD
- QSFP
- QSFP+
- QSFP28
- QSFP-DD
ports-list:
type: array
items:
type: object
properties:
type:
type: string
examples:
- RJ45
ports:
type: array
items:
type: string
examples:
- Ethernet1
poe-capabilities:
type: object
description:
Description of physical ports and their PoE capabilities
properties:
supported-standards:
type: array
items:
type: string
enum:
- .3AF-POE
- .3AT-POE+
- .3BT-PoE++
- PreStandard-Passive
power-budget:
type: integer
examples:
- 2000
poe-ports:
type: array
items:
type: object
properties:
type:
type: string
examples:
- .3AF-POE
budget-capacity:
type: integer
ports:
type: array
items:
type: string
examples:
- Ethernet1
mclag-capabilities:
description: Capabilities of the MC-LAG (Multi-Chassis Link Aggregation) feature in the switch
type: object
properties:
max-mclag-groups:
description: Defines the maximum number of MC-LAG groups that can be configured on the switch.
type: integer
max-ports-per-mclag-group:
description: Specifies the maximum number of physical ports that can be part of a single MC-LAG group.
type: integer
max-vlans-per-mclag-group:
description: Indicates the maximum number of VLANs that can be supported within a single MC-LAG group.
type: integer
dual-active-detection:
description: Describes the dual-active detection mechanism to prevent both switches from becoming active simultaneously.
type: string
enum:
- ICCP
- Backup-Link
- None
failover-time-milliseconds:
description: Specifies the time (in milliseconds) required for traffic to fail over to the secondary switch when there is a failure in the primary switch.
type: integer
vlan-synchronization:
description: Indicates whether VLAN synchronization across MC-LAG peers is supported and the number of VLANs that can be synchronized.
type: boolean
max-mac-entries-per-mclag:
description: Maximum number of MAC address entries that can be synchronized across MC-LAG peers.
type: integer
lldp-capabilities:
type: object
description:
Description of LLDP capabilities across different switch models/vendors.
properties:
supported-tlvs:
type: array
items:
type: string
enum:
- lldp-basic-tlv-mgmt-ip-v4
- lldp-basic-tlv-mgmt-ip-v6
- lldp-basic-tlv-port-descr
- lldp-basic-tlv-sys-capab
- lldp-basic-tlv-sys-descr
- lldp-basic-tlv-sys-name
- lldp-dot1-tlv-proto-ident
- lldp-dot1-tlv-proto-vid
- lldp-dot1-tlv-pvid
- lldp-dot1-tlv-vlan-name
- lldp-dot3-tlv-link-agg
- lldp-dot3-tlv-mac-phy
- lldp-dot3-tlv-max-frame
- lldp-dot3-tlv-poe
- lldp-med-location-civic-addr
- lldp-med-tlv-ext-poe
- lldp-med-tlv-inventory
- lldp-med-tlv-location
- lldp-med-tlv-med-cap
- lldp-med-tlv-network-policy
max-neighbors:
type: integer
description: Maximum number of LLDP neighbors a switch can discover and maintain.
examples:
- 64
- 128
- 256
supported-features:
type: array
description:
List of all features supported by the device
items:
type: string
enum:
# L2
- VLAN
- VLAN-Voice
- Jumbo-Frames
- Link-Aggregation-LACP
- Link-Aggregation-Static
- Link-Aggregation-MCLAG
- Port-Isolation
- Spanning-Tree
- Spanning-Tree-Rapid
- Spanning-Tree-Per-VLAN
- Spanning-Tree-Per-VLAN-Rapid
- Spanning-Tree-MSTP
# L3
- SVI-StaticIPv4
- SVI-StaticIPv6
- Interface-StaticIPv4
- Interface-StaticIPv6
- Routing-VRF
- Routing-IPv4-Route-Blackhole
- Routing-IPv4-Route-Unreachable
- Routing-IPv4-Nexthop
- Routing-IPv4-Broadcast
- Routing-IPv4-Multicast-IGMP-Snooping
- Routing-IPv4-Multicast-IGMP-Querier
- Routing-IPv4-Multicast-IGMP-Static
- Routing-IPv4-DHCP-Server
- Routing-IPv4-DHCP-Relay
- Routing-IPv4-DHCP-Snooping
- Routing-IPv4-Port-Forward
- Routing-IPv6-DHCP-Relay
- Routing-IPv6-DHCP-Stateful
- Routing-IPv6-DHCP-Stateless
- Routing-IPv6-Port-Forward
- Multicast-VLAN-Registration
# PoE
- PoE-Reset
# .1X
- Port-Access-Control
- PAC-Dynamic-Auth
- mac-address-bypass
# System
- System-PasswordChange
- System-SwUpdate
- System-SwUpdate-Partial
- Port-Mirroring
# Security
- MAC-ACL
- IP-ACL
- Guest-VLAN
# Services
- Service-SSH
- Service-RSSH
- Service-Telnet
- Service-LLDP
- Service-HTTP
- Service-HTTPS
- Service-GPS
- Service-IGMP
- Service-NTP
- Service-NTP-Client
- Service-MDNS
- Service-QoS
- Service-Syslog
- Service-PAC
- Service-Wireguard-Overlay
- Service-Radius-Proxy
- Service-Online-Check
- Service-CaptivePortal
- Service-PublicIpCheck
# Tunneling
- Tunneling-VxLAN
- Tunneling-GRE
- Tunneling-GRE6
- Tunneling-L2TP
- Tunneling-Mesh

View File

@@ -7,7 +7,8 @@ set -x
./merge-schema.py schema schema ucentral.yml ucentral.schema.pretty.json 0 1
./merge-schema.py schema schema ucentral.yml ucentral.schema.full.json 0 0
./merge-schema.py state state state.yml ucentral.state.pretty.json 0 1
./generate-reader.uc > schemareader.uc
./merge-schema.py capabilities capabilities connect.capabilities.yml ucentral.capabilities.pretty.json 0 1
#./generate-reader.uc > schemareader.uc
#./generate-example.uc > input.json
mkdir -p docs
which generate-schema-doc > /dev/null

View File

@@ -18,6 +18,13 @@ properties:
- LAN*
- WAN*
- "*"
name:
description:
This is a free text field, stating the administrative name of the
port. It may contain spaces and special characters, not exceeding 64 characters.
type: string
examples:
- cloud_uplink_port
speed:
description:
The link speed that shall be forced.
@@ -31,6 +38,7 @@ properties:
- 10000
- 25000
- 100000
default: 1000
duplex:
description:
The duplex mode that shall be forced.
@@ -38,6 +46,7 @@ properties:
enum:
- half
- full
default: full
enabled:
description:
This allows forcing the port to down state by default.
@@ -92,7 +101,7 @@ properties:
power-limit:
description:
Option to configure user defined absolute power limit PoE port can dain (in milliwatts, mW).
type: number
type: integer
default: 99900
priority:
description:
@@ -135,10 +144,10 @@ properties:
- auto
default: force-authorized
host-mode:
description:
Multi-auth While in this mode, multiple devices are allowed to independently authenticate through the same port.
Multi-domain While in this mode, the authenticator will allow one host from the data domain and one from the voice domain.
Multi-host While in this mode, the first device to authenticate will open to the switchport so that all other devices can use the port. These other devices are not required to be authenticated independently.
description: |
Multi-auth - While in this mode, multiple devices are allowed to independently authenticate through the same port.
Multi-domain - While in this mode, the authenticator will allow one host from the data domain and one from the voice domain.
Multi-host - While in this mode, the first device to authenticate will open to the switchport so that all other devices can use the port. These other devices are not required to be authenticated independently.
Single-host - While in this mode, the switchport will only allow a single host to be authenticated and to pass traffic at a time.
type: string
enum:
@@ -159,3 +168,200 @@ properties:
type: integer
minimum: 1
maximum: 4094
mac-address-bypass:
description: Enables bypass when a device does not support 802.1X authentication (e.g., printers, IP phones)
type: boolean
mac-address-bypass-timeout-minutes:
description: Defines the time period (in minutes) for which a MAC address is allowed access to the network without requiring reauthentication, after being authenticated or allowed via MAC Authentication Bypass (MAB).
type: integer
trunk-group:
description: Associates this port to a trunk or a port-channel.
type: integer
minimum: 1
maximum: 64
lacp-config:
description:
This section describes the 802.3ad Link Aggregation Control Protocol (LACP) configuration for the current interface.
type: object
properties:
lacp-enable:
description:
Enables 802.3ad Link Aggregation Control Protocol (LACP) for the current interface.
type: boolean
default: false
lacp-role:
description:
Configures the port LACP role as actor or partner.
type: string
enum:
- actor
- partner
default: actor
lacp-mode:
description:
Configures the LACP negotiation activity mode as active or passive.
type: string
enum:
- active
- passive
default: passive
lacp-port-admin-key:
description:
Configures the port's LACP administration key.
type: integer
minimum: 1
maximum: 65535
default: 1
lacp-port-priority:
description:
Configures the LACP port priority.
type: integer
minimum: 1
maximum: 65535
default: 32768
lacp-system-priority:
description:
Configures the LACP System priority.
type: integer
minimum: 1
maximum: 65535
default: 32768
lacp-pchan-admin-key:
description:
Configures the port channel's LACP administration key (optional).
type: integer
minimum: 1
maximum: 65535
lacp-timeout:
description:
Configures the timeout to wait for the next LACP data unit.
type: string
enum:
- short
- long
default: long
lldp-interface-config:
type: object
description: Configurations of LLDP on a specified interface.
properties:
lldp-admin-status:
type: string
description: Enables LLDP transmit, receive, or transmit and receive mode on the specified port.
enum:
- rx
- tx
- rx-tx
lldp-basic-tlv-mgmt-ip-v4:
type: boolean
description: Configures an LLDP-enabled port to advertise the management address for this device.
default: true
lldp-basic-tlv-mgmt-ip-v6:
type: boolean
description: Configures an LLDP-enabled port to advertise the management IPv6 address for this device, if available.
default: false
lldp-basic-tlv-port-descr:
type: boolean
description: Configures an LLDP-enabled port to advertise its port description.
default: true
lldp-basic-tlv-sys-capab:
type: boolean
description: Configures an LLDP-enabled port to advertise its system capabilities.
default: true
lldp-basic-tlv-sys-descr:
type: boolean
description: Configures an LLDP-enabled port to advertise the system description.
default: true
lldp-basic-tlv-sys-name:
type: boolean
description: Configures an LLDP-enabled port to advertise its system name.
default: true
lldp-dot1-tlv-proto-ident:
type: boolean
description: Configures an LLDP-enabled port to advertise the supported protocols.
default: true
lldp-dot1-tlv-proto-vid:
type: boolean
description: Configures an LLDP-enabled port to advertise port-based protocol-related VLAN information.
default: true
lldp-dot1-tlv-pvid:
type: boolean
description: Configures an LLDP-enabled port to advertise its default Native VLAN ID (PVID).
default: true
lldp-dot1-tlv-vlan-name:
type: boolean
description: Configures an LLDP-enabled port to advertise its VLAN name.
default: true
lldp-dot3-tlv-link-agg:
type: boolean
description: Configures an LLDP-enabled port to advertise its link aggregation capabilities.
default: true
lldp-dot3-tlv-mac-phy:
type: boolean
description: Configures an LLDP-enabled port to advertise its MAC and physical layer specifications.
default: true
lldp-dot3-tlv-max-frame:
type: boolean
description: Configures an LLDP-enabled port to advertise its maximum frame size.
default: true
lldp-dot3-tlv-poe:
type: boolean
description: Configures an LLDP-enabled port to advertise its Power-over-Ethernet capabilities.
default: true
lldp-med-location-civic-addr:
type: object
description: Configures an LLDP-MED-enabled port to advertise its location identification details.
properties:
lldp-med-location-civic-addr-admin-status:
type: boolean
description: Enables or disables the advertisement of this TLV.
default: false
lldp-med-location-civic-country-code:
type: string
description: Configure the two-letter ISO 3166 country code in capital ASCII letters.
lldp-med-location-civic-device-type:
type: integer
description: The type of device to which the location applies.
lldp-med-location-civic-ca:
description: The list of LLDP MED Location CA Types to advertise the physical location of the device, that is the city, street number, building and room information.
type: array
items:
type: object
properties:
lldp-med-location-civic-ca-type:
type: integer
description: A one-octet descriptor of the data civic address value.
maximum: 255
minimum: 0
lldp-med-location-civic-ca-value:
type: string
description: Description of a location.
maxLength: 32
minLength: 1
lldp-med-notification:
type: boolean
description: Enables the transmission of SNMP trap notifications about LLDP-MED changes.
default: false
lldp-med-tlv-ext-poe:
type: boolean
description: Configures an LLDP-MED-enabled port to advertise its extended Power over Ethernet configuration and usage information.
default: true
lldp-med-tlv-inventory:
type: boolean
description: Configures an LLDP-MED-enabled port to advertise its inventory identification details.
default: true
lldp-med-tlv-location:
type: boolean
description: Configures an LLDP-MED-enabled port to advertise its location identification details.
default: true
lldp-med-tlv-med-cap:
type: boolean
description: Configures an LLDP-MED-enabled port to advertise its Media Endpoint Device capabilities.
default: true
lldp-med-tlv-network-policy:
type: boolean
description: Configures an LLDP-MED-enabled port to advertise its network policy configuration.
default: true
lldp-notification:
type: boolean
description: Enables the transmission of SNMP trap notifications about LLDP changes.
default: false

View File

@@ -40,7 +40,7 @@ properties:
vrf:
description:
VRF id.
type: number
type: integer
ipv4-unreachable:
description:
Define a list of non-interface specific UNREACHABLE routes.
@@ -58,4 +58,4 @@ properties:
vrf:
description:
VRF id.
type: number
type: integer

33
schema/interface.acl.yml Normal file
View File

@@ -0,0 +1,33 @@
description: A collection of access control entries that define the rules for filtering traffic through a network interface.
type: array
items:
type: object
properties:
acl-inf-policy-preference:
description: Determines the priority of multiple ACL policies when more than one is applied to an interface, if any.
type: integer
minimum: 1
maximum: 64
default: 1
acl-inf-policy-ingress:
description: Specifies the ACL policy that is applied to incoming traffic on an interface.
type: string
maxLength: 32
minLength: 1
examples:
- blacklisted-macs
acl-inf-counters-ingress:
description: Tracks the number and type of packets that match the ingress ACL rules on an interface.
type: boolean
default: false
acl-inf-policy-egress:
description: Specifies the ACL policy that is applied to outgoing traffic from an interface.
type: string
maxLength: 32
minLength: 1
examples:
- blacklisted-macs
acl-inf-counters-egress:
description: Tracks the number and type of packets that match the egress ACL rules on an interface.
type: boolean
default: false

View File

@@ -0,0 +1,16 @@
description: "Configuration for DHCP Snooping on a port level on a switch"
type: object
properties:
dhcp-snoop-port-trust:
description: "This parameter designates a switch port as trusted for DHCP messages, meaning it can forward DHCP offers and acknowledgments, which is essential for connecting to legitimate DHCP servers"
type: boolean
default: false
dhcp-snoop-port-client-limit:
description: "It sets a limit on the number of DHCP clients that can be associated with a single port, helping to prevent a single port from exhausting the networks IP address pool"
type: integer
minimum: 1
dhcp-snoop-port-circuit-id:
description: "Specifies DHCP Option 82 circuit ID suboption information. Often including information like the interface number and VLAN ID, this can be useful for network management and troubleshooting"
type: string
minLength: 1
maxLength: 32

View File

@@ -20,3 +20,19 @@ properties:
type: string
format: uc-timeout
default: 6h
relay-server:
description:
Use host at this IPv4 address to forward packets between clients and servers on different subnets.
type: string
format: ipv4
example: 192.168.2.1
circuit-id-format:
description:
This option selects what info shall be contained within a relayed frame's circuit ID.
The string passed in has placeholders that are placed inside a bracket pair "{}".
Any text not contained within brackets will be included as freetext.
Valid placeholders are "Interface, VLAN-ID"
type: string
example:
- \{Interface\}:\{VLAN-ID\}}

View File

@@ -30,7 +30,7 @@ properties:
vrf:
description:
VRF id.
type: number
type: integer
gateway:
description:
This option defines the static IPv4 gateway of the logical interface.
@@ -55,7 +55,7 @@ properties:
vrf:
description:
VRF id.
type: number
type: integer
metric:
description:
Optional metric value (define a NH route's weight / metric).
@@ -77,7 +77,107 @@ properties:
vrf:
description:
VRF id.
type: number
type: integer
multicast:
type: object
properties:
unknown-multicast-flood-control:
description:
The unknown multicast flood control feature enables the system to forward unknown multicast packets only to a multicast router (mrouter).
type: boolean
default: true
igmp:
type: object
properties:
snooping-enable:
description:
Enable or disable IGMP snooping on per-VLAN basis.
type: boolean
default: true
version:
description:
Configures the IGMP version. Configurable versions are IGMPv1, IGMPv2, and IGMPv3
type: integer
enum:
- 1
- 2
- 3
examples:
- 3
default: 3
querier-enable:
description:
Configure this interface to act as a querier (multicast router)
type: boolean
default: false
fast-leave-enable:
description:
Removes the group state when it receives an IGMP Leave report without sending an IGMP query message
type: boolean
default: false
query-interval:
description:
Defines the interval between sending IGMP general queries
type: integer
default: 1000
last-member-query-interval:
description:
Defines the maximum response time (milliseconds) advertised in IGMP group-specific queries
type: integer
default: 1000
max-response-time:
description:
Configures a query maximum response time (in seconds) that is advertised on IGMP queries.
type: integer
default: 10
static-mcast-groups:
description:
Configures a Layer 2 port of a VLAN as a static member of an IGMP multicast group(s).
type: array
items:
type: object
properties:
egress-ports:
description:
Specify egress port(s) to forward mcast traffc of static group to.
type: array
items:
type: string
address:
description:
Specify IPV4 address (group) this interface is statically configured to be member of.
type: string
format: ipv4
examples:
- 225.0.0.1
mvr:
type: object
description: MVR attributes on a given interface
properties:
mvr-intf-mvr-role:
type: string
description: Configure an interface as an MVR receiver or source port. A port which is not configured as an MVR receiver or source port can use IGMP snooping to join or leave multicast groups using the standard rules for multicast filtering.
enum:
- none
- source
- receiver
mvr-intf-immed-leave:
type: string
description: Switch to immediately remove an interface from a multicast stream as soon as it receives a leave message for that group. Applies to only receiver role ports.
enum:
- none
- by-host-ip
- by-group
default: by-group
mvr-intf-assoc-domain:
type: integer
description: Map the port to a specific domain.
maximum: 10
minimum: 1
required:
- mvr-intf-mvr-role
- mvr-intf-immed-leave
- mvr-intf-assoc-domain
send-hostname:
description:
include the devices hostname inside DHCP requests
@@ -96,6 +196,39 @@ properties:
examples:
- 8.8.8.8
- 4.4.4.4
dhcp-snoop-vlan-enable:
description: "Enables DHCP Snooping on a VLAN"
type: boolean
default: false
voice-vlan-intf-config:
description: "Configure the Voice VLAN feature at the interface level, allowing for VoIP traffic to be prioritized on this specific port."
type: object
properties:
voice-vlan-intf-mode:
description: "Specify the mode of placing this port on the voice VLAN."
type: string
default: "auto"
enum:
- none
- manual
- auto
voice-vlan-intf-priority:
description: "Define the Class of Service (CoS) priority for VoIP traffic passing through this port, ensuring higher priority over other traffic types."
type: integer
default: 6
minimum: 0
maximum: 6
voice-vlan-intf-detect-voice:
description: "Select the detection method for identifying VoIP traffic on this port, such as OUI-based detection or traffic pattern recognition."
type: string
default: "oui"
enum:
- oui
- lldp
voice-vlan-intf-security:
description: "Enable or configure security filtering for VoIP traffic on the interface to protect against unauthorized devices."
type: boolean
default: false
dhcp:
$ref: "https://ucentral.io/schema/v1/interface/ipv4/dhcp/"
dhcp-leases:

View File

@@ -68,6 +68,10 @@ properties:
$ref: "https://ucentral.io/schema/v1/interface/ipv4/"
ipv6:
$ref: "https://ucentral.io/schema/v1/interface/ipv6/"
acl:
$ref: "https://ucentral.io/schema/v1/interface/acl/"
dhcp-snooop-port:
$ref: "https://ucentral.io/schema/v1/interface/dhcp-snoop-port/"
broad-band:
$ref: "https://ucentral.io/schema/v1/interface/broad-band/"
ssids:

View File

@@ -18,3 +18,10 @@ properties:
- lldp
- clients
- tid-stats
wired-clients-max-num:
description:
Configure maximum number of FDB entries device's allowed to report.
If omitted, device-default number should be used (2000).
Setting to zero means no entries should be reported, flag should be raised.
If device's current FDB size exceeds configured value, flag should be raised as well.
type: integer

View File

@@ -9,3 +9,7 @@ properties:
maximum: 65535
minimum: 1
default: 80
enable:
description:
This option whether http server should be enabled or disabled.
type: boolean

15
schema/service.https.yml Normal file
View File

@@ -0,0 +1,15 @@
description:
Enable the webserver with the on-boarding webui
type: object
properties:
https-port:
description:
The port that the secure HTTP server should run on.
type: integer
maximum: 65535
minimum: 1
default: 443
enable:
description:
This option whether secure http server should be enabled or disabled.
type: boolean

View File

@@ -25,3 +25,7 @@ properties:
to false, only ssh key based authentication is possible.
type: boolean
default: true
enable:
description:
This option whether SSH server should be enabled or disabled.
type: boolean

View File

@@ -0,0 +1,8 @@
description:
This section can be used to setup a Telnet server on the device.
type: object
properties:
enable:
description:
This option whether telnet server should be enabled or disabled.
type: boolean

View File

@@ -47,3 +47,7 @@ properties:
$ref: 'https://ucentral.io/schema/v1/service/admin-ui/'
rrm:
$ref: 'https://ucentral.io/schema/v1/service/rrm/'
telnet:
$ref: "https://ucentral.io/schema/v1/service/telnet/"
https:
$ref: "https://ucentral.io/schema/v1/service/https/"

View File

@@ -5,18 +5,20 @@ properties:
port-mirror:
description:
Enable mirror of traffic from multiple minotor ports to a single analysis port.
type: object
properties:
monitor-ports:
description:
The list of ports that we want to mirror.
type: array
items:
type: array
items:
type: object
properties:
monitor-ports:
description:
The list of ports that we want to mirror.
type: array
items:
type: string
analysis-port:
description:
The port that mirror'ed packets should be sent to.
type: string
analysis-port:
description:
The port that mirror'ed packets should be sent to.
type: string
loop-detection:
description:
Enable loop detection on the L2 switches/bridge.
@@ -43,50 +45,50 @@ properties:
enum:
- upstream
- downstream
instances:
description:
Define a list of configuration for each STP instance.
Meaning of this field depends on current
STP protocol (switch.loop-detection.protocol)
type: array
items:
type: object
properties:
id:
description:
Indicates instance to configure.
Depends on current STP protocol
If RPVSTP/PVSTP - vlan id
If MSTP - instance id
type: integer
enabled:
description:
Enable STP on this instance.
type: boolean
default: true
priority:
description:
Bridge priority.
type: integer
default: 32768
forward_delay:
description:
Defines the amount of time a switch port stays in the Listening
and Learning states before transitioning to the Forwarding state.
type: integer
default: 15
hellow_time:
description:
Determines how often switches send BPDU.
type: integer
default: 2
max_age:
description:
Specifies the maximum time that a switch port should wait to
receive a BPDU from its neighbor before
considering the link as failed or disconnected.
type: integer
default: 20
instances:
description:
Define a list of configuration for each STP instance.
Meaning of this field depends on current
STP protocol (switch.loop-detection.protocol)
type: array
items:
type: object
properties:
id:
description:
Indicates instance to configure.
Depends on current STP protocol
If RPVSTP/PVSTP - vlan id
If MSTP - instance id
type: integer
enabled:
description:
Enable STP on this instance.
type: boolean
default: true
priority:
description:
Bridge priority.
type: integer
default: 32768
forward_delay:
description:
Defines the amount of time a switch port stays in the Listening
and Learning states before transitioning to the Forwarding state.
type: integer
default: 15
hello_time:
description:
Determines how often switches send BPDU.
type: integer
default: 2
max_age:
description:
Specifies the maximum time that a switch port should wait to
receive a BPDU from its neighbor before
considering the link as failed or disconnected.
type: integer
default: 20
ieee8021x:
description:
This section describes the global 802.1X (port access control) configuration.
@@ -129,3 +131,579 @@ properties:
type: integer
maximum: 64
minimum: 1
dynamic-authorization:
description:
Additional dynamic authorization (RFC 5176 compliant) - configure option for DAS that enable RM and CoA processing.
type: object
properties:
auth-type:
description:
Sets the accepted authorization types for dynamic RADIUS clients.
all - Selects all COA client authentication types. All authentication attributes must match for the authentication to succeed.
any - Selects any COA client authentication type. Any authentication attribute may match for the authentication to succeed.
session-key - Indicates that the session-key must match for authentication to succeed.
type: string
enum:
- all
- any
- session-key
bounce-port-ignore:
description:
Sets the switch to ignore bounce-port requests from dynamic authorization clients.
type: boolean
default: false
disable-port-ignore:
description:
Sets the switch to ignore requests from dynamic authorization clients.
type: boolean
default: false
ignore-server-key:
description:
Do not attmept to authenticate with the server key.
type: boolean
default: false
ignore-session-key:
description:
Do not attmept to authenticate with the session key.
type: boolean
default: false
server-key:
description:
Sets the shared secret to verify client COA requests for this server.
type: string
client:
description:
Configure DAC.
type: array
items:
type: object
properties:
address:
description:
A valid IP address or hostname of a DAC.
type: string
server-key:
description:
Sets the shared secret to verify client COA requests for this server.
type: string
port-isolation:
description:
This section describes the per-port specific port-isolation matrix (to which ports selected port can forward traffic to) configuration.
Omitting this configuration completely fully disables any port-isolation configuration on this given port.
type: object
properties:
sessions:
description:
Allow selected port to forward traffic in the provided session-based format.
type: array
items:
type: object
properties:
id:
description:
Session id to configure.
type: integer
uplink:
description:
Configuration object for uplink interface(s)
type: object
properties:
interface-list:
description:
List of interfaces (either physical or trunk ports)
type: array
items:
type: string
downlink:
description:
Configuration object for downlink interface(s)
type: object
properties:
interface-list:
description:
List of interfaces (either physical or trunk ports)
type: array
items:
type: string
trunk-balance-method:
description:
Sets the load-distribution method among ports in aggregated links for both static and LACP based trunks.
type: string
enum:
- dst-ip
- dst-mac
- src-dst-ip
- src-dst-mac
- src-ip
- src-mac
default: src-dst-mac
jumbo-frames:
description:
Enables Jumbo frames
type: boolean
default: false
dhcp-snooping:
description: DHCP Snooping configuration parameters
type: object
properties:
dhcp-snoop-enable:
description: "Enables DHCP Snooping on the network switch, which is a security feature that prevents unauthorized DHCP servers from offering IP addresses"
type: boolean
default: false
dhcp-snoop-rate-limit:
description: "Sets a limit on the number of DHCP packets per second that can be received on an untrusted interface to prevent DHCP flooding attacks"
type: integer
minimum: 1
maximum: 2048
dhcp-snoop-mac-verify:
description: "This option ensures that the MAC address in a DHCP request matches the source MAC address of the packet, providing an additional layer of security"
type: boolean
default: false
dhcp-snoop-inf-opt-82:
description: "This refers to the insertion of information option 82 in DHCP packets, which adds more details about the clients location and network information for tracking and control purposes"
type: boolean
default: false
dhcp-snoop-inf-opt-encode-subopt:
description: "This parameter allows for the encoding of sub-options within option 82 to further specify client information"
type: boolean
default: false
dhcp-snoop-inf-opt-remoteid:
description: "It specifies the remote ID sub-option in option 82, which typically includes information like the circuit ID or remote host identifier"
type: string
maxLength: 32
minLength: 1
dhcp-snoop-inf-opt-policy:
description: "This defines the policy for handling packets with option 82, determining whether they should be forwarded or dropped based on the configuration"
type: string
enum:
- drop
- keep
- replace
acl:
description: Contains all the access control rule definitions
type: array
items:
type: object
properties:
acl-type:
description: Type of the access control list
type: string
enum:
- ipv4
- ipv6
- ipv4Ext
- ipv6Ext
- mac
- arp
acl-name:
description: The identifier or name for the Access Control List
type: string
maxLength: 32
minLength: 1
acl-rule-action:
description: Defines whether to permit or deny traffic matching the rule
type: string
enum:
- permit
- deny
acl-source-macaddress:
description: Specifies the source MAC address to filter on
type: string
format: uc-mac
acl-source-macbitmask:
description: The mask applied to the source MAC address
type: string
format: uc-mac
acl-dest-macaddress:
description: Specifies the destination MAC address for the filter
type: string
format: uc-mac
acl-dest-macbitmask:
description: The mask applied to the destination MAC address
type: string
format: uc-mac
acl-packet-format:
description: Identifies the protocol encapsulated in the Ethernet frame by its EtherType
type: string
enum:
- any
- untagged-eth2
- untagged-802.3
- tagged-eth2
- tagged-802.3
acl-vlanid:
description: Specifies a VLAN ID to filter traffic from a specific VLAN
type: integer
minimum: 1
maximum: 4094
acl-vid-bitmask:
description: The mask applied to the VLAN ID
type: integer
minimum: 1
maximum: 4095
acl-ethertype:
description: Filters packets based on the custom EtherType field (HEX) in the Ethernet frame
type: string
default: "800"
acl-ethertype-bitmask:
description: The mask applied to the EtherType field
type: string
default: "FFFF"
acl-cos:
description: Filters based on the Class of Service (CoS) field in the frame
type: integer
minimum: 0
maximum: 7
acl-cos-bitmask:
description: The mask applied to the CoS field
type: integer
minimum: 0
maximum: 7
# IP-ACL (IPv4/IPv6) Parameters
acl-ipv4-source-address:
description: The IPv4 address of the source to filter on
type: string
format: ipv4
acl-ipv4-source-subnetmask:
description: The subnet mask applied to the source IPv4 address
type: string
format: ipv4
acl-ipv4-dest-address:
description: The IPv4 address of the destination to filter on
type: string
format: ipv4
acl-ipv4-dest-subnetmask:
description: The subnet mask applied to the destination IPv4 address
type: string
format: ipv4
acl-ipv6-source-address:
description: The IPv6 address of the source to filter on
type: string
format: ipv6
acl-ipv6-source-prefix-length:
description: Defines the length of the prefix used in filtering IPv6 source addresses
type: integer
minimum: 0
maximum: 128
acl-ipv6-dest-address:
description: The IPv6 address of the destination to filter on
type: string
format: ipv6
acl-ipv6-dest-prefix-length:
description: Defines the length of the prefix used in filtering IPv6 destination addresses
type: integer
minimum: 0
maximum: 128
acl-ip-proto:
description: Filters based on the IP protocol number
type: integer
minimum: 0
maximum: 255
acl-ipv6-next-header:
description: Specifies the next header type in IPv6 traffic, such as TCP, UDP, or ICMPv6
type: integer
minimum: 0
maximum: 255
acl-ipv6-flow-label:
description: Filters packets based on the IPv6 Flow Label field
type: integer
minimum: 0
maximum: 1048575
acl-ip-source-port:
description: Specifies the source port number for filtering
type: integer
minimum: 0
maximum: 65535
acl-ip-source-port-bitmask:
description: The mask applied to the source port number
type: integer
minimum: 0
maximum: 65535
acl-ip-dest-port:
description: Specifies the destination port number for filtering
type: integer
minimum: 0
maximum: 65535
acl-ip-dest-port-bitmask:
description: The mask applied to the destination port number
type: integer
minimum: 0
maximum: 65535
acl-ipv4-fragment-offset:
description: Filters based on IPv4 fragment offset for fragmented packets
type: integer
minimum: 0
maximum: 8191
acl-ipv6-fragment-offset:
description: Filters based on IPv6 fragment offset for fragmented packets
type: integer
minimum: 0
maximum: 8191
acl-ip-ttl:
description: Filters IPv4 traffic based on the TTL (Time to Live) value
type: integer
minimum: 0
maximum: 255
acl-ipv6-hop-limit:
description: Filters IPv6 traffic based on the hop limit value, equivalent to IPv4 TTL
type: integer
minimum: 0
maximum: 255
mvr-config:
description: This section defines the Multicast VLAN Registration (MVR) general configuration.
type: object
properties:
mvr-enable:
description: Enable/Disable MVR globally on the switch.
type: boolean
default: false
mvr-proxy-query-intvl:
description:
This command configures the interval (in seconds) at which the receiver port sends out general queries.
The maximum value is determined based on 12 hours as maximum interval, and minimum as 1 second as allowed value.
type: integer
default: 125
maximum: 43200
minimum: 1
mvr-proxy-switching:
description:
Enable the MVR proxy switching mode, where the source port acts as a host, and the receiver port
acts as an MVR router with querier service enabled.
type: boolean
default: false
mvr-robustness-val:
description:
Configure the expected packet loss, and thereby the number of times to generate report
and group-specific queries when changes are learned about downstream groups,
and the number of times group-specific queries are sent to downstream receiver ports.
Right configuration ensures that multicast group memberships are correctly maintained
even if some control messages are lost due to network issues.
type: integer
default: 2
maximum: 255
minimum: 1
mvr-source-port-mode:
description:
Configure the switch to forward only multicast streams that a source port has dynamically
joined or to forward all multicast groups.
type: string
default: forward
enum:
- dynamic
- forward
mvr-domain-config:
description: Configure the Multicast VLAN Registration (MVR) domains.
type: array
items:
type: object
properties:
mvr-domain-id:
description: Unique identifier for a Multicast Domain defined under the MVR.
type: integer
minimum: 1
maximum: 10
default: 1
mvr-domain-enable:
description: Enable/disable Multicast VLAN Registration (MVR) for a specific domain.
type: boolean
default: false
mvr-domain-vlan-id:
description:
Per domain Level Multicast VLAN ID. Specifies the VLAN through which MVR multicast data is received.
This is the VLAN to which all source ports must be assigned.
type: integer
minimum: 1
maximum: 4094
default: 1
mvr-domain-upstream-sip:
description: Configures the source IP address assigned to all MVR control packets sent upstream on all domains or on a specified domain.
type: string
format: ipv4
examples:
- 192.168.0.5
mvr-group-config:
type: array
description: List of MVR groups (or profiles) configuration.
items:
type: object
properties:
mvr-group-name:
type: string
description: The name of a MVR group that consists of one or more MVR group addresses
maxLength: 16
minLength: 1
mvr-group-range-start:
type: string
format: ipv4
description: Start IP address on the range of MVR group addresses that maps to a profile/MVR group
mvr-group-range-end:
type: string
format: ipv4
description: Statically configure all multicast group addresses that will join an MVR VLAN. Map a range of MVR group addresses to a profile
mvr-group-assoc-domain:
descpription: Map the MVR Group to a secific domain. There can be many profiles under a single domain
type: array
items:
type: integer
maximum: 10
minimum: 1
required:
- mvr-group-name
- mvr-group-range-start
- mvr-group-range-end
- mvr-group-assoc-domain
lldp-global-config:
type: object
description: Configuration options for LLDP on a global level in a OLS switch.
properties:
lldp-enable:
type: boolean
default: true
description: Enables or disables LLDP globally at a switch level.
lldp-holdtime-multiplier:
type: integer
description: Configures the time-to-live (TTL) value sent in LLDP advertisements. The TTL tells the receiving LLDP agent how long to retain all information from the sending LLDP agent if it does not transmit updates in a timely manner.
default: 4
lldp-med-fast-start-count:
type: integer
description: Configures how many medFastStart packets are transmitted during the activation process of the LLDP-MED Fast Start mechanism.
default: 4
lldp-refresh-interval:
type: integer
description: Configures the periodic transmit interval for LLDP advertisements (in seconds).
default: 30
lldp-reinit-delay:
type: integer
description: Configures the delay (in seconds) before reinitializing after LLDP ports are disabled or the link goes down.
default: 2
lldp-tx-delay:
type: integer
description: Configures a delay (in seconds) between successive transmissions of advertisements initiated by a change in local LLDP state.
maximum: 8192
minimum: 1
lldp-notification-interval:
type: integer
description: Configures the interval (in seconds) for sending SNMP notifications about LLDP changes.
default: 5
mc-lag:
type: boolean
description: Enables MC-LAG or disables it.
default: false
mclag-config:
description: This section defines the MC-LAG configuration parameters for the switch.
type: object
properties:
mclag-domains:
description: List of MC-LAG domain configurations for the switch.
type: array
items:
type: object
properties:
mclag-domain:
description: Specifies the MC-LAG domain ID to identify the grouping of peer switches.
type: integer
minimum: 1
maximum: 1024
default: 1
peer-link:
description: Configures the peer-link, which could be a physical port or a trunk group that connects the two MC-LAG peer switches.
type: object
properties:
type:
description: Defines the type of peer-link, either 'port' or 'trunk-group'
type: string
enum:
- port
- trunk-group
default: trunk-group
value:
description: Specifies the port or trunk-group ID for the peer-link.
type: integer
minimum: 1
maximum: 64
mclag-group:
description: Configures the MC-LAG group, which binds the interfaces into a multi-chassis LAG.
type: object
properties:
group-id:
description: Defines the unique MC-LAG group identifier.
type: integer
minimum: 1
maximum: 128
members:
description: List of interfaces that participate in the MC-LAG group.
type: array
items:
type: string
description: Interface names that are part of the MC-LAG group.
examples:
- eth0
- eth1
lacp-config:
description: LACP configuration settings for the MC-LAG group.
type: object
properties:
lacp-enable:
description: Enables or disables LACP for the MC-LAG group.
type: boolean
default: true
lacp-role:
description: Configures the LACP role as 'actor' or 'partner'
type: string
enum:
- actor
- partner
default: actor
lacp-timeout:
description: Sets the LACP timeout as either 'short' or 'long'.
type: string
enum:
- short
- long
default: long
system-priority:
description: Specifies the system priority used by the switch for LACP negotiations.
type: integer
minimum: 1
maximum: 65535
default: 32768
dual-active-detection:
description: Enables dual-active detection to prevent split-brain scenarios in MC-LAG.
type: boolean
default: true
voice-vlan-config:
description: "This parameter enables or disables the overall configuration of the Voice VLAN feature on the switch. When enabled, it allows the system to classify and prioritize voice traffic."
type: object
properties:
voice-vlan-id:
description: "Specifies the VLAN ID assigned to the Voice VLAN. This is the unique identifier for the VLAN that will be used for prioritizing voice traffic."
type: integer
minimum: 1
maximum: 4094
voice-vlan-ageing-time:
description: "Defines the time, in minutes, that a dynamic Voice VLAN entry remains in the VLAN after voice traffic is no longer detected. It helps manage resources by removing inactive voice devices from the VLAN after this time elapses."
type: integer
minimum: 5
maximum: 43200
default: 1440
voice-vlan-oui-config:
description: "Configures the Organizationally Unique Identifier (OUI) for identifying the voice devices (like IP phones)."
type: array
items:
type: object
properties:
voice-vlan-oui-mac:
description: "The specific MAC address pattern that corresponds to voice devices, as determined by the OUI. It is used for identifying and classifying voice traffic."
type: string
format: uc-mac
voice-vlan-oui-mask:
description: "A mask applied to the MAC address to help match the OUI more precisely. It ensures that the correct portion of the MAC address is evaluated to identify a device as a voice device."
type: string
format: uc-mac
voice-vlan-oui-description:
description: "A descriptive label or comment for the OUI configuration. This can help administrators keep track of which OUI belongs to which type of voice device or vendor."
type: string
maxLength: 32
minLength: 1
examples:
- "A VoIP Phone"

View File

@@ -12,6 +12,11 @@ properties:
description:
The unique ID of the configuration. This is the unix timestamp of when the config was created.
type: integer
public_ip_lookup:
description:
The fqdn to retrieve public ip of internet connection.
type: string
format: uc-fqdn
unit:
$ref: "https://ucentral.io/schema/v1/unit/"
globals:

View File

@@ -37,6 +37,10 @@ properties:
The device shall create a random root password and tell the gateway about it.
type: boolean
default: false
system-password:
description:
System-config string that holds the password for main (root / admin) user to apply.
type: string
beacon-advertisement:
description:
The TIP vendor IEs that shall be added to beacons
@@ -81,4 +85,28 @@ properties:
Configure a power alarm threshold for the Power sourcing equipment (in percentages %).
type: number
default: 90
multicast:
description:
This sections describes the system-wide (unit) multicast configuration object.
type: object
properties:
igmp-snooping-enable:
description:
Global config for controlling whether IGMP snooping is enabled. If this global setting is disabled, all VLANs are treated as disabled, whether they are enabled or not.
type: boolean
default: true
mld-snooping-enable:
description:
Global config for controlling whether MLD snooping is enabled. If this global setting is disabled, all VLANs are treated as disabled, whether they are enabled or not.
type: boolean
default: true
unknown-multicast-flood-control:
description:
Global config for the unknown multicast flood control feature. This enables the system to forward unknown multicast packets only to a multicast router (mrouter).
type: boolean
default: false
querier-enable:
description:
Global IGMP querier config. This enables all Vlan interfaces to act as a querier.
type: boolean
default: false

File diff suppressed because it is too large Load Diff

View File

@@ -8,6 +8,10 @@ properties:
type: string
description:
An IPv4 addreess.
public_ip:
type: string
description:
The public IP address of internet connection.
leasetime:
type: number
description:

View File

@@ -1,9 +1,10 @@
type: array
description:
This section describes an IPv6 lease that we have served.
items:
type: object
description:
This section describes an IPv6 lease that we have served.
An object, that describes a single served IPv6 address.
properties:
addresses:
type: array

View File

@@ -38,8 +38,154 @@ items:
$ref: "https://ucentral.io/state/v1/interface/clients/"
counters:
$ref: "https://ucentral.io/state/v1/interface/counter/"
delta_counters:
$ref: "https://ucentral.io/state/v1/interface/counter/"
mesh-path:
$ref: "https://ucentral.io/state/v1/interface/mesh-path/"
ssids:
$ref: "https://ucentral.io/state/v1/interface/ssid/"
multicast:
type: object
description:
Detailed information about all multicast-related data (groups joined, src address used etc)
properties:
igmp:
description:
Detailed information about IGMP configured / joined multicast groups, outgoing interfaces etc.
type: object
properties:
enabled-groups:
description:
List of joined IGMP multicast groups.
type: array
items:
type: object
properties:
address:
description:
Address of single group this interface is member of.
type: string
format: ipv4
examples:
- 225.0.0.1
egress-ports:
description:
List of ports where multicast traffic of this group is being replicated to.
type: array
items:
type: string
mvr:
type: object
description: MVR statistics on interface
properties:
mvr-intf-fwd-status:
description: Shows if MVR traffic is being forwarded or discarded.
type: boolean
mvr-intf-igmp-count-reports:
description: The number of IGMP membership reports received on this interface.
type: integer
mvr-intf-igmp-count-leave:
description: The number of leave messages received on this interface.
type: integer
mvr-intf-igmp-count-gquery:
description: The number of general query messages received on this interface.
type: integer
mvr-intf-igmp-count-gssquery:
description: The number of group specific or group-and-source specific query messages received on this interface.
type: integer
mvr-intf-igmp-count-drop:
description: The number of times a report, leave, or query was dropped.
type: integer
mvr-intf-igmp-count-joinsucc:
description: The number of times a multicast group was successfully joined.
type: integer
mvr-intf-igmp-count-actgroups:
description: The number of MVR groups active on this interface.
type: integer
acl-stats:
description: "Represents the overall statistics for ACLs on the OLS device."
type: object
properties:
acl-intf-stats:
description: "A list of ACL-related statistics, each corresponding to a specific interface or port."
type: array
items:
type: object
properties:
acl-intf-id:
description: "The identifier for the interface or port to which the ACL statistics apply."
type: string
acl-type:
description: "Type of the access control list."
type: string
enum:
- none
- ipv4
- ipv6
- ipv4Ext
- ipv6Ext
- mac
- arp
acl-rule-action:
description: "Indicates the action (permit or deny) taken when an ACL rule is matched."
type: string
enum:
- permit
- deny
acl-hit-count:
description: "The number of times an ACL rule has been matched by traffic."
type: number
acl-rule-resource-util:
description: "Shows the percentage of this user-configured ACL rule as a percentage of total ACL rules."
type: integer
minimum: 0
maximum: 100
acl-resource-stats:
description: "Represents the overall resource utilization statistics for ACLs."
type: object
properties:
acl-total-resource-util:
description: "Percentage of total ACL consumed resources amongst the resources available."
type: integer
minimum: 0
maximum: 100
dhcp-snoop-binding:
description: State message entry to show the binding table for DHCP Snooping
type: object
properties:
entries:
description: List of DHCP Snooping binding entries
type: array
items:
type: object
properties:
dhcp-snoop-bind-mac-address:
description: MAC address of the DHCP client in the DHCP Snooping binding table
type: string
format: uc-mac
dhcp-snoop-bind-ip-address:
description: IP address assigned to the MAC address in the DHCP Snooping binding table
type: string
format: ipv4
dhcp-snoop-bind-lease-seconds:
description: This indicates the lease time in seconds for the IP address assigned to the DHCP client, after which the IP address may be reassigned
type: integer
dhcp-snoop-bind-type:
description: Specifies the type of binding entry, such as dynamic or static, indicating how the IP address was assigned to the client
type: string
enum:
- dynamic
- static
dhcp-snoop-bind-vlan:
description: VLAN ID associated with the DHCP clients IP address, which helps in managing network segments
type: integer
minimum: 1
maximum: 4094
dhcp-snoop-bind-interf:
description: Identifies the interface through which the DHCP client is connected, aiding in network topology management
type: string
examples:
- "Ethernet1"
- "Unit-1/Port-2"
- "1-2"
- "Trunk 1"

67
state/lacp-trunks.yml Normal file
View File

@@ -0,0 +1,67 @@
type: array
items:
type: object
description:
List of dynamically created trunks.
properties:
trunk-identifier:
type: integer
description:
Logical identifier for the trunk.
minimum: 1
maximum: 64
member-port:
type: string
description: List of member ports under this trunk.
system-priority:
type: number
description:
LACP System priority.
port-priority:
type: number
description:
LACP port priority.
port-state:
type: string
description:
Port state.
lacpdu-sent:
type: number
description:
Number of LACP Data Units (PDUs) sent.
lacpdu-recv:
type: number
description:
Number of LACP Data Units (PDUs) received.
markerpdu-sent:
type: number
description:
Number of Marker PDUs sent.
markerpdu-recv:
type: number
description:
Number of Marker PDUs received.
unknownpkt-recv:
type: number
description:
Number of unknown packets received.
illegalpkt-recv:
type: number
description:
Number of illegal packets received.
port-oper-key:
type: number
description:
Operational key for the port.
partner-oper-key:
type: number
description:
Operational key for the partner.
oper-state:
type: string
description:
Operational state.
partner-oper-state:
type: string
description:
Operational state of the partner.

View File

@@ -10,7 +10,7 @@ properties:
type: number
description:
The speed of the physical link.
duplex:
duplex:
type: string
description:
The physical links duplex mode.
@@ -19,6 +19,8 @@ properties:
- half
counters:
$ref: "https://ucentral.io/state/v1/interface/counter/"
delta_counters:
$ref: "https://ucentral.io/state/v1/interface/counter/"
poe:
description:
This section describes the ethernet poe-port link-state object (statistics + PD info).
@@ -74,6 +76,7 @@ properties:
- "NO_ERROR"
counters:
description:
PoE-related descriptive statistics (counters).
type: object
properties:
overload:
@@ -140,3 +143,51 @@ properties:
Vlan type of authenticated client (Authorization status of the client).
type: integer
maximum: 4095
transceiver-info:
description:
Object holds information about underlying SFP module currently inserted into port's cage.
Some of information is read directly from module's EEPROM, while other data is measured in runtime by device's hardware (vcc for example).
type: object
properties:
vendor-name:
description:
Vendor (name) identifier
type: string
form-factor:
description:
Form-factor of the module itself (For example - QSFP28, QSFP56-DD etc)
type: string
supported-link-modes:
description:
Reports supported link modes of inserted module
type: array
items:
type: string
part-number:
description:
Module's part number (vendor's specific)
type: string
serial-number:
description:
Serial number of connected module
type: string
revision:
description:
Module's HW revision (same part number can have multiple revisions)
type: string
temperature:
description:
Current module's temperature
type: number
tx-optical-power:
description:
Current module's transmit optical level (power)
type: number
rx-optical-power:
description:
Current module's receive optical level (power)
type: number
max-module-power:
description:
Max power (in Watts) module can drain.
type: number

View File

@@ -28,3 +28,105 @@ items:
type: string
description:
The physical network port that we see this neighbour on.
lldp-remote-port-info:
type: object
description: Provides information about the remote port, such as the interface name and its operational status on the neighboring device.
properties:
lldp-remote-port-id:
type: string
description: The identifier for the remote port connected to the local port, often displayed as a string or number representing the remote interface.
lldp-remote-port-id-type:
type: string
description: Specifies the type of identifier used for the remote port, such as MAC address, interface name, or ifIndex.
enum:
- MAC Address
- Interface Name
- ifIndex
lldp-remote-ttl:
type: integer
description: Shows the time-to-live (TTL) value for LLDP advertisements from the remote device. This is the duration (in seconds) the LLDP information remains valid before expiring."
lldp-remote-port-descr:
type: string
description: Provides a textual description of the remote port, typically describing the interface or its purpose.
example: "Ethernet Port on unit 1, port 2"
lldp-remote-port-max-mtu:
type: string
description: Displays the maximum transmission unit (MTU) size that the remote port supports, indicating the largest packet size the port can handle.
lldp-remote-sys-descr:
type: string
description: A textual description of the remote system, including the device model, software version, or any user-configured description.
example: "ECS4150-28P"
lldp-remote-sys-capab:
type: array
description: Indicates the system capabilities advertised by the remote device, such as whether it supports routing, switching, bridging, etc.
items:
type: string
example: ["Switch", "Bridge", "Routing"]
lldp-remote-enabled-capab:
type: array
description: Displays the capabilities that are actually enabled on the remote device, such as routing, switching, or bridging functionality.
items:
type: string
example: ["Switch", "Bridge", "Routing"]
lldp-remote-port-mgmt-address:
type: string
description: The management IP address of the remote device, used to access the device for administrative purposes.
example: "192.168.0.4"
lldp-remote-port-vlan-id:
type: integer
description: Shows the VLAN ID associated with the remote port, which could indicate the native VLAN or the port's trunk configuration.
lldp-remote-port-protocol-id:
type: string
description: Identifies any protocol-specific information (in HEX) advertised by the remote device, such as VLAN, Spanning Tree, or Link Aggregation protocol.
lldp-remote-port-mac-phy-status:
type: object
description: Displays the physical layer status of the remote port.
properties:
lldp-remote-port-aneg-suport:
type: boolean
description: Indicates whether the remote port supports auto-negotiation of link parameters like speed and duplex settings.
lldp-remote-port-aneg-enabled:
type: boolean
description: Shows whether auto-negotiation is enabled on the remote port.
lldp-remote-port-aneg-advertised-cap:
type: string
description: Lists the capabilities (in HEX) the remote port is advertising during auto-negotiation, such as supported speeds and duplex modes.
lldp-remote-port-mau-type:
type: integer
description: Displays the Media Access Unit (MAU) type, describing the port's physical characteristics (e.g., copper or fiber, 10/100/1000Base-T, etc.).
lldp-remote-port-power-info:
type: object
description: Provides detailed PoE information.
properties:
lldp-remote-port-power-class:
type: string
description: Indicates if the device is a PSE or a PD.
enum:
- pse
- pd
lldp-remote-port-power-mdi-support:
type: boolean
description: Indicates whether the remote device supports Media Dependent Interface (MDI) power supply, allowing power to be supplied through the Ethernet cable.
lldp-remote-port-power-mdi-enabled:
type: boolean
description: Shows whether MDI power is currently enabled on the remote port.
lldp-remote-port-power-pair-control:
type: boolean
description: Displays whether the remote device has control over which wire pairs in the Ethernet cable provide power (important for PoE).
lldp-remote-port-power-classification:
type: string
description: Displays the PoE class of the remote device, indicating its power consumption classification.
enum: ["Class-1", "Class-2", "Class-3", "Class-4","Class-5", "Class-6", "Class-7", "Class-8"]
lldp-remote-port-lag-info:
type: object
description: Provides information about the remote ports involvement in Link Aggregation Groups (LAG), if applicable.
properties:
lldp-remote-port-lag-support:
type: boolean
description: Indicates whether the remote port supports Link Aggregation (static or LACP).
lldp-remote-port-lag-enabled:
type: boolean
description: Shows whether Link Aggregation is enabled on the remote port.
lldp-remote-port-lag-port-id:
type: integer
description: Displays the identifier of the Link Aggregation Group (LAG) that the remote port belongs to.

View File

@@ -0,0 +1,22 @@
type: object
description:
This section describes the global (device-wise) mac-address-list (FDB table / wired clients).
properties:
overflow:
description:
Flag indicates that device could report an amount of FDB entries, which is bigger than what cloud had requested.
type: boolean
additionalProperties:
type: object
additionalProperties:
description:
VID (vlan id) identifier
type: array
items:
type: string
examples:
- overflow: true
Ethernet1:
'1': [ 'AABBCCDDEEFF', '112233445566']
Ethernet2:
'10': [ '11BBCCDDEEFF', '332233445566']

View File

@@ -52,3 +52,13 @@ properties:
patternProperties:
"^(eth|lan|wan)[0-9]*$":
$ref: "https://ucentral.io/state/v1/link-state/"
mac-address-list:
$ref: "https://ucentral.io/state/v1/mac-address-list/"
static-trunks:
$ref: "https://ucentral.io/state/v1/static-trunks/"
lacp-trunks:
$ref: "https://ucentral.io/state/v1/lacp-trunks/"
uplink_interface:
type: string
description:
Current interface that serves as the Uplink. Example Ethernet2.

18
state/static-trunks.yml Normal file
View File

@@ -0,0 +1,18 @@
type: array
items:
type: object
description:
List of statically created trunks.
properties:
trunk-identifier:
type: integer
description:
Logical identifier for the trunk.
minimum: 1
maximum: 64
member-ports:
type: array
description:
List of member ports under this static trunk.
items:
type: string

View File

@@ -74,4 +74,50 @@ properties:
examples:
- "ON"
- "OFF"
ieee8021x:
description:
This section describes the global (device-wise) 802.1X (port access control) state and config applied.
type: object
properties:
dynamic-authorization:
description:
Reported DAS-related state info.
type: object
properties:
stats:
description:
Cumulative statistics for all configured DACs.
type: object
properties:
coa_req_received:
description:
Number of CoA requests received.
type: number
coa_ack_sent:
description:
Number of CoA ACK responses sent.
type: number
coa_nak_sent:
description:
Number of CoA NAK responses sent.
type: number
coa_ignored:
description:
Number of CoA requests ignored.
type: number
coa_wrong_attr:
description:
Number of CoA requests received with invalid (unsupported) attributes.
type: number
coa_wrong_attr_value:
description:
Number of CoA requests received with invalid (unsupported) attribute value.
type: number
coa_wrong_session_context:
description:
Number of CoA requests received with inexisting session context.
type: number
administratively_prohibited_req:
description:
Number of CoA requests that are sent if the NAS is configured to prohibit honoring of CoA-Request or Disconnect-Request packets for the specified session.
type: number

View File

@@ -79,6 +79,16 @@ let delta = 1;
if (telemetry)
delta = 0;
let public_ip_file = "/tmp/public_ip";
let public_ip = "";
if (cfg.public_ip_lookup) {
if (!fs.access(public_ip_file))
system(sprintf("/usr/bin/curl -m 3 %s -o %s", cfg.public_ip_lookup, public_ip_file));
let online_file = fs.open(public_ip_file);
public_ip = online_file.read("all") || '';
online_file.close();
}
global.tid_stats = (index(stats.types, 'tid-stats') > 0);
/* load state data */
@@ -412,6 +422,8 @@ cursor.foreach("network", "interface", function(d) {
push(ipv4, sprintf("%s/%d", a.address, a.mask));
iface.ipv4.addresses = ipv4;
if( cfg.public_ip_lookup && length(public_ip))
iface.ipv4.public_ip = public_ip;
}
if (length(status["ipv6-address"])) {

View File

@@ -0,0 +1,346 @@
{
"description": "uCentral protocol (OpenLan) device and features capabilities schema",
"type": "object",
"properties": {
"serial": {
"type": "string",
"examples": [
"aabbccddeeff"
]
},
"firmware": {
"type": "string",
"description": "Platform revision",
"examples": [
"Rel 1.6 build 5"
]
},
"version": {
"type": "object",
"description": "The ols schema version to be used with this Switch",
"properties": {
"major": {
"type": "integer"
},
"minor": {
"type": "integer"
},
"patch": {
"type": "integer"
}
},
"examples": [
{
"major": 3,
"minor": 2,
"patch": 0
}
]
},
"platform": {
"type": "string",
"enum": [
"Switch",
"AP"
]
},
"model": {
"type": "string",
"description": "Device model"
},
"hw-sku": {
"type": "string",
"description": "Stock keeping unit"
},
"compatible": {
"type": "string",
"description": "Compatibility string, that defines the family of the device"
},
"base-mac": {
"type": "string",
"description": "Switch MAC address",
"format": "uc-mac",
"examples": [
"aa:bb:cc:dd:ee:ff"
]
},
"port-list": {
"type": "array",
"description": "The list of physical network devices",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The logical name of the port that is used by the OS",
"examples": [
"Ethernet0",
"Ethernet1",
"Ethernet76"
]
},
"front-panel-number": {
"type": "integer",
"description": "The identification number of the port as can be seen on the front-panel of the device"
}
}
}
},
"port-capabilities": {
"type": "object",
"description": "Description of physical ports and their form-factors",
"properties": {
"form-factors": {
"type": "array",
"items": {
"type": "string",
"enum": [
"RJ45",
"SFP",
"SFP+",
"SFP28",
"SFP-DD",
"QSFP",
"QSFP+",
"QSFP28",
"QSFP-DD"
]
}
},
"ports-list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"examples": [
"RJ45"
]
},
"ports": {
"type": "array",
"items": {
"type": "string",
"examples": [
"Ethernet1"
]
}
}
}
}
}
}
},
"poe-capabilities": {
"type": "object",
"description": "Description of physical ports and their PoE capabilities",
"properties": {
"supported-standards": {
"type": "array",
"items": {
"type": "string",
"enum": [
".3AF-POE",
".3AT-POE+",
".3BT-PoE++",
"PreStandard-Passive"
]
}
},
"power-budget": {
"type": "integer",
"examples": [
2000
]
},
"poe-ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"examples": [
".3AF-POE"
]
},
"budget-capacity": {
"type": "integer"
},
"ports": {
"type": "array",
"items": {
"type": "string",
"examples": [
"Ethernet1"
]
}
}
}
}
}
}
},
"mclag-capabilities": {
"description": "Capabilities of the MC-LAG (Multi-Chassis Link Aggregation) feature in the switch",
"type": "object",
"properties": {
"max-mclag-groups": {
"description": "Defines the maximum number of MC-LAG groups that can be configured on the switch.",
"type": "integer"
},
"max-ports-per-mclag-group": {
"description": "Specifies the maximum number of physical ports that can be part of a single MC-LAG group.",
"type": "integer"
},
"max-vlans-per-mclag-group": {
"description": "Indicates the maximum number of VLANs that can be supported within a single MC-LAG group.",
"type": "integer"
},
"dual-active-detection": {
"description": "Describes the dual-active detection mechanism to prevent both switches from becoming active simultaneously.",
"type": "string",
"enum": [
"ICCP",
"Backup-Link",
"None"
]
},
"failover-time-milliseconds": {
"description": "Specifies the time (in milliseconds) required for traffic to fail over to the secondary switch when there is a failure in the primary switch.",
"type": "integer"
},
"vlan-synchronization": {
"description": "Indicates whether VLAN synchronization across MC-LAG peers is supported and the number of VLANs that can be synchronized.",
"type": "boolean"
},
"max-mac-entries-per-mclag": {
"description": "Maximum number of MAC address entries that can be synchronized across MC-LAG peers.",
"type": "integer"
}
}
},
"lldp-capabilities": {
"type": "object",
"description": "Description of LLDP capabilities across different switch models/vendors.",
"properties": {
"supported-tlvs": {
"type": "array",
"items": {
"type": "string",
"enum": [
"lldp-basic-tlv-mgmt-ip-v4",
"lldp-basic-tlv-mgmt-ip-v6",
"lldp-basic-tlv-port-descr",
"lldp-basic-tlv-sys-capab",
"lldp-basic-tlv-sys-descr",
"lldp-basic-tlv-sys-name",
"lldp-dot1-tlv-proto-ident",
"lldp-dot1-tlv-proto-vid",
"lldp-dot1-tlv-pvid",
"lldp-dot1-tlv-vlan-name",
"lldp-dot3-tlv-link-agg",
"lldp-dot3-tlv-mac-phy",
"lldp-dot3-tlv-max-frame",
"lldp-dot3-tlv-poe",
"lldp-med-location-civic-addr",
"lldp-med-tlv-ext-poe",
"lldp-med-tlv-inventory",
"lldp-med-tlv-location",
"lldp-med-tlv-med-cap",
"lldp-med-tlv-network-policy"
]
}
},
"max-neighbors": {
"type": "integer",
"description": "Maximum number of LLDP neighbors a switch can discover and maintain.",
"examples": [
64,
128,
256
]
}
}
},
"supported-features": {
"type": "array",
"description": "List of all features supported by the device",
"items": {
"type": "string",
"enum": [
"VLAN",
"VLAN-Voice",
"Jumbo-Frames",
"Link-Aggregation-LACP",
"Link-Aggregation-Static",
"Link-Aggregation-MCLAG",
"Port-Isolation",
"Spanning-Tree",
"Spanning-Tree-Rapid",
"Spanning-Tree-Per-VLAN",
"Spanning-Tree-Per-VLAN-Rapid",
"Spanning-Tree-MSTP",
"SVI-StaticIPv4",
"SVI-StaticIPv6",
"Interface-StaticIPv4",
"Interface-StaticIPv6",
"Routing-VRF",
"Routing-IPv4-Route-Blackhole",
"Routing-IPv4-Route-Unreachable",
"Routing-IPv4-Nexthop",
"Routing-IPv4-Broadcast",
"Routing-IPv4-Multicast-IGMP-Snooping",
"Routing-IPv4-Multicast-IGMP-Querier",
"Routing-IPv4-Multicast-IGMP-Static",
"Routing-IPv4-DHCP-Server",
"Routing-IPv4-DHCP-Relay",
"Routing-IPv4-DHCP-Snooping",
"Routing-IPv4-Port-Forward",
"Routing-IPv6-DHCP-Relay",
"Routing-IPv6-DHCP-Stateful",
"Routing-IPv6-DHCP-Stateless",
"Routing-IPv6-Port-Forward",
"Multicast-VLAN-Registration",
"PoE-Reset",
"Port-Access-Control",
"PAC-Dynamic-Auth",
"mac-address-bypass",
"System-PasswordChange",
"System-SwUpdate",
"System-SwUpdate-Partial",
"Port-Mirroring",
"MAC-ACL",
"IP-ACL",
"Guest-VLAN",
"Service-SSH",
"Service-RSSH",
"Service-Telnet",
"Service-LLDP",
"Service-HTTP",
"Service-HTTPS",
"Service-GPS",
"Service-IGMP",
"Service-NTP",
"Service-NTP-Client",
"Service-MDNS",
"Service-QoS",
"Service-Syslog",
"Service-PAC",
"Service-Wireguard-Overlay",
"Service-Radius-Proxy",
"Service-Online-Check",
"Service-CaptivePortal",
"Service-PublicIpCheck",
"Tunneling-VxLAN",
"Tunneling-GRE",
"Tunneling-GRE6",
"Tunneling-L2TP",
"Tunneling-Mesh"
]
}
}
},
"$defs": {}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -75,6 +75,19 @@
}
}
}
},
"mac-address-list": {
"$ref": "#/$defs/mac-address-list"
},
"static-trunks": {
"$ref": "#/$defs/static-trunks"
},
"lacp-trunks": {
"$ref": "#/$defs/lacp-trunks"
},
"uplink_interface": {
"type": "string",
"description": "Current interface that serves as the Uplink. Example Ethernet2."
}
},
"$defs": {
@@ -132,6 +145,82 @@
"items": {
"type": "number"
}
},
"poe": {
"description": "This section describes the current state of the PoE unit on the device",
"type": "object",
"properties": {
"max-power-budget": {
"description": "Reports the total power available (power budget) (in watts, W) device's Power sourcing equipment is able to source.",
"type": "number"
},
"power-threshold": {
"description": "Reports configured power alarm threshold value for the Power sourcing equipment (in milliwatts, mW).",
"type": "number"
},
"power-consumed": {
"description": "Reports a total power Powered Devices are draining from the device's Power sourcing equipment (in milliwatts, mW).",
"type": "number"
},
"power-status": {
"description": "Reports power status of the device's Power sourcing equipment.",
"type": "string",
"examples": [
"ON",
"OFF"
]
}
}
},
"ieee8021x": {
"description": "This section describes the global (device-wise) 802.1X (port access control) state and config applied.",
"type": "object",
"properties": {
"dynamic-authorization": {
"description": "Reported DAS-related state info.",
"type": "object",
"properties": {
"stats": {
"description": "Cumulative statistics for all configured DACs.",
"type": "object",
"properties": {
"coa_req_received": {
"description": "Number of CoA requests received.",
"type": "number"
},
"coa_ack_sent": {
"description": "Number of CoA ACK responses sent.",
"type": "number"
},
"coa_nak_sent": {
"description": "Number of CoA NAK responses sent.",
"type": "number"
},
"coa_ignored": {
"description": "Number of CoA requests ignored.",
"type": "number"
},
"coa_wrong_attr": {
"description": "Number of CoA requests received with invalid (unsupported) attributes.",
"type": "number"
},
"coa_wrong_attr_value": {
"description": "Number of CoA requests received with invalid (unsupported) attribute value.",
"type": "number"
},
"coa_wrong_session_context": {
"description": "Number of CoA requests received with inexisting session context.",
"type": "number"
},
"administratively_prohibited_req": {
"description": "Number of CoA requests that are sent if the NAS is configured to prohibit honoring of CoA-Request or Disconnect-Request packets for the specified session.",
"type": "number"
}
}
}
}
}
}
}
}
},
@@ -246,6 +335,10 @@
"description": "An IPv4 addreess."
}
},
"public_ip": {
"type": "string",
"description": "The public IP address of internet connection."
},
"leasetime": {
"type": "number",
"description": "This is the leasetime if the IPv4 address of this logical interface was acquired via DHCPv4."
@@ -278,10 +371,10 @@
},
"interface.ipv6-lease": {
"type": "array",
"description": null,
"description": "This section describes an IPv6 lease that we have served.",
"items": {
"type": "object",
"description": "This section describes an IPv6 lease that we have served.",
"description": "An object, that describes a single served IPv6 address.",
"properties": {
"addresses": {
"type": "array",
@@ -676,11 +769,203 @@
"counters": {
"$ref": "#/$defs/interface.counter"
},
"delta_counters": {
"$ref": "#/$defs/interface.counter"
},
"mesh-path": {
"$ref": "#/$defs/interface.mesh-path"
},
"ssids": {
"$ref": "#/$defs/interface.ssid"
},
"multicast": {
"type": "object",
"description": "Detailed information about all multicast-related data (groups joined, src address used etc)",
"properties": {
"igmp": {
"description": "Detailed information about IGMP configured / joined multicast groups, outgoing interfaces etc.",
"type": "object",
"properties": {
"enabled-groups": {
"description": "List of joined IGMP multicast groups.",
"type": "array",
"items": {
"type": "object",
"properties": {
"address": {
"description": "Address of single group this interface is member of.",
"type": "string",
"format": "ipv4",
"examples": [
"225.0.0.1"
]
},
"egress-ports": {
"description": "List of ports where multicast traffic of this group is being replicated to.",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
},
"mvr": {
"type": "object",
"description": "MVR statistics on interface",
"properties": {
"mvr-intf-fwd-status": {
"description": "Shows if MVR traffic is being forwarded or discarded.",
"type": "boolean"
},
"mvr-intf-igmp-count-reports": {
"description": "The number of IGMP membership reports received on this interface.",
"type": "integer"
},
"mvr-intf-igmp-count-leave": {
"description": "The number of leave messages received on this interface.",
"type": "integer"
},
"mvr-intf-igmp-count-gquery": {
"description": "The number of general query messages received on this interface.",
"type": "integer"
},
"mvr-intf-igmp-count-gssquery": {
"description": "The number of group specific or group-and-source specific query messages received on this interface.",
"type": "integer"
},
"mvr-intf-igmp-count-drop": {
"description": "The number of times a report, leave, or query was dropped.",
"type": "integer"
},
"mvr-intf-igmp-count-joinsucc": {
"description": "The number of times a multicast group was successfully joined.",
"type": "integer"
},
"mvr-intf-igmp-count-actgroups": {
"description": "The number of MVR groups active on this interface.",
"type": "integer"
}
}
},
"acl-stats": {
"description": "Represents the overall statistics for ACLs on the OLS device.",
"type": "object",
"properties": {
"acl-intf-stats": {
"description": "A list of ACL-related statistics, each corresponding to a specific interface or port.",
"type": "array",
"items": {
"type": "object",
"properties": {
"acl-intf-id": {
"description": "The identifier for the interface or port to which the ACL statistics apply.",
"type": "string"
},
"acl-type": {
"description": "Type of the access control list.",
"type": "string",
"enum": [
"none",
"ipv4",
"ipv6",
"ipv4Ext",
"ipv6Ext",
"mac",
"arp"
]
},
"acl-rule-action": {
"description": "Indicates the action (permit or deny) taken when an ACL rule is matched.",
"type": "string",
"enum": [
"permit",
"deny"
]
},
"acl-hit-count": {
"description": "The number of times an ACL rule has been matched by traffic.",
"type": "number"
},
"acl-rule-resource-util": {
"description": "Shows the percentage of this user-configured ACL rule as a percentage of total ACL rules.",
"type": "integer",
"minimum": 0,
"maximum": 100
}
}
}
}
}
},
"acl-resource-stats": {
"description": "Represents the overall resource utilization statistics for ACLs.",
"type": "object",
"properties": {
"acl-total-resource-util": {
"description": "Percentage of total ACL consumed resources amongst the resources available.",
"type": "integer",
"minimum": 0,
"maximum": 100
}
}
},
"dhcp-snoop-binding": {
"description": "State message entry to show the binding table for DHCP Snooping",
"type": "object",
"properties": {
"entries": {
"description": "List of DHCP Snooping binding entries",
"type": "array",
"items": {
"type": "object",
"properties": {
"dhcp-snoop-bind-mac-address": {
"description": "MAC address of the DHCP client in the DHCP Snooping binding table",
"type": "string",
"format": "uc-mac"
},
"dhcp-snoop-bind-ip-address": {
"description": "IP address assigned to the MAC address in the DHCP Snooping binding table",
"type": "string",
"format": "ipv4"
},
"dhcp-snoop-bind-lease-seconds": {
"description": "This indicates the lease time in seconds for the IP address assigned to the DHCP client, after which the IP address may be reassigned",
"type": "integer"
},
"dhcp-snoop-bind-type": {
"description": "Specifies the type of binding entry, such as dynamic or static, indicating how the IP address was assigned to the client",
"type": "string",
"enum": [
"dynamic",
"static"
]
},
"dhcp-snoop-bind-vlan": {
"description": "VLAN ID associated with the DHCP client\u2019s IP address, which helps in managing network segments",
"type": "integer",
"minimum": 1,
"maximum": 4094
},
"dhcp-snoop-bind-interf": {
"description": "Identifies the interface through which the DHCP client is connected, aiding in network topology management",
"type": "string",
"examples": [
"Ethernet1",
"Unit-1/Port-2",
"1-2",
"Trunk 1"
]
}
}
}
}
}
}
}
}
@@ -716,6 +1001,160 @@
"port": {
"type": "string",
"description": "The physical network port that we see this neighbour on."
},
"lldp-remote-port-info": {
"type": "object",
"description": "Provides information about the remote port, such as the interface name and its operational status on the neighboring device.",
"properties": {
"lldp-remote-port-id": {
"type": "string",
"description": "The identifier for the remote port connected to the local port, often displayed as a string or number representing the remote interface."
},
"lldp-remote-port-id-type": {
"type": "string",
"description": "Specifies the type of identifier used for the remote port, such as MAC address, interface name, or ifIndex.",
"enum": [
"MAC Address",
"Interface Name",
"ifIndex"
]
},
"lldp-remote-ttl": {
"type": "integer",
"description": "Shows the time-to-live (TTL) value for LLDP advertisements from the remote device. This is the duration (in seconds) the LLDP information remains valid before expiring.\""
},
"lldp-remote-port-descr": {
"type": "string",
"description": "Provides a textual description of the remote port, typically describing the interface or its purpose.",
"example": "Ethernet Port on unit 1, port 2"
},
"lldp-remote-port-max-mtu": {
"type": "string",
"description": "Displays the maximum transmission unit (MTU) size that the remote port supports, indicating the largest packet size the port can handle."
},
"lldp-remote-sys-descr": {
"type": "string",
"description": "A textual description of the remote system, including the device model, software version, or any user-configured description.",
"example": "ECS4150-28P"
},
"lldp-remote-sys-capab": {
"type": "array",
"description": "Indicates the system capabilities advertised by the remote device, such as whether it supports routing, switching, bridging, etc.",
"items": {
"type": "string"
},
"example": [
"Switch",
"Bridge",
"Routing"
]
},
"lldp-remote-enabled-capab": {
"type": "array",
"description": "Displays the capabilities that are actually enabled on the remote device, such as routing, switching, or bridging functionality.",
"items": {
"type": "string"
},
"example": [
"Switch",
"Bridge",
"Routing"
]
},
"lldp-remote-port-mgmt-address": {
"type": "string",
"description": "The management IP address of the remote device, used to access the device for administrative purposes.",
"example": "192.168.0.4"
},
"lldp-remote-port-vlan-id": {
"type": "integer",
"description": "Shows the VLAN ID associated with the remote port, which could indicate the native VLAN or the port's trunk configuration."
},
"lldp-remote-port-protocol-id": {
"type": "string",
"description": "Identifies any protocol-specific information (in HEX) advertised by the remote device, such as VLAN, Spanning Tree, or Link Aggregation protocol."
},
"lldp-remote-port-mac-phy-status": {
"type": "object",
"description": "Displays the physical layer status of the remote port.",
"properties": {
"lldp-remote-port-aneg-suport": {
"type": "boolean",
"description": "Indicates whether the remote port supports auto-negotiation of link parameters like speed and duplex settings."
},
"lldp-remote-port-aneg-enabled": {
"type": "boolean",
"description": "Shows whether auto-negotiation is enabled on the remote port."
},
"lldp-remote-port-aneg-advertised-cap": {
"type": "string",
"description": "Lists the capabilities (in HEX) the remote port is advertising during auto-negotiation, such as supported speeds and duplex modes."
},
"lldp-remote-port-mau-type": {
"type": "integer",
"description": "Displays the Media Access Unit (MAU) type, describing the port's physical characteristics (e.g., copper or fiber, 10/100/1000Base-T, etc.)."
}
}
},
"lldp-remote-port-power-info": {
"type": "object",
"description": "Provides detailed PoE information.",
"properties": {
"lldp-remote-port-power-class": {
"type": "string",
"description": "Indicates if the device is a PSE or a PD.",
"enum": [
"pse",
"pd"
]
},
"lldp-remote-port-power-mdi-support": {
"type": "boolean",
"description": "Indicates whether the remote device supports Media Dependent Interface (MDI) power supply, allowing power to be supplied through the Ethernet cable."
},
"lldp-remote-port-power-mdi-enabled": {
"type": "boolean",
"description": "Shows whether MDI power is currently enabled on the remote port."
},
"lldp-remote-port-power-pair-control": {
"type": "boolean",
"description": "Displays whether the remote device has control over which wire pairs in the Ethernet cable provide power (important for PoE)."
},
"lldp-remote-port-power-classification": {
"type": "string",
"description": "Displays the PoE class of the remote device, indicating its power consumption classification.",
"enum": [
"Class-1",
"Class-2",
"Class-3",
"Class-4",
"Class-5",
"Class-6",
"Class-7",
"Class-8"
]
}
}
},
"lldp-remote-port-lag-info": {
"type": "object",
"description": "Provides information about the remote port\u2019s involvement in Link Aggregation Groups (LAG), if applicable.",
"properties": {
"lldp-remote-port-lag-support": {
"type": "boolean",
"description": "Indicates whether the remote port supports Link Aggregation (static or LACP)."
},
"lldp-remote-port-lag-enabled": {
"type": "boolean",
"description": "Shows whether Link Aggregation is enabled on the remote port."
},
"lldp-remote-port-lag-port-id": {
"type": "integer",
"description": "Displays the identifier of the Link Aggregation Group (LAG) that the remote port belongs to."
}
}
}
}
}
}
}
@@ -767,6 +1206,306 @@
},
"counters": {
"$ref": "#/$defs/interface.counter"
},
"delta_counters": {
"$ref": "#/$defs/interface.counter"
},
"poe": {
"description": "This section describes the ethernet poe-port link-state object (statistics + PD info). Present only in case if port has any Power sourcing capabilities.",
"type": "object",
"properties": {
"class-requested": {
"description": "Reports which PoE power class PD requested.",
"type": "number"
},
"class-assigned": {
"description": "Reports which PoE power class PD has been assigned by the Power sourcing equipment.",
"type": "number"
},
"output-power": {
"description": "Reports the power-value (in milliwatts, mW) poe-port's Powered Device is currently draining.",
"type": "number"
},
"output-current": {
"description": "Reports the current value (in milliamps, mA) poe-port's Powered Device is currently draining.",
"type": "number"
},
"output-voltage": {
"description": "Reports the operational voltage-level-value of poe-port's Power sourcing equipment (in Volts, V).",
"type": "string",
"examples": [
"54.14"
]
},
"temp": {
"description": "Reports the operational temperature of poe-port's Power sourcing equipment (in Celsius, C).",
"type": "string",
"examples": [
"22.5"
]
},
"status": {
"description": "Reports the operational status of poe-port's Power sourcing equipment. Searching option - the poe-port's PSE is trying to detect a Powered Device. Delivering option - the poe-port's PSE is delivering power to a Powered Device. Disabled option - the poe-port's PSE is either disabled or PoE power is enabled but the PoE module does not have enough power available to supply the port's power needs. Fault option - the poe-port's PSE detects a problem with the Powered Device. Other Fault option - the PSE has detected an internal fault that prevents it from supplying power on that port.",
"type": "string",
"examples": [
"DELIVERING_POWER",
"DISABLED"
]
},
"fault-status": {
"description": "Reports the fault status of poe-port's PSE (in case if any).",
"type": "string",
"examples": [
"NO_ERROR"
]
},
"counters": {
"description": "PoE-related descriptive statistics (counters).",
"type": "object",
"properties": {
"overload": {
"description": "Displays the total number of power overload occurrences. (Powered Device is consuming more power than the maximum limit of a port)",
"type": "number"
},
"short": {
"description": "Displays the total number of power shortage occurrences.",
"type": "number"
},
"power-denied": {
"description": "Displays the number of times that the powered device was denied power. (possible cause could be that Requested power exceeds PSE capability)",
"type": "number"
},
"absent": {
"description": "Displays the number of times that the power was stopped to the powered device because the powered device was no longer detected.",
"type": "number"
},
"invalid-signature": {
"description": "Displays the times that an invalid signature was received. Signatures are the means by which the powered device identifies itself to the PSE. Signatures are generated during powered device detection, classification, or maintenance.",
"type": "number"
}
}
}
}
},
"ieee8021x": {
"description": "This section describes the per-port specific 802.1X (port access control) link-state object (authenticated clients). Present only in case if port has enabled EAP processing and has any authenticated clients.",
"type": "object",
"properties": {
"authenticated-clients": {
"description": "List of authenticated clients and (their) authentication data.",
"type": "array",
"items": {
"type": "object",
"properties": {
"authenticated-method": {
"description": "Authentication method used by client for it's authentication.",
"type": "string"
},
"mac-address": {
"description": "MAC address of authenticated client.",
"type": "string",
"format": "uc-mac"
},
"session-time": {
"description": "Client session time.",
"type": "integer"
},
"username": {
"description": "Client username.",
"type": "string"
},
"vlan-type": {
"description": "Vlan type of authenticated client (Authorization status of the client).",
"type": "string"
},
"vlan-id": {
"description": "Vlan type of authenticated client (Authorization status of the client).",
"type": "integer",
"maximum": 4095
}
}
}
}
}
},
"transceiver-info": {
"description": "Object holds information about underlying SFP module currently inserted into port's cage. Some of information is read directly from module's EEPROM, while other data is measured in runtime by device's hardware (vcc for example).",
"type": "object",
"properties": {
"vendor-name": {
"description": "Vendor (name) identifier",
"type": "string"
},
"form-factor": {
"description": "Form-factor of the module itself (For example - QSFP28, QSFP56-DD etc)",
"type": "string"
},
"supported-link-modes": {
"description": "Reports supported link modes of inserted module",
"type": "array",
"items": {
"type": "string"
}
},
"part-number": {
"description": "Module's part number (vendor's specific)",
"type": "string"
},
"serial-number": {
"description": "Serial number of connected module",
"type": "string"
},
"revision": {
"description": "Module's HW revision (same part number can have multiple revisions)",
"type": "string"
},
"temperature": {
"description": "Current module's temperature",
"type": "number"
},
"tx-optical-power": {
"description": "Current module's transmit optical level (power)",
"type": "number"
},
"rx-optical-power": {
"description": "Current module's receive optical level (power)",
"type": "number"
},
"max-module-power": {
"description": "Max power (in Watts) module can drain.",
"type": "number"
}
}
}
}
},
"mac-address-list": {
"type": "object",
"description": "This section describes the global (device-wise) mac-address-list (FDB table / wired clients).",
"properties": {
"overflow": {
"description": "Flag indicates that device could report an amount of FDB entries, which is bigger than what cloud had requested.",
"type": "boolean"
}
},
"additionalProperties": {
"type": "object",
"additionalProperties": {
"description": "VID (vlan id) identifier",
"type": "array",
"items": {
"type": "string"
}
}
},
"examples": [
{
"overflow": true,
"Ethernet1": {
"1": [
"AABBCCDDEEFF",
"112233445566"
]
},
"Ethernet2": {
"10": [
"11BBCCDDEEFF",
"332233445566"
]
}
}
]
},
"static-trunks": {
"type": "array",
"items": {
"type": "object",
"description": "List of statically created trunks.",
"properties": {
"trunk-identifier": {
"type": "integer",
"description": "Logical identifier for the trunk.",
"minimum": 1,
"maximum": 64
},
"member-ports": {
"type": "array",
"description": "List of member ports under this static trunk.",
"items": {
"type": "string"
}
}
}
}
},
"lacp-trunks": {
"type": "array",
"items": {
"type": "object",
"description": "List of dynamically created trunks.",
"properties": {
"trunk-identifier": {
"type": "integer",
"description": "Logical identifier for the trunk.",
"minimum": 1,
"maximum": 64
},
"member-port": {
"type": "string",
"description": "List of member ports under this trunk."
},
"system-priority": {
"type": "number",
"description": "LACP System priority."
},
"port-priority": {
"type": "number",
"description": "LACP port priority."
},
"port-state": {
"type": "string",
"description": "Port state."
},
"lacpdu-sent": {
"type": "number",
"description": "Number of LACP Data Units (PDUs) sent."
},
"lacpdu-recv": {
"type": "number",
"description": "Number of LACP Data Units (PDUs) received."
},
"markerpdu-sent": {
"type": "number",
"description": "Number of Marker PDUs sent."
},
"markerpdu-recv": {
"type": "number",
"description": "Number of Marker PDUs received."
},
"unknownpkt-recv": {
"type": "number",
"description": "Number of unknown packets received."
},
"illegalpkt-recv": {
"type": "number",
"description": "Number of illegal packets received."
},
"port-oper-key": {
"type": "number",
"description": "Operational key for the port."
},
"partner-oper-key": {
"type": "number",
"description": "Operational key for the partner."
},
"oper-state": {
"type": "string",
"description": "Operational state."
},
"partner-oper-state": {
"type": "string",
"description": "Operational state of the partner."
}
}
}
}