Files
ols-ucentral-schema/ucentral.state.pretty.json
2025-09-03 23:05:31 +05:30

1514 lines
75 KiB
JSON

{
"$id": "https://openwrt.org/ucentral.state.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "OpenWrt uCentral state schema",
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"uuid": {
"description": "The unique ID of the configuration. This is the unix timestamp of when the config was created.",
"type": "integer"
},
"serial": {
"description": "The unique serial number of the device.",
"type": "string"
},
"unit": {
"$ref": "#/$defs/unit"
},
"gps": {
"$ref": "#/$defs/gps"
},
"interfaces": {
"$ref": "#/$defs/interface"
},
"lldp-peers": {
"type": "object",
"properties": {
"upstream": {
"type": "object",
"patternProperties": {
"^(eth|lan|wan)[0-9]*$": {
"$ref": "#/$defs/lldp-peers"
}
}
},
"downstream": {
"type": "object",
"patternProperties": {
"^(eth|lan|wan)[0-9]*$": {
"$ref": "#/$defs/lldp-peers"
}
}
}
}
},
"dynamic_vlans": {
"type": "array",
"items": {
"$ref": "#/$defs/dynamic-vlan"
}
},
"link-state": {
"type": "object",
"properties": {
"upstream": {
"type": "object",
"patternProperties": {
"^(eth|lan|wan)[0-9]*$": {
"$ref": "#/$defs/link-state"
}
}
},
"downstream": {
"type": "object",
"patternProperties": {
"^(eth|lan|wan)[0-9]*$": {
"$ref": "#/$defs/link-state"
}
}
}
}
},
"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."
},
"arp-inspect-stats": {
"type": "object",
"description": "Statistics related to ARP Inspection activity in the switch.",
"properties": {
"arp-pkt-rcvd": {
"type": "integer",
"description": "Total number of ARP packets received."
},
"arp-pkt-dropped-rate-limit": {
"type": "integer",
"description": "Number of ARP packets dropped due to rate limiting."
},
"arp-pkt-processed": {
"type": "integer",
"description": "Total number of ARP packets processed by ARP Inspection."
},
"arp-pkt-dropped-src-mac": {
"type": "integer",
"description": "Number of ARP packets dropped due to source MAC address validation failures."
},
"arp-pkt-dropped-dst-mac": {
"type": "integer",
"description": "Number of ARP packets dropped due to destination MAC address validation failures."
},
"arp-pkt-dropped-ip": {
"type": "integer",
"description": "Number of ARP packets dropped due to IP address validation failures.\""
},
"arp-pkt-dropped-acl": {
"type": "integer",
"description": "Number of ARP packets dropped due to ARP ACL rules."
},
"arp-pkt-dropped-dhcp": {
"type": "integer",
"description": "Number of ARP packets dropped due to DHCP snooping validation failures."
}
}
},
"ip-source-guard": {
"type": "object",
"description": "Represents the configuration and state of IP Source Guard.",
"properties": {
"blocked-entries": {
"type": "array",
"description": "Displays a list of entries that are currently blocked by IP Source Guard (IPSG).",
"items": {
"type": "object",
"properties": {
"blocked-mac": {
"type": "string",
"description": "The MAC address that has been blocked by IP Source Guard.",
"format": "mac-address"
},
"blocked-ip": {
"type": "string",
"description": "The IP address that has been blocked by IP Source Guard.",
"format": "ipv4"
},
"blocked-vlan": {
"type": "integer",
"description": "The VLAN ID associated with the blocked IP/MAC entry.",
"minimum": 1,
"maximum": 4095
},
"blocked-interface": {
"type": "string",
"description": "The interface (e.g., port) where the blocked entry was detected."
}
}
}
}
}
},
"stp": {
"description": "Global status and configuration of the Spanning Tree Protocol (STP) across the switch. Supports variants like STP, RSTP, MSTP. Includes bridge-wide parameters and protocol behavior.",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether STP is enabled globally on the switch."
},
"mode": {
"type": "string",
"description": "Operational STP mode used across the switch.",
"enum": [
"stp",
"rstp",
"mstp",
"pvst",
"rpvstp"
]
},
"transmission-limit": {
"type": "integer",
"description": "Maximum number of BPDUs that can be transmitted per hello time."
},
"path-cost-method": {
"type": "string",
"description": "Indicates whether \"Short\" or \"Long\" path cost method is in use.",
"enum": [
"short",
"long"
]
},
"max-hops": {
"type": "integer",
"description": "Maximum hop count used in MSTP."
},
"instances": {
"type": "array",
"description": "List of STP instances (e.g., MSTP instances).",
"items": {
"type": "object",
"properties": {
"instance-id": {
"type": "integer",
"description": "Instance number (for MSTP or multiple-instance support)."
}
},
"vlans": {
"type": "string",
"description": "VLAN ranges associated with the STP instance.",
"example": "1-4094"
},
"bridge-priority": {
"type": "integer",
"description": "Bridge priority value for STP election."
},
"bridge-hello-time": {
"type": "integer",
"description": "Hello Time interval (in seconds) configured on the bridge."
},
"bridge-max-age": {
"type": "integer",
"description": "Max Age value (in seconds) used for aging STP information."
},
"bridge-forward-delay": {
"type": "integer",
"description": "Delay (in seconds) before transitioning port to forwarding state."
},
"remaining-hops": {
"type": "integer",
"description": "Remaining hop count from the Root Bridge to this bridge."
},
"root-bridge-id": {
"type": "string",
"description": "Bridge ID of the current Root Bridge."
},
"root-port": {
"type": "string",
"description": "Local interface acting as Root Port.",
"example": [
"\u00cbthernet1"
]
},
"root-cost": {
"type": "integer",
"description": "Cumulative cost to reach the Root Bridge."
},
"topology-changes": {
"type": "integer",
"description": "Total number of topology changes detected."
},
"last-topology-change-seconds": {
"type": "integer",
"description": "Time (in seconds) since the last topology change."
}
}
}
}
}
},
"$defs": {
"unit": {
"type": "object",
"description": "This section describes the current state of the OS running on the device.",
"properties": {
"load": {
"type": "array",
"description": "This array hold 3 values describing the average system load for the last 1, 5 and 15 minutes.",
"items": {
"type": "number"
}
},
"cpu_load": {
"type": "array",
"description": "This array hold the total and per core load in percentage.",
"items": {
"type": "number"
}
},
"localtime": {
"type": "number",
"description": "This property contains the current unix time of the device."
},
"memory": {
"type": "object",
"description": "This section describes the current memory uasge of the device.",
"properties": {
"free": {
"type": "number",
"description": "The amount of free memory."
},
"total": {
"type": "number",
"description": "The total amount of memory."
},
"cached": {
"type": "number",
"description": "The total amount of cached memory."
},
"buffered": {
"type": "number",
"description": "The total amount of buffered memory."
}
}
},
"uptime": {
"type": "number",
"description": "The number of seconds since the unit last booted."
},
"temperature": {
"description": "The average and maximum thermal reading from the CPU.",
"type": "array",
"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"
}
}
}
}
}
}
}
}
},
"gps": {
"type": "object",
"description": "This section describes the GPS location of the device.",
"properties": {
"latitude": {
"type": "number",
"description": "The latitude in WGS84."
},
"longitude": {
"type": "number",
"description": "The longitude in WGS84."
},
"elevation": {
"type": "number",
"description": "The elevation above sea level in meters."
}
}
},
"interface.ipv4-lease": {
"type": "array",
"items": {
"type": "object",
"description": "This section describes an IPv4 lease that we have served",
"properties": {
"address": {
"type": "string",
"description": "The IPv4 that has been assigned to the networking client."
},
"assigned": {
"type": "string",
"description": "The unix time stamp when this lease was assigned."
},
"hostname": {
"type": "string",
"description": "The hostname that the client included in his request."
},
"mac": {
"type": "string",
"description": "The MAC address of the client that this lease was assigned to."
}
}
}
},
"interface.ipv4": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"description": "The list of IPv4 addresses being used by this logical interface.",
"items": {
"type": "string",
"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."
},
"dhcp_server": {
"type": "string",
"description": "The IPv4 address of the DHCPv4 server that assigned the active lease."
},
"leases": {
"$ref": "#/$defs/interface.ipv4-lease"
}
}
},
"interface.ipv6-address": {
"type": "array",
"items": {
"type": "object",
"description": "An IPv6 address assigned to this logical interface.",
"properties": {
"address": {
"type": "string",
"description": "The actual IPv6 address/mask"
},
"valid": {
"type": "number",
"description": "How much longer this delegation is valid for."
}
}
}
},
"interface.ipv6-lease": {
"type": "array",
"description": "This section describes an IPv6 lease that we have served.",
"items": {
"type": "object",
"description": "An object, that describes a single served IPv6 address.",
"properties": {
"addresses": {
"type": "array",
"description": "A list of all IPv6 addresses that were assigned to this host.",
"items": {
"type": "string"
}
},
"hostname": {
"type": "string",
"description": "The hostname that the client sent in its solicit message."
}
}
}
},
"interface.clients": {
"type": "array",
"items": {
"type": "object",
"description": "This section describes a network neighbour.",
"properties": {
"mac": {
"type": "string",
"description": "The MAC address of the neighbour."
},
"ipv4_addresses": {
"type": "array",
"description": "The IPv4 addresses that the neighbour is known to use.",
"items": {
"type": "string"
}
},
"ipv6_addresses": {
"type": "array",
"description": "The IPv4 addresses that the neighbour is known to use.",
"items": {
"type": "string"
}
},
"ports": {
"type": "array",
"description": "The physical network devices that that the neighbour has been seen on.",
"items": {
"type": "string"
}
},
"last_seen": {
"type": "number",
"description": "How long along was traffic from this neighbour last seen."
}
}
}
},
"interface.counter": {
"type": "object",
"description": "This section contains the traffic counters of the logical interface.",
"properties": {
"collisions": {
"type": "number"
},
"multicast": {
"type": "number"
},
"rx_bytes": {
"type": "number",
"description": "The number of bytes received."
},
"rx_packets": {
"type": "number",
"description": "The number of packets received."
},
"rx_error": {
"type": "number",
"description": "The number of receive errors."
},
"rx_dropped": {
"type": "number",
"description": "The number of received packets that were dropped."
},
"tx_bytes": {
"type": "number",
"description": "The number of bytes transmitted."
},
"tx_packets": {
"type": "number",
"description": "The number of packets transmitted."
},
"tx_error": {
"type": "number",
"description": "The number of transmit errors."
},
"tx_dropped": {
"type": "number",
"description": "The number of transmitted packets that were dropped."
}
}
},
"interface.mesh-path": {
"type": "object",
"description": "This section contains info about connected mesh nodes.",
"properties": {
"destiination": {
"type": "string"
},
"next_hop": {
"type": "string"
},
"metric": {
"type": "number"
},
"expire": {
"type": "number"
},
"hop_count": {
"type": "number"
}
}
},
"interface": {
"type": "array",
"description": "An array containing the runtime state of all logical interfaces.items",
"items": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The json-schema path within the configuration where this logical interface is located."
},
"uptime": {
"type": "number",
"description": "The number of seconds since the interface was brought up."
},
"name": {
"type": "string",
"description": "The administrative name of this logical interface. This field is freetext"
},
"vlan_id": {
"description": "VLAN-ID of the logical interface",
"type": "integer",
"maximum": 4094
},
"ntp_server": {
"type": "string",
"description": "The upstream NTP server being used by this interface."
},
"dns_servers": {
"type": "array",
"description": "The list of remote DNS servers that this logical interface uses for domain name resolution.",
"items": {
"type": "string"
}
},
"ipv4": {
"$ref": "#/$defs/interface.ipv4"
},
"ipv6_addresses": {
"$ref": "#/$defs/interface.ipv6-address"
},
"ipv6_leases": {
"$ref": "#/$defs/interface.ipv6-lease"
},
"clients": {
"$ref": "#/$defs/interface.clients"
},
"counters": {
"$ref": "#/$defs/interface.counter"
},
"delta_counters": {
"$ref": "#/$defs/interface.counter"
},
"mesh-path": {
"$ref": "#/$defs/interface.mesh-path"
},
"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"
]
}
}
}
}
}
}
}
}
},
"lldp-peers": {
"type": "array",
"items": {
"type": "object",
"description": "A list of all LLDP peers that this logical interface is connected to.",
"properties": {
"capability": {
"type": "array",
"description": "The device capabilities that our neighbour is announcing.",
"items": {
"type": "string"
}
},
"description": {
"type": "string",
"description": "The chassis description that our neighbour is announcing."
},
"mac": {
"type": "string",
"description": "The chassis ID/MAC that our neighbour is announcing."
},
"management_ips": {
"type": "array",
"description": "The management IPs that our neighbour is announcing.",
"items": {
"type": "string"
}
},
"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."
}
}
}
}
}
}
}
},
"dynamic-vlan": {
"type": "object",
"description": "This section contains the traffic counters of the logical interface.",
"properties": {
"vid": {
"type": "number"
},
"rx_bytes": {
"type": "number",
"description": "The number of bytes received."
},
"rx_packets": {
"type": "number",
"description": "The number of packets received."
},
"tx_bytes": {
"type": "number",
"description": "The number of bytes transmitted."
},
"tx_packets": {
"type": "number",
"description": "The number of packets transmitted."
}
}
},
"link-state": {
"type": "object",
"description": "A list of all LLDP peers that this logical interface is connected to.",
"properties": {
"carrier": {
"type": "boolean",
"description": "The physical interfaces carrier state."
},
"speed": {
"type": "number",
"description": "The speed of the physical link."
},
"duplex": {
"type": "string",
"description": "The physical links duplex mode.",
"enum": [
"full",
"half"
]
},
"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"
}
}
},
"loop-detect-protocol": {
"description": "Status and protocol information for loop detection or prevention mechanisms active on this interface. Includes STP/xSTP/MSTP, Loopback Detection (LBD), etc.",
"type": "object",
"properties": {
"stp": {
"description": "Spanning Tree Protocol (IEEE 802.1D/RSTP/MSTP) state on the port.",
"type": "object",
"properties": {
"protocol": {
"type": "string",
"description": "Variant of STP running (e.g., STP, RSTP, MSTP, RPVST+).",
"examples": [
"RSTP",
"MSTP"
]
},
"state": {
"type": "string",
"description": "STP state of the port.",
"enum": [
"disabled",
"blocking",
"listening",
"learning",
"forwarding"
]
},
"role": {
"type": "string",
"description": "Role of the port in STP topology.",
"enum": [
"root",
"designated",
"alternate",
"backup",
"disabled"
]
},
"bridge-id": {
"type": "string",
"description": "STP Bridge ID"
},
"root-bridge-id": {
"type": "string",
"description": "STP Root Bridge ID for the instance."
},
"oper-edge-port": {
"type": "boolean",
"description": "Whether the port is operating as an edge port (no BPDU expected)."
},
"cost": {
"type": "integer",
"description": "Operational path cost of the port."
},
"designated-cost": {
"type": "integer",
"description": "Cost advertised by the designated port."
},
"transitions": {
"type": "integer",
"description": "Number of STP state transitions (forwarding/discarding) on this port."
},
"bpdu-guard": {
"type": "string",
"description": "Runtime status of BPDU Guard on the port, when it detects any issue. - `errdisabled`- Port is shutdown due to BPDU violation. - `recovering`- Temporarily disabled and in auto-recovery interval.",
"enum": [
"errdisabled",
"recovering"
]
}
}
},
"lbd": {
"description": "Loopback Detection (LBD) status on this port.",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether LBD is enabled on this port."
},
"state": {
"type": "string",
"description": "Current loop detection status.",
"enum": [
"no_loop",
"loop_detected",
"disabled"
]
},
"action": {
"type": "string",
"description": "Action taken when loop is detected (e.g., block, shutdown).",
"enum": [
"none",
"block",
"shutdown"
]
}
}
}
}
},
"storm-status": {
"description": "Runtime status of Storm Control feature on the port for each storm type.",
"type": "object",
"properties": {
"broadcast": {
"type": "boolean",
"description": "Runtime status of Broadcast Storm Control on the port. Return `true`if Storm condition is detected."
},
"multicast": {
"type": "boolean",
"description": "Runtime status of Multicast Storm Control on the port. Return `true`if Storm condition is detected."
},
"unknown-unicast": {
"type": "boolean",
"description": "Runtime status of Unknown Unicast Storm Control on the port. Return `true`if Storm condition is detected."
}
}
}
}
},
"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."
}
}
}
}
}
}