Files
ols-ucentral-schema/ucentral.schema.json
Binny 02f749cc11 Merge pull request #46 from Telecominfraproject/ols-821-mclag-schema-correction
ols-821-mclag-schema-correcttion-draft Changes
2025-10-07 12:06:22 +05:30

3367 lines
124 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": {
"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": {
"link-type": {
"type": "string",
"enum": [
"port",
"trunk-group"
],
"default": "trunk-group"
},
"port-id": {
"type": "string",
"examples": [
"Ethernet1",
"Ethernet2"
]
},
"trunk-id": {
"type": "integer",
"minimum": 1,
"maximum": 64
}
}
},
"mclag-group": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group-id": {
"type": "integer",
"minimum": 1,
"maximum": 128
},
"members": {
"type": "array",
"items": {
"type": "string",
"examples": [
"Ethernet0",
"Ethernet1"
]
}
},
"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"
]
]
}
}
}
}