OLS uCentral Schema: initial commit

Signed-off-by: Paul White <paul@shasta.cloud>
This commit is contained in:
Paul White
2023-10-05 19:04:49 -07:00
parent 2e2993d2c4
commit 8620ed8a75
9 changed files with 750 additions and 23 deletions

View File

@@ -29,6 +29,8 @@ properties:
- 2500
- 5000
- 10000
- 25000
- 100000
duplex:
description:
The duplex mode that shall be forced.
@@ -49,3 +51,111 @@ properties:
type: string
examples:
- quality-of-service
poe:
description:
This section describes the ethernet poe-port configuration object.
type: object
properties:
admin-mode:
description:
Option to force admin state over selected port.
Setting to <false> immediately shuts down power.
Setting to <true> starts PoE hanshake
(Power sourcing equipment < - > Powered Device) sequence and
in case of success, power is being delivered to Powered Device.
type: boolean
default: false
do-reset:
description:
Option to force device's PSE (Power sourcing equipment)
to invoke a PoE port reset sequence.
This option can be used to reset PoE port without flickering
it via <admin-mode> down/up sequence.
type: boolean
detection:
description:
The detection mode is used to set the type of devices that are allowed for powering up.
The PoE controller can be configured to detect only IEEE standard devices
or pre-IEEE legacy devices (which were pre-standard - non-IEEE 802.3af compliant).
For example, if "dot3af" is used (PoE, max up to 15.4 W), and Powered Device drains >15.4W,
Power sourcing equipment won't allow this port to drain power.
type: string
examples:
- "2pt-dot3af"
- "2pt-dot3af+legacy"
- "4pt-dot3af"
- "4pt-dot3af+legacy"
- "dot3bt"
- "dot3bt+legacy"
- "legacy"
default: dot3bt
power-limit:
description:
Option to configure user defined absolute power limit PoE port can dain (in milliwatts, mW).
type: number
default: 99900
priority:
description:
Option to set priority to each PoE port. When the PoE switch has less power available
and more ports are required to supply power, higher priority ports are receive power
in preference to lower priority ports.
type: string
default: low
examples:
- "critical"
- "high"
- "medium"
- "low"
ieee8021x:
description:
This section describes the per-port specific 802.1X (port access control) configuration.
type: object
properties:
is-authenticator:
description:
Configure PAE processing on port, as well as select this port as an Authenticator (configure PAC role to authenticator).
False configures the switch to not process PAC
type: boolean
default: false
authentication-mode:
description:
Configure PAE processing on port, as well as select this port as an Authenticator (configure PAC role to authenticator).
force-authorized - Disables IEEE 802.1X authentication and causes the port to change to the authorized state without any authentication exchange required.
The port sends and receives normal traffic without IEEE 802.1X-based authentication of the client.
force-unauthorized - Causes the port to remain in the unauthorized state, ignoring all attempts by the supplicant to authenticate.
The Device cannot provide authentication services to the supplicant through the port.
auto - Enables IEEE 802.1X authentication and causes the port to begin in the unauthorized state, allowing only EAPOL frames to be sent and received through the port.
The authentication process begins when the link state of the port changes from down to up or when an EAPOL-start frame is received. The Device requests the identity of the
supplicant and begins relaying authentication messages between the supplicant and the authentication server.
Each supplicant attempting to access the network is uniquely identified by the Device by using the supplicant MAC address.
type: string
enum:
- force-authorized
- force-unauthorized
- 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.
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:
- multi-auth
- multi-domain
- multi-host
- single-host
default: multi-auth
guest-vlan:
description:
Configure a VLAN as a guest VLAN on an interface if the switch receives no response in an authentication event.
type: integer
minimum: 1
maximum: 4094
unauthenticated-vlan:
description:
Configure the unauthenticated VLAN to use when the AAA server fails to recognize the client credentials
type: integer
minimum: 1
maximum: 4094

View File

@@ -23,3 +23,39 @@ properties:
anyOf:
- $ref: 'https://ucentral.io/schema/v1/globals/wireless-multimedia/table/'
- $ref: 'https://ucentral.io/schema/v1/globals/wireless-multimedia/profile/'
ipv4-blackhole:
description:
Define a list of non-interface specific BLACKHOLE (to-nowhere) routes.
type: array
items:
type: object
properties:
prefix:
description:
Defines a BLACKHOLE route's prefix.
type: string
format: uc-cidr4
examples:
- 192.168.1.0/24
vrf:
description:
VRF id.
type: number
ipv4-unreachable:
description:
Define a list of non-interface specific UNREACHABLE routes.
type: array
items:
type: object
properties:
prefix:
description:
Defines a UNREACHABLE route's prefix.
type: string
format: uc-cidr4
examples:
- 192.168.1.0/24
vrf:
description:
VRF id.
type: number

View File

@@ -15,20 +15,69 @@ properties:
- static
subnet:
description:
This option defines the static IPv4 of the logical interface in CIDR notation.
auto/24 can be used, causing the configuration layer to automatically use
and address range from globals.ipv4-network.
type: string
format: uc-cidr4
examples:
- auto/24
This option defines a list of CONNECTED routes (with VRF id) in CIDR notation.
type: array
items:
type: object
properties:
prefix:
description:
Defines a CONNECTED route's prefix (network).
type: string
format: uc-cidr4
examples:
- 192.168.1.0/24
vrf:
description:
VRF id.
type: number
gateway:
description:
This option defines the static IPv4 gateway of the logical interface.
type: string
format: ipv4
examples:
- 192.168.1.1
type: array
items:
type: object
properties:
prefix:
description:
Defines a NEXTHOP route's prefix (network).
type: string
format: uc-cidr4
examples:
- 192.168.1.0/24
nexthop:
description:
Gateway (nexthop) address.
type: string
format: ipv4
examples:
- 192.168.1.1
vrf:
description:
VRF id.
type: number
metric:
description:
Optional metric value (define a NH route's weight / metric).
type: number
broadcast:
description:
This option defines a list of BROADCAST routes (with VRF id) in CIDR notation.
type: array
items:
type: object
properties:
prefix:
description:
Defines a BROADCAST route's prefix (network).
type: string
format: uc-cidr4
examples:
- 192.168.1.0/24
vrf:
description:
VRF id.
type: number
send-hostname:
description:
include the devices hostname inside DHCP requests

View File

@@ -17,3 +17,8 @@ properties:
- 802.1ad
- 802.1q
default: 802.1q
stp-instance:
decription:
MSTP instance identifier of the vlan.
This field does nothing if MSTP is not enabled.
type: integer

View File

@@ -27,7 +27,12 @@ properties:
Define which protocol shall be used for loop detection.
type: string
enum:
- none
- stp
- rstp
- mstp
- pvstp
- rpvstp
default: rstp
roles:
description:
@@ -38,3 +43,89 @@ 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
ieee8021x:
description:
This section describes the global 802.1X (port access control) configuration.
type: object
properties:
auth-control-enable:
description:
Enabled processing of PAE frames on ports that have .1X configured.
type: boolean
default: false
radius:
description:
Define a list of RADIUS server to forward auth requests to.
type: array
items:
type: object
properties:
server-host:
description:
Remote radius server address (IP or hostname).
type: string
examples:
- 192.168.1.1
- somehost.com
server-authentication-port:
description:
The port that the RADIUS authentication agent is running on.
type: integer
maximum: 65535
minimum: 1
server-key:
description:
Secret key text that is shared between a RADIUS server and the switch.
type: string
examples:
- somepassword
server-priority:
description:
The server's priority (used when multiple servers are present. Bigger prio value = higher priority).
type: integer
maximum: 64
minimum: 1

View File

@@ -54,4 +54,31 @@ properties:
description:
A provider specific ID for the network/venue that the device is part of.
type: integer
poe:
description:
This section describes the system-wide (unit) PoE controller configuration object.
type: object
properties:
power-management:
description:
This configuration mode controls the power management algorithm used by the Power sourcing equipment to deliver
power to the requesting PDs.
"class" option - Class-based power management.
"dynamic" option - Power management is done by the POE controller and the maximum power for a
port is not reserved for each port.
"static" option - The power deducted from the total power pool is the maximum power for that port.
This mode ensures that the maximum power specified by you for the interface is always reserved and
cannot be shared by other PDs.
type: string
examples:
- "class"
- "dynamic"
- "dynamic-priority"
- "static"
- "static-priority"
usage-threshold:
description:
Configure a power alarm threshold for the Power sourcing equipment (in percentages %).
type: number
default: 90

View File

@@ -19,3 +19,124 @@ properties:
- half
counters:
$ref: "https://ucentral.io/state/v1/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:
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

View File

@@ -50,4 +50,28 @@ properties:
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"

View File

@@ -97,6 +97,25 @@
"type": "integer"
}
}
},
"poe": {
"type": "object",
"properties": {
"power-management": {
"type": "string",
"examples": [
"class",
"dynamic",
"dynamic-priority",
"static",
"static-priority"
]
},
"usage-threshold": {
"type": "number",
"default": 90
}
}
}
}
},
@@ -202,6 +221,42 @@
"$ref": "#/$defs/globals.wireless-multimedia.profile"
}
]
},
"ipv4-blackhole": {
"type": "array",
"items": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"format": "uc-cidr4",
"examples": [
"192.168.1.0/24"
]
},
"vrf": {
"type": "number"
}
}
}
},
"ipv4-unreachable": {
"type": "array",
"items": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"format": "uc-cidr4",
"examples": [
"192.168.1.0/24"
]
},
"vrf": {
"type": "number"
}
}
}
}
}
},
@@ -291,7 +346,9 @@
1000,
2500,
5000,
10000
10000,
25000,
100000
]
},
"duplex": {
@@ -313,6 +370,83 @@
"quality-of-service"
]
}
},
"poe": {
"type": "object",
"properties": {
"admin-mode": {
"type": "boolean",
"default": false
},
"do-reset": {
"type": "boolean"
},
"detection": {
"type": "string",
"examples": [
"2pt-dot3af",
"2pt-dot3af+legacy",
"4pt-dot3af",
"4pt-dot3af+legacy",
"dot3bt",
"dot3bt+legacy",
"legacy"
],
"default": "dot3bt"
},
"power-limit": {
"type": "number",
"default": 99900
},
"priority": {
"type": "string",
"default": "low",
"examples": [
"critical",
"high",
"medium",
"low"
]
}
}
},
"ieee8021x": {
"type": "object",
"properties": {
"is-authenticator": {
"type": "boolean",
"default": false
},
"authentication-mode": {
"type": "string",
"enum": [
"force-authorized",
"force-unauthorized",
"auto"
],
"default": "force-authorized"
},
"host-mode": {
"type": "string",
"enum": [
"multi-auth",
"multi-domain",
"multi-host",
"single-host"
],
"default": "multi-auth"
},
"guest-vlan": {
"type": "integer",
"minimum": 1,
"maximum": 4094
},
"unauthenticated-vlan": {
"type": "integer",
"minimum": 1,
"maximum": 4094
}
}
}
}
},
@@ -339,7 +473,12 @@
"protocol": {
"type": "string",
"enum": [
"rstp"
"none",
"stp",
"rstp",
"mstp",
"pvstp",
"rpvstp"
],
"default": "rstp"
},
@@ -353,6 +492,77 @@
]
}
}
},
"instances": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"enabled": {
"type": "boolean",
"default": true
},
"priority": {
"type": "integer",
"default": 32768
},
"forward_delay": {
"type": "integer",
"default": 15
},
"hellow_time": {
"type": "integer",
"default": 2
},
"max_age": {
"type": "integer",
"default": 20
}
}
}
}
},
"ieee8021x": {
"type": "object",
"properties": {
"auth-control-enable": {
"type": "boolean",
"default": false
},
"radius": {
"type": "array",
"items": {
"type": "object",
"properties": {
"server-host": {
"type": "string",
"examples": [
"192.168.1.1",
"somehost.com"
]
},
"server-authentication-port": {
"type": "integer",
"maximum": 65535,
"minimum": 1
},
"server-key": {
"type": "string",
"examples": [
"somepassword"
]
},
"server-priority": {
"type": "integer",
"maximum": 64,
"minimum": 1
}
}
}
}
}
}
}
@@ -575,6 +785,10 @@
"802.1q"
],
"default": "802.1q"
},
"stp-instance": {
"decription": "MSTP instance identifier of the vlan. This field does nothing if MSTP is not enabled.",
"type": "integer"
}
}
},
@@ -755,18 +969,68 @@
]
},
"subnet": {
"type": "string",
"format": "uc-cidr4",
"examples": [
"auto/24"
]
"type": "array",
"items": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"format": "uc-cidr4",
"examples": [
"192.168.1.0/24"
]
},
"vrf": {
"type": "number"
}
}
}
},
"gateway": {
"type": "string",
"format": "ipv4",
"examples": [
"192.168.1.1"
]
"type": "array",
"items": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"format": "uc-cidr4",
"examples": [
"192.168.1.0/24"
]
},
"nexthop": {
"type": "string",
"format": "ipv4",
"examples": [
"192.168.1.1"
]
},
"vrf": {
"type": "number"
},
"metric": {
"type": "number"
}
}
}
},
"broadcast": {
"type": "array",
"items": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"format": "uc-cidr4",
"examples": [
"192.168.1.0/24"
]
},
"vrf": {
"type": "number"
}
}
}
},
"send-hostname": {
"type": "boolean",