mirror of
https://github.com/Telecominfraproject/ols-ucentral-schema.git
synced 2025-10-29 01:02:20 +00:00
3355 lines
123 KiB
JSON
3355 lines
123 KiB
JSON
{
|
|
"$id": "https://openwrt.org/ucentral.schema.json",
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"properties": {
|
|
"strict": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"uuid": {
|
|
"type": "integer"
|
|
},
|
|
"public_ip_lookup": {
|
|
"type": "string",
|
|
"format": "uc-fqdn"
|
|
},
|
|
"unit": {
|
|
"$ref": "#/$defs/unit"
|
|
},
|
|
"globals": {
|
|
"$ref": "#/$defs/globals"
|
|
},
|
|
"ethernet": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/ethernet"
|
|
}
|
|
},
|
|
"switch": {
|
|
"$ref": "#/$defs/switch"
|
|
},
|
|
"interfaces": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/interface"
|
|
}
|
|
},
|
|
"services": {
|
|
"$ref": "#/$defs/service"
|
|
},
|
|
"metrics": {
|
|
"$ref": "#/$defs/metrics"
|
|
},
|
|
"config-raw": {
|
|
"$ref": "#/$defs/config-raw"
|
|
},
|
|
"third-party": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"$defs": {
|
|
"unit": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"hostname": {
|
|
"type": "string",
|
|
"format": "hostname"
|
|
},
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"timezone": {
|
|
"type": "string",
|
|
"examples": [
|
|
"UTC",
|
|
"EST5",
|
|
"CET-1CEST,M3.5.0,M10.5.0/3"
|
|
]
|
|
},
|
|
"leds-active": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"random-password": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"system-password": {
|
|
"type": "string"
|
|
},
|
|
"beacon-advertisement": {
|
|
"type": "object",
|
|
"properties": {
|
|
"device-name": {
|
|
"type": "boolean"
|
|
},
|
|
"device-serial": {
|
|
"type": "boolean"
|
|
},
|
|
"network-id": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"poe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"power-management": {
|
|
"type": "string",
|
|
"examples": [
|
|
"class",
|
|
"dynamic",
|
|
"dynamic-priority",
|
|
"static",
|
|
"static-priority"
|
|
]
|
|
},
|
|
"usage-threshold": {
|
|
"type": "number",
|
|
"default": 90
|
|
}
|
|
}
|
|
},
|
|
"multicast": {
|
|
"type": "object",
|
|
"properties": {
|
|
"igmp-snooping-enable": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"mld-snooping-enable": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"unknown-multicast-flood-control": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"querier-enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"globals": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ipv4-network": {
|
|
"type": "string",
|
|
"format": "uc-cidr4",
|
|
"examples": [
|
|
"192.168.0.0/16"
|
|
]
|
|
},
|
|
"ipv6-network": {
|
|
"type": "string",
|
|
"format": "uc-cidr6",
|
|
"examples": [
|
|
"fdca:1234:4567::/48"
|
|
]
|
|
},
|
|
"ipv4-blackhole": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"prefix": {
|
|
"type": "string",
|
|
"format": "uc-cidr4",
|
|
"examples": [
|
|
"192.168.1.0/24"
|
|
]
|
|
},
|
|
"vrf": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ipv4-unreachable": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"prefix": {
|
|
"type": "string",
|
|
"format": "uc-cidr4",
|
|
"examples": [
|
|
"192.168.1.0/24"
|
|
]
|
|
},
|
|
"vrf": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ethernet": {
|
|
"type": "object",
|
|
"properties": {
|
|
"select-ports": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"LAN1",
|
|
"LAN2",
|
|
"LAN3",
|
|
"LAN4",
|
|
"LAN*",
|
|
"WAN*",
|
|
"*"
|
|
]
|
|
}
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"examples": [
|
|
"cloud_uplink_port"
|
|
]
|
|
},
|
|
"speed": {
|
|
"type": "integer",
|
|
"enum": [
|
|
10,
|
|
100,
|
|
1000,
|
|
2500,
|
|
5000,
|
|
10000,
|
|
25000,
|
|
40000,
|
|
50000,
|
|
100000,
|
|
200000
|
|
],
|
|
"default": 1000
|
|
},
|
|
"duplex": {
|
|
"type": "string",
|
|
"enum": [
|
|
"half",
|
|
"full"
|
|
],
|
|
"default": "full"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"services": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"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": "integer",
|
|
"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
|
|
},
|
|
"mac-address-bypass": {
|
|
"type": "boolean"
|
|
},
|
|
"mac-address-bypass-timeout-minutes": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"trunk-group": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 64
|
|
},
|
|
"lacp-config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lacp-enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"lacp-role": {
|
|
"type": "string",
|
|
"enum": [
|
|
"actor",
|
|
"partner"
|
|
],
|
|
"default": "actor"
|
|
},
|
|
"lacp-mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"active",
|
|
"passive"
|
|
],
|
|
"default": "passive"
|
|
},
|
|
"lacp-port-admin-key": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 65535,
|
|
"default": 1
|
|
},
|
|
"lacp-port-priority": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 65535,
|
|
"default": 32768
|
|
},
|
|
"lacp-system-priority": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 65535,
|
|
"default": 32768
|
|
},
|
|
"lacp-pchan-admin-key": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 65535
|
|
},
|
|
"lacp-timeout": {
|
|
"type": "string",
|
|
"enum": [
|
|
"short",
|
|
"long"
|
|
],
|
|
"default": "long"
|
|
}
|
|
}
|
|
},
|
|
"lldp-interface-config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lldp-admin-status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"rx",
|
|
"tx",
|
|
"rx-tx"
|
|
]
|
|
},
|
|
"lldp-basic-tlv-mgmt-ip-v4": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-basic-tlv-mgmt-ip-v6": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"lldp-basic-tlv-port-descr": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-basic-tlv-sys-capab": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-basic-tlv-sys-descr": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-basic-tlv-sys-name": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-dot1-tlv-proto-ident": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-dot1-tlv-proto-vid": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-dot1-tlv-pvid": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-dot1-tlv-vlan-name": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-dot3-tlv-link-agg": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-dot3-tlv-mac-phy": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-dot3-tlv-max-frame": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-dot3-tlv-poe": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-med-location-civic-addr": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lldp-med-location-civic-addr-admin-status": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"lldp-med-location-civic-country-code": {
|
|
"type": "string"
|
|
},
|
|
"lldp-med-location-civic-device-type": {
|
|
"type": "integer"
|
|
},
|
|
"lldp-med-location-civic-ca": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lldp-med-location-civic-ca-type": {
|
|
"type": "integer",
|
|
"maximum": 255,
|
|
"minimum": 0
|
|
},
|
|
"lldp-med-location-civic-ca-value": {
|
|
"type": "string",
|
|
"maxLength": 32,
|
|
"minLength": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lldp-med-notification": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"lldp-med-tlv-ext-poe": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-med-tlv-inventory": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-med-tlv-location": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-med-tlv-med-cap": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-med-tlv-network-policy": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-notification": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"ip-arp-inspect-port": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rate-limit-pps": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"trusted": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"rate-limit-port": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ingress-kbps": {
|
|
"type": "integer",
|
|
"minimum": 64,
|
|
"maximum": 1000000000
|
|
},
|
|
"egress-kbps": {
|
|
"type": "integer",
|
|
"minimum": 64,
|
|
"maximum": 1000000000
|
|
}
|
|
}
|
|
},
|
|
"ip-source-guard-port": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rule": {
|
|
"type": "string",
|
|
"enum": [
|
|
"sip",
|
|
"sip-mac"
|
|
]
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"mac",
|
|
"acl"
|
|
]
|
|
},
|
|
"max-binding": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 65535
|
|
}
|
|
}
|
|
},
|
|
"acl": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"acl-inf-policy-preference": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 64,
|
|
"default": 1
|
|
},
|
|
"acl-inf-policy-ingress": {
|
|
"type": "string",
|
|
"maxLength": 32,
|
|
"minLength": 1,
|
|
"examples": [
|
|
"blacklisted-macs"
|
|
]
|
|
},
|
|
"acl-inf-counters-ingress": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"acl-inf-policy-egress": {
|
|
"type": "string",
|
|
"maxLength": 32,
|
|
"minLength": 1,
|
|
"examples": [
|
|
"blacklisted-macs"
|
|
]
|
|
},
|
|
"acl-inf-counters-egress": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"voice-vlan-intf-config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"voice-vlan-intf-mode": {
|
|
"type": "string",
|
|
"default": "auto",
|
|
"enum": [
|
|
"none",
|
|
"manual",
|
|
"auto"
|
|
]
|
|
},
|
|
"voice-vlan-intf-priority": {
|
|
"type": "integer",
|
|
"default": 6,
|
|
"minimum": 0,
|
|
"maximum": 6
|
|
},
|
|
"voice-vlan-intf-detect-voice": {
|
|
"type": "string",
|
|
"default": "oui",
|
|
"enum": [
|
|
"oui",
|
|
"lldp"
|
|
]
|
|
},
|
|
"voice-vlan-intf-security": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"dhcp-snoop-port": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dhcp-snoop-port-trust": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"dhcp-snoop-port-client-limit": {
|
|
"type": "integer",
|
|
"minimum": 1
|
|
},
|
|
"dhcp-snoop-port-circuit-id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 32
|
|
}
|
|
}
|
|
},
|
|
"bpdu-guard": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"auto-recovery-secs": {
|
|
"type": "integer",
|
|
"default": 300
|
|
}
|
|
}
|
|
},
|
|
"edge-port": {
|
|
"type": "boolean",
|
|
"default": false
|
|
"storm-control": {
|
|
"type": "object",
|
|
"properties": null,
|
|
"broadcast-pps": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"default": 0
|
|
},
|
|
"multicast-pps": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"default": 0
|
|
},
|
|
"unknown-unicast-pps": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"default": 0
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"switch.arp-inspect": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ip-arp-inspect": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"validate-dst-mac": {
|
|
"type": "boolean"
|
|
},
|
|
"validate-ip": {
|
|
"type": "boolean"
|
|
},
|
|
"validate-allow-zeros": {
|
|
"type": "boolean"
|
|
},
|
|
"validate-src-mac": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"switch.ip-source-guard": {
|
|
"type": "object",
|
|
"properties": {
|
|
"bindings": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"binding-mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"mac",
|
|
"acl"
|
|
]
|
|
},
|
|
"binding-mac": {
|
|
"type": "string",
|
|
"format": "uc-mac"
|
|
},
|
|
"binding-vlans": {
|
|
"type": "integer"
|
|
},
|
|
"binding-ip": {
|
|
"type": "string",
|
|
"format": "ipv4"
|
|
},
|
|
"binding-port": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"switch.rtevent": {
|
|
"type": "object",
|
|
"properties": {
|
|
"port-status": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"sub-events": {
|
|
"type": "object",
|
|
"properties": {
|
|
"wired.carrier-down": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"wired.carrier-up": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"module": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"sub-events": {
|
|
"type": "object",
|
|
"properties": {
|
|
"module.plugout": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"module.plugin": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"stp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"sub-events": {
|
|
"type": "object",
|
|
"properties": {
|
|
"stp.loop-detected": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"stp.loop-cleared": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"stp.state-change": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"rstp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"sub-events": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rstp.loop-detected": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"rstp.loop-cleared": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"rstp.state-change": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"fw-upgrade": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"sub-events": {
|
|
"type": "object",
|
|
"properties": {
|
|
"upg.download-start": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"upg.download-in-progress": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"upg.download-failed": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"upg.validation-start": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"upg.validation-success": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"upg.validation-failed": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"upg.backup-current-firmware": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"upg.install-start": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"upg.install-failed": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"upg.reboot-start": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"upg.success": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dhcp-snooping": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"sub-events": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dhcp-snooping.violation-detected": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"dhcp-snooping.violation-cleared": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"switch.acl": {
|
|
"type": "array",
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"acl-name": {
|
|
"type": "string",
|
|
"maxLength": 32,
|
|
"minLength": 1
|
|
},
|
|
"acl-type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4Ext",
|
|
"ipv6Ext",
|
|
"mac",
|
|
"arp"
|
|
]
|
|
},
|
|
"acl-rules": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"acl-rule-action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"permit",
|
|
"deny"
|
|
]
|
|
},
|
|
"acl-source-macaddress": {
|
|
"type": "string",
|
|
"format": "uc-mac"
|
|
},
|
|
"acl-source-macbitmask": {
|
|
"type": "string",
|
|
"format": "uc-mac"
|
|
},
|
|
"acl-dest-macaddress": {
|
|
"type": "string",
|
|
"format": "uc-mac"
|
|
},
|
|
"acl-dest-macbitmask": {
|
|
"type": "string",
|
|
"format": "uc-mac"
|
|
},
|
|
"acl-packet-format": {
|
|
"type": "string",
|
|
"enum": [
|
|
"any",
|
|
"untagged-eth2",
|
|
"untagged-802.3",
|
|
"tagged-eth2",
|
|
"tagged-802.3"
|
|
]
|
|
},
|
|
"acl-vlanid": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 4094
|
|
},
|
|
"acl-vid-bitmask": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 4095
|
|
},
|
|
"acl-ethertype": {
|
|
"type": "string",
|
|
"default": "800"
|
|
},
|
|
"acl-ethertype-bitmask": {
|
|
"type": "string",
|
|
"default": "FFFF"
|
|
},
|
|
"acl-cos": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 7
|
|
},
|
|
"acl-cos-bitmask": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 7
|
|
},
|
|
"acl-ipv4-source-address": {
|
|
"type": "string",
|
|
"format": "ipv4"
|
|
},
|
|
"acl-ipv4-source-subnetmask": {
|
|
"type": "string",
|
|
"format": "ipv4"
|
|
},
|
|
"acl-ipv4-dest-address": {
|
|
"type": "string",
|
|
"format": "ipv4"
|
|
},
|
|
"acl-ipv4-dest-subnetmask": {
|
|
"type": "string",
|
|
"format": "ipv4"
|
|
},
|
|
"acl-ip-proto": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"switch": {
|
|
"type": "object",
|
|
"properties": {
|
|
"port-mirror": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"monitor-ports": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"analysis-port": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"loop-detection": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"stp",
|
|
"rstp",
|
|
"mstp",
|
|
"pvstp",
|
|
"rpvstp"
|
|
],
|
|
"default": "rstp"
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"upstream",
|
|
"downstream"
|
|
]
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"hello_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
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dynamic-authorization": {
|
|
"type": "object",
|
|
"properties": {
|
|
"auth-type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"all",
|
|
"any",
|
|
"session-key"
|
|
]
|
|
},
|
|
"bounce-port-ignore": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"disable-port-ignore": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"ignore-server-key": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"ignore-session-key": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"server-key": {
|
|
"type": "string"
|
|
},
|
|
"client": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"address": {
|
|
"type": "string"
|
|
},
|
|
"server-key": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"port-isolation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sessions": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer"
|
|
},
|
|
"uplink": {
|
|
"type": "object",
|
|
"properties": {
|
|
"interface-list": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"downlink": {
|
|
"type": "object",
|
|
"properties": {
|
|
"interface-list": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"trunk-balance-method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dst-ip",
|
|
"dst-mac",
|
|
"src-dst-ip",
|
|
"src-dst-mac",
|
|
"src-ip",
|
|
"src-mac"
|
|
],
|
|
"default": "src-dst-mac"
|
|
},
|
|
"jumbo-frames": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"dhcp-snooping": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dhcp-snoop-enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"dhcp-snoop-rate-limit": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 2048
|
|
},
|
|
"dhcp-snoop-mac-verify": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"dhcp-snoop-inf-opt-82": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"dhcp-snoop-inf-opt-encode-subopt": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"dhcp-snoop-inf-opt-remoteid": {
|
|
"type": "string",
|
|
"maxLength": 32,
|
|
"minLength": 1
|
|
},
|
|
"dhcp-snoop-inf-opt-policy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"drop",
|
|
"keep",
|
|
"replace"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"mvr-config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mvr-enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"mvr-proxy-query-intvl": {
|
|
"type": "integer",
|
|
"default": 125,
|
|
"maximum": 43200,
|
|
"minimum": 1
|
|
},
|
|
"mvr-proxy-switching": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"mvr-robustness-val": {
|
|
"type": "integer",
|
|
"default": 2,
|
|
"maximum": 255,
|
|
"minimum": 1
|
|
},
|
|
"mvr-source-port-mode": {
|
|
"type": "string",
|
|
"default": "forward",
|
|
"enum": [
|
|
"dynamic",
|
|
"forward"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"mvr-domain-config": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mvr-domain-id": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 10,
|
|
"default": 1
|
|
},
|
|
"mvr-domain-enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"mvr-domain-vlan-id": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 4094,
|
|
"default": 1
|
|
},
|
|
"mvr-domain-upstream-sip": {
|
|
"type": "string",
|
|
"format": "ipv4",
|
|
"examples": [
|
|
"192.168.0.5"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"mvr-group-config": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mvr-group-name": {
|
|
"type": "string",
|
|
"maxLength": 16,
|
|
"minLength": 1
|
|
},
|
|
"mvr-group-range-start": {
|
|
"type": "string",
|
|
"format": "ipv4"
|
|
},
|
|
"mvr-group-range-end": {
|
|
"type": "string",
|
|
"format": "ipv4"
|
|
},
|
|
"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",
|
|
"properties": {
|
|
"lldp-enable": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lldp-holdtime-multiplier": {
|
|
"type": "integer",
|
|
"default": 4
|
|
},
|
|
"lldp-med-fast-start-count": {
|
|
"type": "integer",
|
|
"default": 4
|
|
},
|
|
"lldp-refresh-interval": {
|
|
"type": "integer",
|
|
"default": 30
|
|
},
|
|
"lldp-reinit-delay": {
|
|
"type": "integer",
|
|
"default": 2
|
|
},
|
|
"lldp-tx-delay": {
|
|
"type": "integer",
|
|
"maximum": 8192,
|
|
"minimum": 1
|
|
},
|
|
"lldp-notification-interval": {
|
|
"type": "integer",
|
|
"default": 5
|
|
}
|
|
}
|
|
},
|
|
"mc-lag": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"mclag-config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mclag-domains": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mclag-domain": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 1024,
|
|
"default": 1
|
|
},
|
|
"peer-link": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"port",
|
|
"trunk-group"
|
|
],
|
|
"default": "trunk-group"
|
|
},
|
|
"value": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 64
|
|
}
|
|
}
|
|
},
|
|
"mclag-group": {
|
|
"type": "object",
|
|
"properties": {
|
|
"group-id": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 128
|
|
},
|
|
"members": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"eth0",
|
|
"eth1"
|
|
]
|
|
}
|
|
},
|
|
"lacp-config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lacp-enable": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"lacp-role": {
|
|
"type": "string",
|
|
"enum": [
|
|
"actor",
|
|
"partner"
|
|
],
|
|
"default": "actor"
|
|
},
|
|
"lacp-timeout": {
|
|
"type": "string",
|
|
"enum": [
|
|
"short",
|
|
"long"
|
|
],
|
|
"default": "long"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"system-priority": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 65535,
|
|
"default": 32768
|
|
},
|
|
"dual-active-detection": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"voice-vlan-config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"voice-vlan-id": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 4094
|
|
},
|
|
"voice-vlan-ageing-time": {
|
|
"type": "integer",
|
|
"minimum": 5,
|
|
"maximum": 43200,
|
|
"default": 1440
|
|
},
|
|
"voice-vlan-oui-config": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"voice-vlan-oui-mac": {
|
|
"type": "string",
|
|
"format": "uc-mac"
|
|
},
|
|
"voice-vlan-oui-mask": {
|
|
"type": "string",
|
|
"format": "uc-mac"
|
|
},
|
|
"voice-vlan-oui-description": {
|
|
"type": "string",
|
|
"maxLength": 32,
|
|
"minLength": 1,
|
|
"examples": [
|
|
"A VoIP Phone"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"arp-inspect": {
|
|
"$ref": "#/$defs/switch.arp-inspect"
|
|
},
|
|
"ip-source-guard": {
|
|
"$ref": "#/$defs/switch.ip-source-guard"
|
|
},
|
|
"rt-events": {
|
|
"$ref": "#/$defs/switch.rtevent"
|
|
},
|
|
"acl": {
|
|
"$ref": "#/$defs/switch.acl"
|
|
},
|
|
"dns": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"interface.vlan": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"maximum": 4094
|
|
},
|
|
"range-start": {
|
|
"decription": "Start vlan-id of the specified range",
|
|
"type": "integer",
|
|
"maximum": 4094
|
|
},
|
|
"range-end": {
|
|
"decription": "End vlan-id of the specified range",
|
|
"type": "integer",
|
|
"maximum": 4094
|
|
},
|
|
"proto": {
|
|
"decription": "The L2 vlan tag that shall be added (1q,1ad)",
|
|
"type": "string",
|
|
"enum": [
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"interface.bridge": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mtu": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 256,
|
|
"examples": [
|
|
1500
|
|
]
|
|
},
|
|
"tx-queue-len": {
|
|
"type": "integer",
|
|
"examples": [
|
|
5000
|
|
]
|
|
},
|
|
"isolate-ports": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"interface.ethernet": {
|
|
"type": "object",
|
|
"properties": {
|
|
"select-ports": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"LAN1",
|
|
"LAN2",
|
|
"LAN3",
|
|
"LAN4",
|
|
"LAN*",
|
|
"WAN*",
|
|
"*"
|
|
]
|
|
}
|
|
},
|
|
"multicast": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"learning": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"isolate": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"macaddr": {
|
|
"type": "string",
|
|
"format": "uc-mac"
|
|
},
|
|
"reverse-path-filter": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"vlan-tag": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tagged",
|
|
"un-tagged",
|
|
"auto"
|
|
],
|
|
"default": "auto"
|
|
}
|
|
}
|
|
},
|
|
"interface.ipv4.arp-inspect": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vlan-enable": {
|
|
"type": "boolean"
|
|
},
|
|
"vlan-acl-rule": {
|
|
"type": "string",
|
|
"maxLength": 32,
|
|
"minLength": 1
|
|
},
|
|
"vlan-acl-nodhcp-bindings": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"interface.ipv4.dhcp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lease-first": {
|
|
"type": "integer",
|
|
"examples": [
|
|
10
|
|
]
|
|
},
|
|
"lease-count": {
|
|
"type": "integer",
|
|
"examples": [
|
|
100
|
|
]
|
|
},
|
|
"lease-time": {
|
|
"type": "string",
|
|
"format": "uc-timeout",
|
|
"default": "6h"
|
|
},
|
|
"relay-server": {
|
|
"type": "string",
|
|
"format": "ipv4",
|
|
"example": "192.168.2.1"
|
|
},
|
|
"circuit-id-format": {
|
|
"type": "string",
|
|
"example": [
|
|
"\\{Interface\\}:\\{VLAN-ID\\}}"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"interface.ipv4.dhcp-lease": {
|
|
"type": "object",
|
|
"properties": {
|
|
"macaddr": {
|
|
"type": "string",
|
|
"format": "uc-mac",
|
|
"examples": [
|
|
"00:11:22:33:44:55"
|
|
]
|
|
},
|
|
"static-lease-offset": {
|
|
"type": "integer",
|
|
"examples": [
|
|
10
|
|
]
|
|
},
|
|
"lease-time": {
|
|
"type": "string",
|
|
"format": "uc-timeout",
|
|
"default": "6h"
|
|
},
|
|
"publish-hostname": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
},
|
|
"interface.ipv4.port-forward": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp",
|
|
"any"
|
|
],
|
|
"default": "any"
|
|
},
|
|
"external-port": {
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 65535,
|
|
"format": "uc-portrange"
|
|
},
|
|
"internal-address": {
|
|
"type": "string",
|
|
"format": "ipv4",
|
|
"example": "0.0.0.120"
|
|
},
|
|
"internal-port": {
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 65535,
|
|
"format": "uc-portrange"
|
|
}
|
|
},
|
|
"required": [
|
|
"external-port",
|
|
"internal-address"
|
|
]
|
|
},
|
|
"interface.ipv4": {
|
|
"type": "object",
|
|
"properties": {
|
|
"addressing": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dynamic",
|
|
"static",
|
|
"none"
|
|
],
|
|
"examples": [
|
|
"static"
|
|
]
|
|
},
|
|
"subnet": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"prefix": {
|
|
"type": "string",
|
|
"format": "uc-cidr4",
|
|
"examples": [
|
|
"192.168.1.0/24"
|
|
]
|
|
},
|
|
"vrf": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"gateway": {
|
|
"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": "integer"
|
|
},
|
|
"metric": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"broadcast": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"prefix": {
|
|
"type": "string",
|
|
"format": "uc-cidr4",
|
|
"examples": [
|
|
"192.168.1.0/24"
|
|
]
|
|
},
|
|
"vrf": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"multicast": {
|
|
"type": "object",
|
|
"properties": {
|
|
"unknown-multicast-flood-control": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"igmp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"snooping-enable": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"version": {
|
|
"type": "integer",
|
|
"enum": [
|
|
1,
|
|
2,
|
|
3
|
|
],
|
|
"examples": [
|
|
3
|
|
],
|
|
"default": 3
|
|
},
|
|
"querier-enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"fast-leave-enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"query-interval": {
|
|
"type": "integer",
|
|
"default": 1000
|
|
},
|
|
"last-member-query-interval": {
|
|
"type": "integer",
|
|
"default": 1000
|
|
},
|
|
"max-response-time": {
|
|
"type": "integer",
|
|
"default": 10
|
|
},
|
|
"static-mcast-groups": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"egress-ports": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"address": {
|
|
"type": "string",
|
|
"format": "ipv4",
|
|
"examples": [
|
|
"225.0.0.1"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"mvr": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mvr-intf-mvr-role": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"source",
|
|
"receiver"
|
|
]
|
|
},
|
|
"mvr-intf-immed-leave": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"by-host-ip",
|
|
"by-group"
|
|
],
|
|
"default": "by-group"
|
|
},
|
|
"mvr-intf-assoc-domain": {
|
|
"type": "integer",
|
|
"maximum": 10,
|
|
"minimum": 1
|
|
}
|
|
},
|
|
"required": [
|
|
"mvr-intf-mvr-role",
|
|
"mvr-intf-immed-leave",
|
|
"mvr-intf-assoc-domain"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"send-hostname": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"examples": [
|
|
true
|
|
]
|
|
},
|
|
"use-dns": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "ipv4",
|
|
"examples": [
|
|
"8.8.8.8",
|
|
"4.4.4.4"
|
|
]
|
|
}
|
|
},
|
|
"dhcp-snoop-vlan-enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"ip-arp-inspect-vlan": {
|
|
"$ref": "#/$defs/interface.ipv4.arp-inspect"
|
|
},
|
|
"dhcp": {
|
|
"$ref": "#/$defs/interface.ipv4.dhcp"
|
|
},
|
|
"dhcp-leases": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/interface.ipv4.dhcp-lease"
|
|
}
|
|
},
|
|
"port-forward": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/interface.ipv4.port-forward"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"interface.ipv6.dhcpv6": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"hybrid",
|
|
"stateless",
|
|
"stateful",
|
|
"relay"
|
|
]
|
|
},
|
|
"announce-dns": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "ipv6"
|
|
}
|
|
},
|
|
"filter-prefix": {
|
|
"type": "string",
|
|
"format": "uc-cidr6",
|
|
"default": "::/0"
|
|
}
|
|
}
|
|
},
|
|
"interface.ipv6.port-forward": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp",
|
|
"any"
|
|
],
|
|
"default": "any"
|
|
},
|
|
"external-port": {
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 65535,
|
|
"format": "uc-portrange"
|
|
},
|
|
"internal-address": {
|
|
"type": "string",
|
|
"format": "ipv6",
|
|
"example": "::1234:abcd"
|
|
},
|
|
"internal-port": {
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 65535,
|
|
"format": "uc-portrange"
|
|
}
|
|
},
|
|
"required": [
|
|
"external-port",
|
|
"internal-address"
|
|
]
|
|
},
|
|
"interface.ipv6.traffic-allow": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"default": "any"
|
|
},
|
|
"source-address": {
|
|
"type": "string",
|
|
"format": "uc-cidr6",
|
|
"example": "2001:db8:1234:abcd::/64",
|
|
"default": "::/0"
|
|
},
|
|
"source-ports": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 65535,
|
|
"format": "uc-portrange"
|
|
}
|
|
},
|
|
"destination-address": {
|
|
"type": "string",
|
|
"format": "ipv6",
|
|
"example": "::1000"
|
|
},
|
|
"destination-ports": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"minimum": 0,
|
|
"maximum": 65535,
|
|
"format": "uc-portrange"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"destination-address"
|
|
]
|
|
},
|
|
"interface.ipv6": {
|
|
"type": "object",
|
|
"properties": {
|
|
"addressing": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dynamic",
|
|
"static"
|
|
]
|
|
},
|
|
"subnet": {
|
|
"type": "string",
|
|
"format": "uc-cidr6",
|
|
"examples": [
|
|
"auto/64"
|
|
]
|
|
},
|
|
"gateway": {
|
|
"type": "string",
|
|
"format": "ipv6",
|
|
"examples": [
|
|
"2001:db8:123:456::1"
|
|
]
|
|
},
|
|
"prefix-size": {
|
|
"type": "integer",
|
|
"maximum": 64,
|
|
"minimum": 0
|
|
},
|
|
"dhcpv6": {
|
|
"$ref": "#/$defs/interface.ipv6.dhcpv6"
|
|
},
|
|
"port-forward": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/interface.ipv6.port-forward"
|
|
}
|
|
},
|
|
"traffic-allow": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/interface.ipv6.traffic-allow"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"interface.broad-band.wwan": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"const": "wwan"
|
|
},
|
|
"modem-type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"qmi",
|
|
"mbim",
|
|
"wwan"
|
|
]
|
|
},
|
|
"access-point-name": {
|
|
"type": "string"
|
|
},
|
|
"authentication-type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"none",
|
|
"pap",
|
|
"chap",
|
|
"pap-chap"
|
|
],
|
|
"default": "none"
|
|
},
|
|
"pin-code": {
|
|
"type": "string"
|
|
},
|
|
"user-name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"packet-data-protocol": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ipv4",
|
|
"ipv6",
|
|
"dual-stack"
|
|
],
|
|
"default": "dual-stack"
|
|
}
|
|
}
|
|
},
|
|
"interface.broad-band.pppoe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"const": "pppoe"
|
|
},
|
|
"user-name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"interface.broad-band": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/$defs/interface.broad-band.wwan"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/interface.broad-band.pppoe"
|
|
}
|
|
]
|
|
},
|
|
"interface.tunnel.mesh": {
|
|
"type": "object",
|
|
"properties": {
|
|
"proto": {
|
|
"type": "string",
|
|
"const": "mesh"
|
|
}
|
|
}
|
|
},
|
|
"interface.tunnel.vxlan": {
|
|
"type": "object",
|
|
"properties": {
|
|
"proto": {
|
|
"type": "string",
|
|
"const": "vxlan"
|
|
},
|
|
"peer-address": {
|
|
"type": "string",
|
|
"format": "ipv4",
|
|
"example": "192.168.100.1"
|
|
},
|
|
"peer-port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 1,
|
|
"examples": [
|
|
4789
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"interface.tunnel.l2tp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"proto": {
|
|
"type": "string",
|
|
"const": "l2tp"
|
|
},
|
|
"server": {
|
|
"type": "string",
|
|
"format": "ipv4",
|
|
"example": "192.168.100.1"
|
|
},
|
|
"user-name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"interface.tunnel.gre": {
|
|
"type": "object",
|
|
"properties": {
|
|
"proto": {
|
|
"type": "string",
|
|
"const": "gre"
|
|
},
|
|
"peer-address": {
|
|
"type": "string",
|
|
"format": "ipv4",
|
|
"example": "192.168.100.1"
|
|
},
|
|
"dhcp-healthcheck": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"dont-fragment": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"interface.tunnel.gre6": {
|
|
"type": "object",
|
|
"properties": {
|
|
"proto": {
|
|
"type": "string",
|
|
"const": "gre6"
|
|
},
|
|
"peer-address": {
|
|
"type": "string",
|
|
"format": "ipv6",
|
|
"example": "2405:200:802:600:61::1"
|
|
},
|
|
"dhcp-healthcheck": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"interface.tunnel": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/$defs/interface.tunnel.mesh"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/interface.tunnel.vxlan"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/interface.tunnel.l2tp"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/interface.tunnel.gre"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/interface.tunnel.gre6"
|
|
}
|
|
]
|
|
},
|
|
"interface": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"examples": [
|
|
"LAN"
|
|
]
|
|
},
|
|
"role": {
|
|
"type": "string",
|
|
"enum": [
|
|
"upstream",
|
|
"downstream"
|
|
]
|
|
},
|
|
"isolate-hosts": {
|
|
"type": "boolean"
|
|
},
|
|
"metric": {
|
|
"type": "integer",
|
|
"maximum": 4294967295,
|
|
"minimum": 0
|
|
},
|
|
"mtu": {
|
|
"type": "integer",
|
|
"maximum": 1500,
|
|
"minimum": 1280
|
|
},
|
|
"services": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"ssh",
|
|
"lldp"
|
|
]
|
|
}
|
|
},
|
|
"vlan-awareness": {
|
|
"type": "object",
|
|
"properties": {
|
|
"first": {
|
|
"type": "integer"
|
|
},
|
|
"last": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"vlan": {
|
|
"$ref": "#/$defs/interface.vlan"
|
|
},
|
|
"bridge": {
|
|
"$ref": "#/$defs/interface.bridge"
|
|
},
|
|
"ethernet": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/interface.ethernet"
|
|
}
|
|
},
|
|
"ipv4": {
|
|
"$ref": "#/$defs/interface.ipv4"
|
|
},
|
|
"ipv6": {
|
|
"$ref": "#/$defs/interface.ipv6"
|
|
},
|
|
"broad-band": {
|
|
"$ref": "#/$defs/interface.broad-band"
|
|
},
|
|
"tunnel": {
|
|
"$ref": "#/$defs/interface.tunnel"
|
|
}
|
|
}
|
|
},
|
|
"service.lldp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"describe": {
|
|
"type": "string",
|
|
"default": "uCentral Access Point"
|
|
},
|
|
"location": {
|
|
"type": "string",
|
|
"default": "uCentral Network"
|
|
}
|
|
}
|
|
},
|
|
"service.ssh": {
|
|
"type": "object",
|
|
"properties": {
|
|
"port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"default": 22
|
|
},
|
|
"authorized-keys": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC0ghdSd2D2y08TFowZLMZn3x1/Djw3BkNsIeHt/Z+RaXwvfV1NQAnNdaOngMT/3uf5jZtYxhpl+dbZtRhoUPRvKflKBeFHYBqjZVzD3r4ns2Ofm2UpHlbdOpMuy9oeTSCeF0IKZZ6szpkvSirQogeP2fe9KRkzQpiza6YxxaJlWw== user@example",
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ4FDjyCsg+1Mh2C5G7ibR3z0Kw1dU57kfXebLRwS6CL bob@work",
|
|
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP/JpJ/KHtKKImzISBDwLO0/EwytIr4pGZQXcP6GCSHchLMyfjf147KNlF9gC+3FibzqKH02EiQspVhRgfuK6y0= alice@home"
|
|
]
|
|
}
|
|
},
|
|
"password-authentication": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"enable": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"service.ntp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"servers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uc-host"
|
|
},
|
|
"examples": [
|
|
"0.openwrt.pool.ntp.org"
|
|
]
|
|
},
|
|
"local-server": {
|
|
"type": "boolean",
|
|
"examples": [
|
|
true
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"service.mdns": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"service.rtty": {
|
|
"type": "object",
|
|
"properties": {
|
|
"host": {
|
|
"type": "string",
|
|
"format": "uc-host",
|
|
"examples": [
|
|
"192.168.1.10"
|
|
]
|
|
},
|
|
"port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"default": 5912
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"maxLength": 32,
|
|
"minLength": 32,
|
|
"examples": [
|
|
"01234567890123456789012345678901"
|
|
]
|
|
},
|
|
"mutual-tls": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
},
|
|
"service.log": {
|
|
"type": "object",
|
|
"properties": {
|
|
"host": {
|
|
"type": "string",
|
|
"format": "uc-host",
|
|
"examples": [
|
|
"192.168.1.10"
|
|
]
|
|
},
|
|
"port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 100,
|
|
"examples": [
|
|
2000
|
|
]
|
|
},
|
|
"proto": {
|
|
"type": "string",
|
|
"enum": [
|
|
"tcp",
|
|
"udp"
|
|
],
|
|
"default": "udp"
|
|
},
|
|
"size": {
|
|
"type": "integer",
|
|
"minimum": 32,
|
|
"default": 1000
|
|
},
|
|
"priority": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"default": 7
|
|
}
|
|
}
|
|
},
|
|
"service.http": {
|
|
"type": "object",
|
|
"properties": {
|
|
"http-port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 1,
|
|
"default": 80
|
|
},
|
|
"enable": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"service.igmp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enable": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"service.radius-proxy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"proxy-secret": {
|
|
"type": "string",
|
|
"default": "secret"
|
|
},
|
|
"realms": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"enum": [
|
|
"radsec"
|
|
],
|
|
"default": "radsec"
|
|
},
|
|
"realm": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"default": "*"
|
|
}
|
|
},
|
|
"auto-discover": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"host": {
|
|
"type": "string",
|
|
"format": "uc-host",
|
|
"examples": [
|
|
"192.168.1.10"
|
|
]
|
|
},
|
|
"port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"default": 2083
|
|
},
|
|
"secret": {
|
|
"type": "string"
|
|
},
|
|
"use-local-certificates": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"ca-certificate": {
|
|
"type": "string"
|
|
},
|
|
"certificate": {
|
|
"type": "string"
|
|
},
|
|
"private-key": {
|
|
"type": "string"
|
|
},
|
|
"private-key-password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"enum": [
|
|
"radius"
|
|
]
|
|
},
|
|
"realm": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"default": "*"
|
|
}
|
|
},
|
|
"auth-server": {
|
|
"type": "string",
|
|
"format": "uc-host",
|
|
"examples": [
|
|
"192.168.1.10"
|
|
]
|
|
},
|
|
"auth-port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 1024,
|
|
"examples": [
|
|
1812
|
|
]
|
|
},
|
|
"auth-secret": {
|
|
"type": "string",
|
|
"examples": [
|
|
"secret"
|
|
]
|
|
},
|
|
"acct-server": {
|
|
"type": "string",
|
|
"format": "uc-host",
|
|
"examples": [
|
|
"192.168.1.10"
|
|
]
|
|
},
|
|
"acct-port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 1024,
|
|
"examples": [
|
|
1812
|
|
]
|
|
},
|
|
"acct-secret": {
|
|
"type": "string",
|
|
"examples": [
|
|
"secret"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"enum": [
|
|
"block"
|
|
]
|
|
},
|
|
"realm": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"default": "*"
|
|
}
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"items": {
|
|
"type": "string",
|
|
"default": "blocked"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service.online-check": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ping-hosts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uc-host",
|
|
"examples": [
|
|
"192.168.1.10"
|
|
]
|
|
}
|
|
},
|
|
"download-hosts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"examples": [
|
|
"www.example.org"
|
|
]
|
|
}
|
|
},
|
|
"check-interval": {
|
|
"type": "number",
|
|
"default": 60
|
|
},
|
|
"check-threshold": {
|
|
"type": "number",
|
|
"default": 1
|
|
},
|
|
"action": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"leds"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service.data-plane": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ingress-filters": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"program": {
|
|
"type": "string",
|
|
"format": "uc-base64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service.quality-of-service.class-selector": {
|
|
"type": "string",
|
|
"enum": [
|
|
"CS0",
|
|
"CS1",
|
|
"CS2",
|
|
"CS3",
|
|
"CS4",
|
|
"CS5",
|
|
"CS6",
|
|
"CS7",
|
|
"AF11",
|
|
"AF12",
|
|
"AF13",
|
|
"AF21",
|
|
"AF22",
|
|
"AF23",
|
|
"AF31",
|
|
"AF32",
|
|
"AF33",
|
|
"AF41",
|
|
"AF42",
|
|
"AF43",
|
|
"DF",
|
|
"EF",
|
|
"VA",
|
|
"LE"
|
|
]
|
|
},
|
|
"service.quality-of-service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"select-ports": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"default": "WAN"
|
|
}
|
|
},
|
|
"bandwidth-up": {
|
|
"type": "integer",
|
|
"default": 0
|
|
},
|
|
"bandwidth-down": {
|
|
"type": "integer",
|
|
"default": 0
|
|
},
|
|
"bulk-detection": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dscp": {
|
|
"$ref": "#/$defs/service.quality-of-service.class-selector",
|
|
"default": "CS0"
|
|
},
|
|
"packets-per-second": {
|
|
"type": "number",
|
|
"default": 0
|
|
}
|
|
}
|
|
},
|
|
"services": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"classifier": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dscp": {
|
|
"$ref": "#/$defs/service.quality-of-service.class-selector",
|
|
"default": "CS1"
|
|
},
|
|
"ports": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"enum": [
|
|
"any",
|
|
"tcp",
|
|
"udp"
|
|
],
|
|
"default": "any"
|
|
},
|
|
"port": {
|
|
"type": "integer"
|
|
},
|
|
"range-end": {
|
|
"type": "integer"
|
|
},
|
|
"reclassify": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dns": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fqdn": {
|
|
"type": "string",
|
|
"format": "uc-fqdn"
|
|
},
|
|
"suffix-matching": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"reclassify": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service.wireguard-overlay": {
|
|
"type": "object",
|
|
"properties": {
|
|
"proto": {
|
|
"type": "string",
|
|
"const": "wireguard-overlay"
|
|
},
|
|
"private-key": {
|
|
"type": "string"
|
|
},
|
|
"peer-port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 1,
|
|
"default": 3456
|
|
},
|
|
"peer-exchange-port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 1,
|
|
"default": 3458
|
|
},
|
|
"root-node": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"endpoint": {
|
|
"type": "string",
|
|
"format": "uc-ip"
|
|
},
|
|
"ipaddr": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uc-ip"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"hosts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"endpoint": {
|
|
"type": "string",
|
|
"format": "uc-ip"
|
|
},
|
|
"subnet": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uc-cidr"
|
|
}
|
|
},
|
|
"ipaddr": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uc-ip"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"vxlan": {
|
|
"type": "object",
|
|
"properties": {
|
|
"port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 1,
|
|
"default": 4789
|
|
},
|
|
"mtu": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 256,
|
|
"default": 1420
|
|
},
|
|
"isolate": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service.gps": {
|
|
"type": "object",
|
|
"properties": {
|
|
"adjust-time": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"baud-rate": {
|
|
"type": "integer",
|
|
"enum": [
|
|
2400,
|
|
4800,
|
|
9600,
|
|
19200
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"service.telnet": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enable": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"service.https": {
|
|
"type": "object",
|
|
"properties": {
|
|
"https-port": {
|
|
"type": "integer",
|
|
"maximum": 65535,
|
|
"minimum": 1,
|
|
"default": 443
|
|
},
|
|
"enable": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lldp": {
|
|
"$ref": "#/$defs/service.lldp"
|
|
},
|
|
"ssh": {
|
|
"$ref": "#/$defs/service.ssh"
|
|
},
|
|
"ntp": {
|
|
"$ref": "#/$defs/service.ntp"
|
|
},
|
|
"mdns": {
|
|
"$ref": "#/$defs/service.mdns"
|
|
},
|
|
"rtty": {
|
|
"$ref": "#/$defs/service.rtty"
|
|
},
|
|
"log": {
|
|
"$ref": "#/$defs/service.log"
|
|
},
|
|
"http": {
|
|
"$ref": "#/$defs/service.http"
|
|
},
|
|
"igmp": {
|
|
"$ref": "#/$defs/service.igmp"
|
|
},
|
|
"radius-proxy": {
|
|
"$ref": "#/$defs/service.radius-proxy"
|
|
},
|
|
"online-check": {
|
|
"$ref": "#/$defs/service.online-check"
|
|
},
|
|
"data-plane": {
|
|
"$ref": "#/$defs/service.data-plane"
|
|
},
|
|
"quality-of-service": {
|
|
"$ref": "#/$defs/service.quality-of-service"
|
|
},
|
|
"wireguard-overlay": {
|
|
"$ref": "#/$defs/service.wireguard-overlay"
|
|
},
|
|
"gps": {
|
|
"$ref": "#/$defs/service.gps"
|
|
},
|
|
"telnet": {
|
|
"$ref": "#/$defs/service.telnet"
|
|
},
|
|
"https": {
|
|
"$ref": "#/$defs/service.https"
|
|
}
|
|
}
|
|
},
|
|
"metrics.statistics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"interval": {
|
|
"type": "integer",
|
|
"minimum": 60
|
|
},
|
|
"types": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"lldp",
|
|
"clients"
|
|
]
|
|
}
|
|
},
|
|
"wired-clients-max-num": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"metrics.health": {
|
|
"type": "object",
|
|
"properties": {
|
|
"interval": {
|
|
"type": "integer",
|
|
"minimum": 60
|
|
},
|
|
"dhcp-local": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"dhcp-remote": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"dns-local": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"dns-remote": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
},
|
|
"metrics.dhcp-snooping": {
|
|
"type": "object",
|
|
"properties": {
|
|
"filters": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ack",
|
|
"discover",
|
|
"offer",
|
|
"request",
|
|
"solicit",
|
|
"reply",
|
|
"renew"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics.telemetry": {
|
|
"type": "object",
|
|
"properties": {
|
|
"interval": {
|
|
"type": "integer"
|
|
},
|
|
"types": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ssh",
|
|
"health",
|
|
"health.dns",
|
|
"health.dhcp",
|
|
"health.radius",
|
|
"health.memory",
|
|
"client",
|
|
"client.join",
|
|
"client.leave",
|
|
"client.key-mismatch",
|
|
"wired",
|
|
"wired.carrier-up",
|
|
"wired.carrier-down",
|
|
"unit",
|
|
"unit.boot-up"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics.realtime": {
|
|
"type": "object",
|
|
"properties": {
|
|
"types": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ssh",
|
|
"health",
|
|
"health.dns",
|
|
"health.dhcp",
|
|
"health.radius",
|
|
"health.memory",
|
|
"client",
|
|
"client.join",
|
|
"client.leave",
|
|
"client.key-mismatch",
|
|
"wired",
|
|
"wired.carrier-up",
|
|
"wired.carrier-down",
|
|
"unit",
|
|
"unit.boot-up"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"statistics": {
|
|
"$ref": "#/$defs/metrics.statistics"
|
|
},
|
|
"health": {
|
|
"$ref": "#/$defs/metrics.health"
|
|
},
|
|
"dhcp-snooping": {
|
|
"$ref": "#/$defs/metrics.dhcp-snooping"
|
|
},
|
|
"telemetry": {
|
|
"$ref": "#/$defs/metrics.telemetry"
|
|
},
|
|
"realtime": {
|
|
"$ref": "#/$defs/metrics.realtime"
|
|
}
|
|
}
|
|
},
|
|
"config-raw": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"minItems": 2,
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"examples": [
|
|
[
|
|
"set",
|
|
"system.@system[0].timezone",
|
|
"GMT0"
|
|
],
|
|
[
|
|
"delete",
|
|
"firewall.@zone[0]"
|
|
],
|
|
[
|
|
"delete",
|
|
"dhcp.wan"
|
|
],
|
|
[
|
|
"add",
|
|
"dhcp",
|
|
"dhcp"
|
|
],
|
|
[
|
|
"add-list",
|
|
"system.ntp.server",
|
|
"0.pool.example.org"
|
|
],
|
|
[
|
|
"del-list",
|
|
"system.ntp.server",
|
|
"1.openwrt.pool.ntp.org"
|
|
]
|
|
]
|
|
}
|
|
}
|
|
}
|
|
} |