diff --git a/wifi.ap.json b/wifi.ap.json
new file mode 100644
index 0000000000000000000000000000000000000000..c156ec788d080b05adadcda97fd80eb2f9c5bb55
--- /dev/null
+++ b/wifi.ap.json
@@ -0,0 +1,770 @@
+{
+ "definitions": {},
+ "$schema": "wifi.ap",
+ "$id": "iopsys",
+ "properties": {
+ "add_neighbor": {
+ "definitions": {},
+ "$schema": "add_neighbor",
+ "$id": "iopsys"
+ },
+ "del_neighbor": {
+ "definitions": {},
+ "$schema": "del_neighbor",
+ "$id": "iopsys"
+ },
+ "request_neighbor": {
+ "definitions": {},
+ "$schema": "request_neighbor",
+ "$id": "iopsys"
+ },
+ "request_transition": {
+ "definitions": {},
+ "$schema": "request_transition",
+ "$id": "iopsys"
+ },
+ "monitor": {
+ "definitions": {},
+ "$schema": "monitor",
+ "$id": "iopsys"
+ },
+ "add_vendor_ie": {
+ "definitions": {},
+ "$schema": "add_vendor_ie",
+ "$id": "iopsys"
+ },
+ "del_vendor_ie": {
+ "definitions": {},
+ "$schema": "del_vendor_ie",
+ "$id": "iopsys"
+ },
+ "disconnect": {
+ "definitions": {},
+ "$schema": "disconnect",
+ "$id": "iopsys"
+ },
+ "status": {
+ "definitions": {},
+ "$schema": "iface.status",
+ "$id": "iopsys",
+ "type": "object",
+ "required": [
+ "ifname",
+ "status",
+ "ssid",
+ "bssid",
+ "encryption",
+ "bandwidth",
+ "standard",
+ "num_stations",
+ "utilization",
+ "adm_capacity",
+ "hidden",
+ "max_stations",
+ "capabilities"
+ ],
+ "properties": {
+ "ifname": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 16
+ },
+ "status": {
+ "type": "string"
+ },
+ "ssid": {
+ "type": "string",
+ "minLength": 0,
+ "maxLength": 32
+ },
+ "bssid": {
+ "type": "string",
+ "pattern": "^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$"
+ },
+ "encryption": {
+ "type": "string"
+ },
+ "bandwidth": {
+ "type": "integer",
+ "default": 0,
+ "enum": [20, 40, 80, 160]
+ },
+ "standard": {
+ "type": "string"
+ },
+ "num_stations": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 2007
+ },
+ "utilization": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 100
+ },
+ "adm_capacity": {
+ "type": "integer"
+ },
+ "hidden": {
+ "type": "boolean"
+ },
+ "max_stations": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 2007
+ },
+ "capabilities": {
+ "type": "object",
+ "required": [
+ "wmm",
+ "apsd",
+ "shortslot",
+ "dot11h",
+ "dot11k",
+ "dot11n",
+ "dot11n_ldpc",
+ "dot11n_40",
+ "dot11n_ps",
+ "dot11n_sgi20",
+ "dot11n_sgi40",
+ "dot11n_tx_stbc",
+ "dot11n_rx_stbc",
+ "dot11ac",
+ "dot11ac_160",
+ "dot11ac_8080",
+ "dot11ac_mpdu_max",
+ "dot11ac_sgi80",
+ "dot11ac_sgi160",
+ "dot11ac_rx_ldpc",
+ "dot11ac_tx_stbc",
+ "dot11ac_rx_stbc_1ss",
+ "dot11ac_rx_stbc_2ss",
+ "dot11ac_rx_stbc_3ss",
+ "dot11ac_rx_stbc_4ss",
+ "dot11ac_su_beamformer",
+ "dot11ac_su_beamformee",
+ "dot11ac_mu_beamformer",
+ "dot11ac_mu_beamformee"
+ ],
+ "properties": {
+ "wmm": {
+ "type": "boolean"
+ },
+ "apsd": {
+ "type": "boolean"
+ },
+ "shortslot": {
+ "type": "boolean"
+ },
+ "dot11h": {
+ "type": "boolean"
+ },
+ "dot11k": {
+ "type": "boolean"
+ },
+ "dot11n": {
+ "type": "boolean"
+ },
+ "dot11n_ldpc": {
+ "type": "boolean"
+ },
+ "dot11n_40": {
+ "type": "boolean"
+ },
+ "dot11n_ps": {
+ "type": "boolean"
+ },
+ "dot11n_sgi20": {
+ "type": "boolean"
+ },
+ "dot11n_sgi40": {
+ "type": "boolean"
+ },
+ "dot11n_tx_stbc": {
+ "type": "boolean"
+ },
+ "dot11n_rx_stbc": {
+ "type": "boolean"
+ },
+ "dot11ac": {
+ "type": "boolean"
+ },
+ "dot11ac_160": {
+ "type": "boolean"
+ },
+ "dot11ac_8080": {
+ "type": "boolean"
+ },
+ "dot11ac_mpdu_max": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65535
+ },
+ "dot11ac_sgi80": {
+ "type": "boolean"
+ },
+ "dot11ac_sgi160": {
+ "type": "boolean"
+ },
+ "dot11ac_rx_ldpc": {
+ "type": "boolean"
+ },
+ "dot11ac_tx_stbc": {
+ "type": "boolean"
+ },
+ "dot11ac_rx_stbc_1ss": {
+ "type": "boolean"
+ },
+ "dot11ac_rx_stbc_2ss": {
+ "type": "boolean"
+ },
+ "dot11ac_rx_stbc_3ss": {
+ "type": "boolean"
+ },
+ "dot11ac_rx_stbc_4ss": {
+ "type": "boolean"
+ },
+ "dot11ac_su_beamformer": {
+ "type": "boolean"
+ },
+ "dot11ac_su_beamformee": {
+ "type": "boolean"
+ },
+ "dot11ac_mu_beamformer": {
+ "type": "boolean"
+ },
+ "dot11ac_mu_beamformee": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ },
+ "stats": {
+ "definitions": {},
+ "$schema": "stats.json",
+ "$id": "iopsys",
+ "type": "object",
+ "required": [
+ "tx_bytes",
+ "tx_packets",
+ "tx_unicast_packets",
+ "tx_multicast_packets",
+ "tx_broadcast_packets",
+ "tx_error_packets",
+ "tx_retrans_packets",
+ "tx_retrans_fail_packets",
+ "tx_retry_packets",
+ "tx_multi_retry_packets",
+ "tx_dropped_packets",
+ "ack_fail_packets",
+ "aggregate_packets",
+ "rx_bytes",
+ "rx_packets",
+ "rx_unicast_packets",
+ "rx_multicast_packets",
+ "rx_broadcast_packets",
+ "rx_error_packets",
+ "rx_dropped_packets",
+ "rx_unknown_packets"
+ ],
+ "properties": {
+ "tx_bytes": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_unicast_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_multicast_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_broadcast_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_error_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_retrans_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_retrans_fail_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_retry_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_multi_retry_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_dropped_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "ack_fail_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "aggregate_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_bytes": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_unicast_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_multicast_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_broadcast_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_error_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_dropped_packets": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_unknown_packets": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ },
+ "stations": {
+ "definitions": {},
+ "$schema": "stations",
+ "$id": "iopsys",
+ "type": "object",
+ "required": [
+ "stations"
+ ],
+ "properties": {
+ "stations": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "macaddr",
+ "wdev",
+ "frequency",
+ "rssi",
+ "snr",
+ "idle",
+ "in_network",
+ "tx_airtime",
+ "rx_airtime",
+ "airtime",
+ "max_rate",
+ "status",
+ "capabilities",
+ "stats",
+ "rssi_per_antenna"
+ ],
+ "properties": {
+ "macaddr": {
+ "type": "string",
+ "pattern": "^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$"
+ },
+ "wdev": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 16
+ },
+ "frequency": {
+ "type": "string",
+ "enum": ["5GHz", "2.4GHz"]
+ },
+ "rssi": {
+ "type": "integer",
+ "minimum": -128,
+ "maximum": 0
+ },
+ "snr": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 100
+ },
+ "idle": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "in_network": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_airtime": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 100
+ },
+ "rx_airtime": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 100
+ },
+ "airtime": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 100
+ },
+ "max_rate": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "status": {
+ "type": "object",
+ "required": [
+ "wmm",
+ "ps"
+ ],
+ "properties": {
+ "wmm": {
+ "type": "boolean"
+ },
+ "ps": {
+ "type": "boolean"
+ }
+ }
+ },
+ "capabilities": {
+ "type": "object",
+ "required": [
+ "wmm",
+ "apsd",
+ "shortslot",
+ "dot11h",
+ "dot11k",
+ "2040coex",
+ "psmp",
+ "proxy_arp",
+ "dot11v_btm",
+ "dot11n",
+ "dot11n_ldpc",
+ "dot11n_40",
+ "dot11n_ps",
+ "dot11n_sgi20",
+ "dot11n_sgi40",
+ "dot11n_tx_stbc",
+ "dot11n_rx_stbc",
+ "dot11ac",
+ "dot11ac_160",
+ "dot11ac_8080",
+ "dot11ac_mpdu_max",
+ "dot11ac_sgi80",
+ "dot11ac_sgi160",
+ "dot11ac_rx_ldpc",
+ "dot11ac_tx_stbc",
+ "dot11ac_rx_stbc_1ss",
+ "dot11ac_rx_stbc_2ss",
+ "dot11ac_rx_stbc_3ss",
+ "dot11ac_rx_stbc_4ss",
+ "dot11ac_su_beamformer",
+ "dot11ac_su_beamformee",
+ "dot11ac_mu_beamformer",
+ "dot11ac_mu_beamformee",
+ "dot11k_link_meas",
+ "dot11k_nbr_report",
+ "dot11k_bcn_passive",
+ "dot11k_bcn_active",
+ "dot11k_bcn_table",
+ "dot11k_rcpi",
+ "dot11k_rsni"
+ ],
+ "properties": {
+ "wmm": {
+ "type": "boolean"
+ },
+ "apsd": {
+ "type": "boolean"
+ },
+ "shortslot": {
+ "type": "boolean"
+ },
+ "dot11h": {
+ "type": "boolean"
+ },
+ "dot11k": {
+ "type": "boolean"
+ },
+ "2040coex": {
+ "type": "boolean"
+ },
+ "psmp": {
+ "type": "boolean"
+ },
+ "proxy_arp": {
+ "type": "boolean"
+ },
+ "dot11v_btm": {
+ "type": "boolean"
+ },
+ "dot11n": {
+ "type": "boolean"
+ },
+ "dot11n_ldpc": {
+ "type": "boolean"
+ },
+ "dot11n_40": {
+ "type": "boolean"
+ },
+ "dot11n_ps": {
+ "type": "boolean"
+ },
+ "dot11n_sgi20": {
+ "type": "boolean"
+ },
+ "dot11n_sgi40": {
+ "type": "boolean"
+ },
+ "dot11n_tx_stbc": {
+ "type": "boolean"
+ },
+ "dot11n_rx_stbc": {
+ "type": "boolean"
+ },
+ "dot11ac": {
+ "type": "boolean"
+ },
+ "dot11ac_160": {
+ "type": "boolean"
+ },
+ "dot11ac_8080": {
+ "type": "boolean"
+ },
+ "dot11ac_mpdu_max": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65535
+ },
+ "dot11ac_sgi80": {
+ "type": "boolean"
+ },
+ "dot11ac_sgi160": {
+ "type": "boolean"
+ },
+ "dot11ac_rx_ldpc": {
+ "type": "boolean"
+ },
+ "dot11ac_tx_stbc": {
+ "type": "boolean"
+ },
+ "dot11ac_rx_stbc_1ss": {
+ "type": "boolean"
+ },
+ "dot11ac_rx_stbc_2ss": {
+ "type": "boolean"
+ },
+ "dot11ac_rx_stbc_3ss": {
+ "type": "boolean"
+ },
+ "dot11ac_rx_stbc_4ss": {
+ "type": "boolean"
+ },
+ "dot11ac_su_beamformer": {
+ "type": "boolean"
+ },
+ "dot11ac_su_beamformee": {
+ "type": "boolean"
+ },
+ "dot11ac_mu_beamformer": {
+ "type": "boolean"
+ },
+ "dot11ac_mu_beamformee": {
+ "type": "boolean"
+ },
+ "dot11k_link_meas": {
+ "type": "boolean"
+ },
+ "dot11k_nbr_report": {
+ "type": "boolean"
+ },
+ "dot11k_bcn_passive": {
+ "type": "boolean"
+ },
+ "dot11k_bcn_active": {
+ "type": "boolean"
+ },
+ "dot11k_bcn_table": {
+ "type": "boolean"
+ },
+ "dot11k_rcpi": {
+ "type": "boolean"
+ },
+ "dot11k_rsni": {
+ "type": "boolean"
+ }
+ }
+ },
+ "stats": {
+ "type": "object",
+ "required": [
+ "tx_total_pkts",
+ "tx_total_bytes",
+ "tx_failures",
+ "tx_pkts_retries",
+ "rx_data_pkts",
+ "rx_data_bytes",
+ "rx_failures",
+ "rate_of_last_tx_pkt",
+ "rate_of_last_rx_pkt"
+ ],
+ "properties": {
+ "tx_total_pkts": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_total_bytes": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_failures": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "tx_pkts_retries": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_data_pkts": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_data_bytes": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rx_failures": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rate_of_last_tx_pkt": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "rate_of_last_rx_pkt": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ },
+ "rssi_per_antenna": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "minimum": -128,
+ "maximum": 0
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "list_neighbor": {
+ "definitions": {},
+ "$schema": "list_neighbor",
+ "$id": "iopsys",
+ "type": "object",
+ "required": [
+ "neighbors"
+ ],
+ "properties": {
+ "neighbors": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "bssid",
+ "bss_info",
+ "regulatory",
+ "channel",
+ "phy"
+ ],
+ "properties": {
+ "bssid": {
+ "type": "string",
+ "default": "",
+ "pattern": "^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$"
+ },
+ "bss_info": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "regulatory": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "channel": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 200
+ },
+ "phy": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ }
+ }
+ }
+ },
+ "assoclist": {
+ "definitions": {},
+ "$schema": "assoclist",
+ "$id": "iopsys",
+ "type": "object",
+ "required": [
+ "assoclist"
+ ],
+ "properties": {
+ "assoclist": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "wdev",
+ "macaddr"
+ ],
+ "properties": {
+ "wdev": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 16
+ },
+ "macaddr": {
+ "type": "string",
+ "pattern": "^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/wifi.json b/wifi.json
new file mode 100644
index 0000000000000000000000000000000000000000..d890fce8045cc004926e2abee54a7e9d9e7291e9
--- /dev/null
+++ b/wifi.json
@@ -0,0 +1,150 @@
+{
+ "definitions": {},
+ "$schema": "wifi",
+ "$id": "iopsys",
+ "type": "object",
+ "properties": {
+ "status": {
+ "definitions": {},
+ "$schema": "wifi.status",
+ "$id": "iopsys",
+ "type": "object",
+ "required": [
+ "radios"
+ ],
+ "properties": {
+ "radios": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "name",
+ "isup",
+ "standard",
+ "country",
+ "band",
+ "channel",
+ "bandwidth",
+ "noise",
+ "rate",
+ "channels",
+ "accesspoints",
+ "backhauls"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 16
+ },
+ "isup": {
+ "type": "boolean"
+ },
+ "standard": {
+ "type": "string"
+ },
+ "country": {
+ "type": "string",
+ "minLength": 2,
+ "maxLength": 3
+ },
+ "band": {
+ "type": "integer",
+ "enum": [2, 5]
+ },
+ "channel": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 200
+ },
+ "bandwidth": {
+ "type": "integer",
+ "enum": [20, 40, 80, 160]
+ },
+ "noise": {
+ "type": "integer",
+ "minimum": -127,
+ "maximum": 0
+ },
+ "rate": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "channels": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 200
+ }
+ },
+ "accesspoints": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "ifname",
+ "status",
+ "ssid",
+ "bssid"
+ ],
+ "properties": {
+ "ifname": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 16
+ },
+ "status": {
+ "type": "string"
+ },
+ "ssid": {
+ "type": "string",
+ "minLength": 0,
+ "maxLength": 32
+ },
+ "bssid": {
+ "type": "string",
+ "pattern": "^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$"
+ }
+ }
+ }
+ },
+ "backhauls": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "ifname",
+ "status",
+ "ssid",
+ "bssid"
+ ],
+ "properties": {
+ "ifname": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 16
+ },
+ "status": {
+ "type": "string"
+ },
+ "ssid": {
+ "type": "string",
+ "minLength": 0,
+ "maxLength": 32
+ },
+ "bssid": {
+ "type": "string",
+ "pattern": "^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/wifi.radio.json b/wifi.radio.json
new file mode 100644
index 0000000000000000000000000000000000000000..d3310dc5ed5b6198909533eaa0ed2d53da8a2036
--- /dev/null
+++ b/wifi.radio.json
@@ -0,0 +1,297 @@
+{
+ "definitions": {},
+ "$schema": "wifi.radio",
+ "$id": "iopsys",
+ "properties": {
+ "autochannel": {
+ "definitions": {},
+ "$schema": "wifi.radio.autochannel",
+ "$id": "iopsys",
+ "type": "object",
+ "title": "wifi.radio.autochannel",
+ "required": [
+ "code",
+ "new_channel",
+ "status"
+ ],
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "new_channel": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 200
+ },
+ "status": {
+ "type": "string"
+ }
+ }
+ },
+ "get": {
+ "definitions": {},
+ "$schema": "wifi.radio.iface",
+ "$id": "iopsys",
+ "type": "object",
+ "title": "wifi.radio.iface",
+ "required": [
+ "status",
+ "value_int"
+ ],
+ "properties": {
+ "status": {
+ "type": "integer"
+ },
+ "value_int": {
+ "type": "integer"
+ }
+ }
+ },
+ "scan": {
+ "definitions": {},
+ "$schema": "wifi.radio.iface",
+ "$id": "iopsys"
+ },
+ "scanresults": {
+ "definitions": {},
+ "$schema": "wifi.radio.iface",
+ "$id": "iopsys",
+ "type": "object",
+ "title": "wifi.radio.iface",
+ "required": [
+ "accesspoints"
+ ],
+ "properties": {
+ "accesspoints": {
+ "required": true,
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "ssid": {
+ "required": true,
+ "type": "string",
+ "minLength": 0,
+ "maxLength": 32
+ },
+ "bssid": {
+ "required": true,
+ "type": "string",
+ "pattern": "^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$"
+ },
+ "channel": {
+ "required": true,
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 200
+ },
+ "bandwidth": {
+ "required": true,
+ "type": "integer",
+ "default": 0,
+ "enum": [20, 40, 80, 160]
+ },
+ "encryption": {
+ "required": true,
+ "type": "string"
+ },
+ "band": {
+ "required": true,
+ "type": "string",
+ "enum": ["2.4GHz", "5GHz"]
+ },
+ "rssi": {
+ "required": true,
+ "type": "integer",
+ "maximum": 0,
+ "minimum": -127
+ },
+ "standard": {
+ "required": true,
+ "type": "string"
+ },
+ "load_stas": {
+ "required": true,
+ "type": "integer",
+ "minimum": 0
+ },
+ "load_utilization": {
+ "required": true,
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 100
+ },
+ "load_available": {
+ "required": true,
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ }
+ }
+ }
+ },
+ "stats": {
+ "definitions": {},
+ "$schema": "wifi.radio.iface",
+ "$id": "iopsys",
+ "type": "object",
+ "title": "wifi.radio.iface",
+ "required": [
+ "tx_bytes",
+ "tx_packets",
+ "tx_error_packets",
+ "tx_dropped_packets",
+ "rx_bytes",
+ "rx_packets",
+ "rx_error_packets",
+ "rx_dropped_packets",
+ "rx_fcs_error_packets"
+ ],
+ "properties": {
+ "tx_bytes": {
+ "required": true,
+ "type": "integer",
+ "default": 0,
+ "minimum": 0
+ },
+ "tx_packets": {
+ "required": true,
+ "type": "integer",
+ "default": 0,
+ "minimum": 0
+ },
+ "tx_error_packets": {
+ "required": true,
+ "type": "integer",
+ "default": 0,
+ "minimum": 0
+ },
+ "tx_dropped_packets": {
+ "required": true,
+ "type": "integer",
+ "default": 0,
+ "minimum": 0
+ },
+ "rx_bytes": {
+ "required": true,
+ "type": "integer",
+ "default": 0,
+ "minimum": 0
+ },
+ "rx_packets": {
+ "required": true,
+ "type": "integer",
+ "default": 0,
+ "minimum": 0
+ },
+ "rx_error_packets": {
+ "required": true,
+ "type": "integer",
+ "default": 0,
+ "minimum": 0
+ },
+ "rx_dropped_packets": {
+ "required": true,
+ "type": "integer",
+ "default": 0,
+ "minimum": 0
+ },
+ "rx_fcs_error_packets": {
+ "required": true,
+ "type": "integer",
+ "default": 0,
+ "minimum": 0
+ }
+ }
+ },
+ "status": {
+ "definitions": {},
+ "$schema": "wifi.radio.iface",
+ "$id": "iopsys",
+ "type": "object",
+ "title": "wifi.radio.iface",
+ "required": [
+ "radio",
+ "isup",
+ "band",
+ "channel",
+ "bandwidth",
+ "noise",
+ "rate",
+ "beacon_int",
+ "dtim_period",
+ "short_retry_limit",
+ "long_retry_limit",
+ "frag_threshold",
+ "rts_threshold"
+ ],
+ "properties": {
+ "radio": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 16
+ },
+ "isup": {
+ "type": "boolean"
+ },
+ "band": {
+ "type": "integer",
+ "enum": [2, 5]
+ },
+ "channel": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 200
+ },
+ "bandwidth": {
+ "type": "integer",
+ "enum": [20, 40, 80, 160]
+ },
+ "noise": {
+ "type": "integer",
+ "maximum": 0,
+ "minimum": -128
+ },
+ "rate": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "beacon_int": {
+ "type": "integer",
+ "default": 100,
+ "minimum": 1,
+ "maximum": 65535
+ },
+ "dtim_period": {
+ "type": "integer",
+ "default": 1,
+ "minimum": 1,
+ "maximum": 255
+ },
+ "short_retry_limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 255
+ },
+ "long_retry_limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 255
+ },
+ "frag_threshold": {
+ "type": "integer",
+ "default": 2346,
+ "minimum": 256,
+ "maximum": 65535
+ },
+ "rts_threshold": {
+ "type": "integer",
+ "default": 2347,
+ "minimum": 0,
+ "maximum": 65535
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/wifi.wps.json b/wifi.wps.json
new file mode 100644
index 0000000000000000000000000000000000000000..0bd063ab99b1b25c98ba404cf9f8edc482778bda
--- /dev/null
+++ b/wifi.wps.json
@@ -0,0 +1,87 @@
+{
+ "definitions": {},
+ "$schema": "wifi.ap.stop",
+ "$id": "iopsys",
+ "properties": {
+ "generate_pin": {
+ "definitions": {},
+ "$schema": "wifi.wps.generate_pin",
+ "$id": "iopsys",
+ "type": "object",
+ "required": [
+ "pin"
+ ],
+ "properties": {
+ "pin": {
+ "type": "string",
+ "minLength": 8,
+ "maxLength": 8
+ }
+ }
+ },
+ "setpin": {
+ "definitions": {},
+ "$schema": "wifi.ap.setpin",
+ "$id": "iopsys"
+ },
+ "showpin": {
+ "definitions": {},
+ "$schema": "wifi.wps.showpin",
+ "$id": "iopsys",
+ "type": "object",
+ "required": [
+ "pin"
+ ],
+ "properties": {
+ "pin": {
+ "type": "string",
+ "minLength": 8,
+ "maxLength": 8
+ }
+ }
+ },
+ "start": {
+ "definitions": {},
+ "$schema": "wifi.ap.start",
+ "$id": "iopsys"
+ },
+ "status": {
+ "definitions": {},
+ "$schema": "wifi.wps.status",
+ "$id": "iopsys",
+ "type": "object",
+ "required": [
+ "code",
+ "status"
+ ],
+ "properties": {
+ "code": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "status": {
+ "type": "string"
+ }
+ }
+ },
+ "stop": {
+ "definitions": {},
+ "$schema": "wifi.ap.stop",
+ "$id": "iopsys"
+ },
+ "validate_pin": {
+ "definitions": {},
+ "$schema": "wifi.wps.validate_pin",
+ "$id": "iopsys",
+ "type": "object",
+ "required": [
+ "valid"
+ ],
+ "properties": {
+ "valid": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file