GitBook: [#14] No subject

This commit is contained in:
Jaspreet Sachdev
2022-07-07 14:02:06 +00:00
committed by gitbook-bot
parent b8d2fba9d7
commit 30db5430fb
69 changed files with 3492 additions and 154 deletions

View File

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View File

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

View File

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View File

Before

Width:  |  Height:  |  Size: 210 KiB

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1,113 +0,0 @@
{
"uuid": 2,
"unit": {
"location": "TIP Lab Network",
"timezone": "EST+5EDT,M3.2.0/2,M11.1.0/2"
},
"radios": [
{
"band": "5G",
"country": "CA",
"channel": "auto",
"channel-mode": "HE",
"channel-width": 80,
"require-mode": "HT",
"rates": {
"beacon": 6000,
"multicast": 24000
}
},
{
"band": "2G",
"country": "CA",
"channel": 11,
"channel-mode": "HE",
"channel-width": 80,
"require-mode": "HT",
"rates": {
"beacon": 6000,
"multicast": 24000
}
}
],
"interfaces": [
{
"name": "WAN",
"role": "upstream",
"services": [ "lldp", "dhcp-snooping" ],
"ethernet": [
{
"select-ports": [
"WAN*"
]
}
],
"ipv4": {
"addressing": "dynamic"
}
},
{
"name": "WAN100",
"role": "upstream",
"services": [ "lldp", "dhcp-snooping" ],
"vlan": {
"id": 100
},
"ethernet": [
{
"select-ports": [
"WAN*"
]
}
],
"ssids": [
{
"name": "TIP OpenWiFi",
"wifi-bands": [
"2G", "5G"
],
"bss-mode": "ap",
"encryption": {
"proto": "psk2",
"key": "OpenWiFi",
"ieee80211w": "optional"
},
"services": [ "wifi-frames"]
}
]
}
],
"metrics": {
"statistics": {
"interval": 120,
"types": [ "ssids", "lldp", "clients" ]
},
"health": {
"interval": 120
},
"wifi-frames": {
"filters": [ "probe",
"auth",
"assoc",
"disassoc",
"deauth",
"local-deauth",
"inactive-deauth",
"key-mismatch",
"beacon-report",
"radar-detected"]
},
"dhcp-snooping": {
"filters": [ "ack", "discover", "offer", "request", "solicit", "reply", "renew" ]
}
},
"services": {
"lldp": {
"describe": "TIP OpenWiFi",
"location": "LivingLab"
},
"ssh": {
"port": 22
}
}
}

View File

@@ -12,7 +12,6 @@
* [Ordering OpenWiFi APs](about/ordering-open-wi-fi-aps.md)
* [Example Partner Integrations](about/integrations.md)
## OPENWIFI STACK
* [Overview](openwifi-stack/openwifi-stack.md)
@@ -99,4 +98,12 @@
* [Provisioning Service](developer-resources/api/provisioning-service.md)
* [Analytics Service](developer-resources/api/analytics-service.md)
* [Postman Collection](developer-resources/api/postman-collection.md)
* [SDK KAFKA](developer-resources/sdk-kafka.md)
* [SDK KAFKA](developer-resources/sdk-kafka/README.md)
* [Connection](developer-resources/sdk-kafka/connection.md)
* [Device Event Queue](developer-resources/sdk-kafka/device-event-queue.md)
* [Device Telemetry](developer-resources/sdk-kafka/device-telemetry.md)
* [Healthcheck](developer-resources/sdk-kafka/healthcheck.md)
* [Provisioning Change](developer-resources/sdk-kafka/provisioning-change.md)
* [Service Events](developer-resources/sdk-kafka/service-events.md)
* [State](developer-resources/sdk-kafka/state.md)
* [WiFi Scan](developer-resources/sdk-kafka/wifi-scan.md)

View File

@@ -10,12 +10,11 @@ Express Wi-Fi partners with service providers to deliver great wi-fi to people w
For information about becoming an expressWIFI partner please visit their [site.](https://expresswifi.fb.com)
![](<../../.gitbook/assets/image (36).png>)
![](<../../.gitbook/assets/image (36) (1).png>)
## Configuration
ExpressWiFi builds a captive portal experience using a control plane protocol called OpenFlow.
Configuring OpenWiFi for use with expressWiFi is as simple as defining a downstream interface and associating with an SSID and the open-flow service.
ExpressWiFi builds a captive portal experience using a control plane protocol called OpenFlow. Configuring OpenWiFi for use with expressWiFi is as simple as defining a downstream interface and associating with an SSID and the open-flow service.
{% tabs %}
{% tab title="expressWIFI" %}

View File

@@ -1,2 +0,0 @@
# SDK KAFKA

View File

@@ -0,0 +1,13 @@
# SDK KAFKA
The current release has the following Kafka topics:
* connection&#x20;
* device\_event\_queue&#x20;
* device\_telemetry
* healthcheck
* provisioning\_change
* service\_events
* state
* wifiscan

View File

@@ -0,0 +1,400 @@
# Connection
Here are the current messages related to connection topic:
## Ping Message
```json
{
"system": {
"id": 1637414624750592500,
"host": "https://owgw-owgw:17002"
},
"payload": {
"ping": {
"compatible": "cig_wf194c4",
"connectionIp": "f40b9fe78d3d@10.10.10.48:35510",
"firmware": "OpenWrt 21.02-SNAPSHOT r16399+136-c67509efd7 / TIP-v2.6.0-rc4-eebe021",
"locale": "US",
"serialNumber": "f40b9fe78d3d",
"timestamp": 1656513408
}
}
}
```
## Capability Message
```json
{
"system": {
"id": 1637414624750592500,
"host": "https://owgw-owgw:17002"
},
"payload": {
"capabilities": {
"compatible": "cig_wf196",
"label_macaddr": "82:4f:81:60:11:e4",
"macaddr": {
"lan": "82:4f:81:60:11:e5",
"wan": "82:4f:81:60:11:e4"
},
"model": "CIG WF196",
"network": {
"lan": [
"eth1"
],
"wan": [
"eth0"
]
},
"platform": "ap",
"switch": {
"switch0": {
"enable": false,
"reset": false
}
},
"wifi": {
"platform/soc/c000000.wifi1": {
"band": [
"5G"
],
"channels": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165
],
"dfs_channels": [
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144
],
"frequencies": [
5180,
5200,
5220,
5240,
5260,
5280,
5300,
5320,
5500,
5520,
5540,
5560,
5580,
5600,
5620,
5640,
5660,
5680,
5700,
5720,
5745,
5765,
5785,
5805,
5825
],
"he_mac_capa": [
13,
39448,
4160
],
"he_phy_capa": [
24604,
34892,
56191,
40067,
3073,
0
],
"ht_capa": 6639,
"htmode": [
"HT20",
"HT40",
"VHT20",
"VHT40",
"VHT80",
"VHT80+80",
"VHT160",
"HE20",
"HE40",
"HE80",
"HE160",
"HE80+80"
],
"rx_ant": 240,
"tx_ant": 240,
"vht_capa": 1939601914
},
"platform/soc/c000000.wifi1+1": {
"band": [
"2G"
],
"channels": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
],
"frequencies": [
2412,
2417,
2422,
2427,
2432,
2437,
2442,
2447,
2452,
2457,
2462
],
"he_mac_capa": [
13,
39448,
4160
],
"he_phy_capa": [
24578,
34892,
50047,
40067,
3073,
0
],
"ht_capa": 6639,
"htmode": [
"HT20",
"HT40",
"VHT20",
"VHT40",
"VHT80",
"HE20",
"HE40"
],
"rx_ant": 15,
"tx_ant": 15,
"vht_capa": 1939569042
},
"soc/20000000.pci/pci0000:00/0000:00:00.0/0000:01:00.0": {
"band": [
"6G"
],
"channels": [
1,
5,
9,
13,
17,
21,
25,
29,
33,
37,
41,
45,
49,
53,
57,
61,
65,
69,
73,
77,
81,
85,
89,
93,
97,
101,
105,
109,
113,
117,
121,
125,
129,
133,
137,
141,
145,
149,
153,
157,
161,
165,
169,
173,
177,
181,
185,
189,
193,
197,
201,
205,
209,
213,
217,
221,
225,
229,
233
],
"frequencies": [
5955,
5975,
5995,
6015,
6035,
6055,
6075,
6095,
6115,
6135,
6155,
6175,
6195,
6215,
6235,
6255,
6275,
6295,
6315,
6335,
6355,
6375,
6395,
6415,
6435,
6455,
6475,
6495,
6515,
6535,
6555,
6575,
6595,
6615,
6635,
6655,
6675,
6695,
6715,
6735,
6755,
6775,
6795,
6815,
6835,
6855,
6875,
6895,
6915,
6935,
6955,
6975,
6995,
7015,
7035,
7055,
7075,
7095,
7115
],
"he_mac_capa": [
13,
39448,
4160
],
"he_phy_capa": [
24604,
34892,
56319,
40067,
3089,
0
],
"htmode": [
"HE20",
"HE40",
"HE80",
"HE160",
"HE80+80"
],
"rx_ant": 15,
"tx_ant": 15
}
}
},
"connectionIp": "824f816011e4@10.10.11.185:50412",
"firmware": "OpenWrt 21.02-SNAPSHOT r16399+136-c67509efd7 / TIP-v2.6.0-rc4-eebe021",
"locale": "US",
"serial": "824f816011e4",
"timestamp": 1656516572,
"uuid": 1
}
}
```
## Disconnection Message
```json
{
"system": {
"id": 1637414624750592500,
"host": "https://owgw-owgw:17002"
},
"payload": {
"disconnection": {
"serialNumber": "824f816011e4",
"timestamp": 1656516851
}
}
}
```

View File

@@ -0,0 +1,45 @@
# Device Event Queue
## Single Event (DHCP Example)
```json
{
"system": {
"id": 1637414624750592500,
"host": "https://owgw-owgw:17002"
},
"payload": {
"events": {
"dhcp": []
},
"serial": "c44bd1005b30",
"status": {
"error": 0,
"text": "Success"
},
"uuid": 1656049674
}
```
## Multiple Events
```json
{
"system": {
"id": 1637414624750592500,
"host": "https://owgw-owgw:17002"
},
"payload": {
"events": {
"dhcp": [],
"wifi": []
},
"serial": "0000c1018812",
"status": {
"error": 0,
"text": "Success"
},
"uuid": 1657087470
}
}
```

View File

@@ -0,0 +1,2 @@
# Device Telemetry

View File

@@ -0,0 +1,75 @@
# Healthcheck
## Unit
```json
{
"system": {
"id": 1637414624750592500,
"host": "https://owgw-owgw:17002"
},
"payload": {
"data": {
"unit": {
"memory": 20
}
},
"sanity": 100,
"serial": "903cb39d69c0",
"timestamp": 1657200271,
"uuid": 1657194597
}
}
```
## Interfaces + Unit
```json
{
"system": {
"id": 1637414624750592500,
"host": "https://owgw-owgw:17002"
},
"payload": {
"data": {
"interfaces": {
"up1v100": {
"dhcp": false,
"location": "/interfaces/1",
"warning": [
"DHCP did not offer any leases"
]
},
"up2v125": {
"dhcp": false,
"location": "/interfaces/2",
"warning": [
"DHCP did not offer any leases"
]
},
"up3v200": {
"dhcp": false,
"location": "/interfaces/3",
"warning": [
"DHCP did not offer any leases"
]
},
"up4v150": {
"dhcp": false,
"location": "/interfaces/4",
"warning": [
"DHCP did not offer any leases"
]
}
},
"unit": {
"memory": 20
}
},
"sanity": 43,
"serial": "0006aee53b84",
"timestamp": 1657200310,
"uuid": 1657198335
}
}
```

View File

@@ -0,0 +1,51 @@
# Provisioning Change
## Venue Updates
```json
{
"system": {
"id": 1637211374533410000,
"host": "https://owprov-owprov:17005"
},
"payload": {
"ObjectType": "Venue",
"boards": [],
"children": [],
"configurations": [],
"contacts": [],
"created": 1656163862,
"description": "For testing Purposes through Automation",
"design": "",
"deviceConfiguration": [],
"deviceRules": {
"firmwareUpgrade": "inherit",
"rcOnly": "inherit",
"rrm": "inherit"
},
"devices": [],
"entity": "6a657863-9940-4303-ac68-4cc10d3078ec",
"id": "22146613-13f8-47a4-b21d-c2c2d214a695",
"location": "",
"managementPolicies": [],
"managementPolicy": "",
"managementRoles": [],
"maps": [],
"modified": 1656163862,
"name": "Testing Prov",
"notes": [
{
"created": 1656163862,
"createdBy": "tip@ucentral.com",
"note": "For testing Purposes"
}
],
"parent": "",
"sourceIP": [],
"tags": [],
"topology": [],
"variables": []
}
}
```

View File

@@ -0,0 +1,27 @@
# Service Events
## Keep-alive
This message is sent by all SDK micro-services.
```json
{
"event": "keep-alive",
"id": 1651799646949140500,
"key": "c34b2bcafc78460025740e82922dc43ccb41d40d8d474e909a4b7065005e595e",
"privateEndPoint": "https://owanalytics-owanalytics:17009",
"publicEndPoint": "https://analytics-qa01.cicd.lab.wlan.tip.build:16009",
"type": "owanalytics",
"version": "2.6.0(69) - v2.6.0-RC3"
}
```
## Remove Token
```json
{
"event": "remove-token",
"id": 1637312489719148300,
"token": "0a6cdf595818e6da496c11a6794a6084b456425fa87181e1d350175096729f6a"
}
```

View File

@@ -0,0 +1,498 @@
# State
## State
```json
{
"system": {
"id": 1637414624750592500,
"host": "https://owgw-owgw:17002"
},
"payload": {
"serial": "50987100327b",
"state": {
"interfaces": [
{
"clients": [
{
"ipv6_addresses": [
"fe80:0:0:0:6f0:21ff:fe76:cab6"
],
"mac": "04:f0:21:76:ca:b6",
"ports": [
"wlan0"
]
},
{
"ipv4_addresses": [
"172.16.0.1"
],
"ipv6_addresses": [
"fe80:0:0:0:9e69:b4ff:fe60:e5f4"
],
"mac": "9c:69:b4:60:e5:f4",
"ports": [
"eth0"
]
}
],
"counters": {
"collisions": 0,
"multicast": 37,
"rx_bytes": 195056,
"rx_dropped": 0,
"rx_errors": 0,
"rx_packets": 1061,
"tx_bytes": 367918,
"tx_dropped": 0,
"tx_errors": 0,
"tx_packets": 1102
},
"dns_servers": [
"8.8.8.8"
],
"ipv4": {
"addresses": [
"172.16.56.202/16"
],
"dhcp_server": "172.16.0.1",
"leasetime": 600
},
"location": "/interfaces/0",
"name": "up0v0",
"ssids": [
{
"associations": [
{
"ack_signal": 0,
"ack_signal_avg": 0,
"bssid": "50:98:71:00:32:7a",
"connected": 769,
"inactive": 13,
"rssi": -49,
"rx_bytes": 7385,
"rx_duration": 9828,
"rx_packets": 56,
"rx_rate": {
"bitrate": 6000,
"chwidth": 20
},
"station": "04:f0:21:76:ca:b6",
"tid_stats": [
{
"rx_msdu": 21,
"tx_msdu": 19,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 19,
"overlimit": 0,
"tx_bytes": 5549,
"tx_packets": 19
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 12,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 0,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0,
"txq_stats": {
"backlog_bytes": 0,
"backlog_packets": 0,
"collisions": 0,
"drops": 0,
"ecn_marks": 0,
"flows": 0,
"overlimit": 0,
"tx_bytes": 0,
"tx_packets": 0
}
},
{
"rx_msdu": 0,
"tx_msdu": 4,
"tx_msdu_failed": 0,
"tx_msdu_retries": 0
}
],
"tx_bytes": 5798,
"tx_duration": 8121,
"tx_failed": 0,
"tx_packets": 23,
"tx_rate": {
"bitrate": 180000,
"chwidth": 40,
"ht": true,
"mcs": 12,
"sgi": true
},
"tx_retries": 0
}
],
"bssid": "50:98:71:00:32:7a",
"iface": "wlan0",
"location": "/interfaces/0/ssids/0",
"mode": "ap",
"phy": "platform/soc/a000000.wifi",
"radio": {
"$ref": "#/radios/0"
},
"ssid": "tls_ssid_wpa2"
},
{
"bssid": "50:98:71:00:32:79",
"iface": "wlan1",
"location": "/interfaces/0/ssids/0",
"mode": "ap",
"phy": "platform/soc/a800000.wifi",
"radio": {
"$ref": "#/radios/1"
},
"ssid": "tls_ssid_wpa2"
}
],
"uptime": 5592
},
{
"counters": {
"collisions": 0,
"multicast": 0,
"rx_bytes": 0,
"rx_dropped": 0,
"rx_errors": 0,
"rx_packets": 0,
"tx_bytes": 0,
"tx_dropped": 0,
"tx_errors": 0,
"tx_packets": 0
},
"ipv4": {
"addresses": [
"192.168.1.1/16"
]
},
"location": "/interfaces/1",
"name": "down1v0",
"uptime": 2115
}
],
"link-state": {
"downstream": {
"eth1": {
"carrier": 0
}
},
"upstream": {
"eth0": {
"carrier": 1,
"duplex": "full",
"speed": 1000
}
}
},
"lldp-peers": {
"downstream": {},
"upstream": {
"eth0": [
{
"capability": [
"Bridge",
"Router",
"Wlan"
],
"description": "OpenWrt 21.02-SNAPSHOT @ 00c115194c15",
"mac": "00:c1:15:19:4c:15",
"name": "CIG WF194C",
"port": "eth0"
}
]
}
},
"radios": [
{
"active_ms": 1250435,
"busy_ms": 92944,
"channel": 6,
"channel_width": "40",
"noise": -99,
"phy": "platform/soc/a000000.wifi",
"receive_ms": 44474,
"transmit_ms": 3831,
"tx_power": 30
},
{
"active_ms": 1248675,
"busy_ms": 7493,
"channel": 100,
"channel_width": "80",
"noise": -108,
"phy": "platform/soc/a800000.wifi",
"receive_ms": 3991,
"transmit_ms": 4124,
"tx_power": 24
}
],
"unit": {
"load": [
0.103517,
0.098634,
0.107424
],
"localtime": 1657201798,
"memory": {
"buffered": 6983680,
"cached": 19980288,
"free": 141684736,
"total": 254537728
},
"uptime": 5748
},
"version": 1
},
"uuid": 1657200535
}
}
```

File diff suppressed because it is too large Load Diff

View File

@@ -10,17 +10,16 @@ Certain WAN connections may require credentials such as a username and password
OpenWiFi 2.0 supports these scenarios. When a device does not have an existing configuration and is unable to contact the cloud for provisioning it enters "Maverick" mode.
For all Wi-Fi devices this means a Wi-Fi network with the SSID 'Maverick' will become available.
Association with and logging in to the device will permit initial WAN connectivity to be entered.
For all Wi-Fi devices this means a Wi-Fi network with the SSID 'Maverick' will become available. Association with and logging in to the device will permit initial WAN connectivity to be entered.
## Using Maverick
![Maverick Login Page](<../../.gitbook/assets/Screen Shot 2021-07-29 at 5.04.23 PM.png>)
![Maverick Login Page](<../../.gitbook/assets/Screen Shot 2021-07-29 at 5.04.23 PM (1).png>)
After association to the Maverick SSID, open a web browser to `http://192.168.1.1`\
Log into the OpenWiFi device with username: **`root`** and password: **`openwifi`**
![Logged into Maverick](<../../.gitbook/assets/Screen Shot 2021-07-29 at 5.06.35 PM.png>)
![Logged into Maverick](<../../.gitbook/assets/Screen Shot 2021-07-29 at 5.06.35 PM (1).png>)
When the page above is displayed, begin to configure Uplink based on the WAN requirements of the deployment.
@@ -28,7 +27,7 @@ When the page above is displayed, begin to configure Uplink based on the WAN req
If connection uses Point to Point over Ethernet (PPPoE) username and password credentials, enter those values and save.
![PPPoE Uplink](<../../.gitbook/assets/Screen Shot 2021-07-29 at 5.09.14 PM.png>)
![PPPoE Uplink](<../../.gitbook/assets/Screen Shot 2021-07-29 at 5.09.14 PM (1).png>)
If the OpenWiFi device has a Cellular connection which is possible on device models with 4G and 5G radios, the network Access Point Name (APN) and PIN will be required. These values are supplied by your mobile network provider.
@@ -36,7 +35,7 @@ If the OpenWiFi device has a Cellular connection which is possible on device mod
When dynamic address allocation is not available, static IP address assignment may be required. IPv4 and IPv6 are supported, enter these values with DNS address and save.
![Uplink Static IP](<../../.gitbook/assets/Screen Shot 2021-07-29 at 5.12.39 PM.png>)
![Uplink Static IP](<../../.gitbook/assets/Screen Shot 2021-07-29 at 5.12.39 PM (1).png>)
Otherwise leave the Uplink configuration to DHCP or cloud defaults.
@@ -52,6 +51,6 @@ If under rare circumstances it is not possible to discover the OpenWiFi cloud as
It is possible to reset the device to defaults, or locally update firmware using the commands available from System.
![System Commands](<../../.gitbook/assets/Screen Shot 2021-07-29 at 5.17.13 PM.png>)
![System Commands](<../../.gitbook/assets/Screen Shot 2021-07-29 at 5.17.13 PM (1).png>)
\*\*\*\*

View File

@@ -4,8 +4,7 @@ description: uCentral Data Model Introduction
# Provisioning
OpenWiFi 2.0 makes it possible for integrators of the SDK to implement commercial products leveraging OpenWiFi Gateway service with vendor supplied provisioning above OpenWiFi SDK.
As a minimum, the OpenWiFi 2.0 SDK framework offers a Security service which handles all OpenAPI authentication northbound, and the Gateway service which provides all uCentral websocket interface functionality southbound.
OpenWiFi 2.0 makes it possible for integrators of the SDK to implement commercial products leveraging OpenWiFi Gateway service with vendor supplied provisioning above OpenWiFi SDK. As a minimum, the OpenWiFi 2.0 SDK framework offers a Security service which handles all OpenAPI authentication northbound, and the Gateway service which provides all uCentral websocket interface functionality southbound.
![Minimum 2.0 SDK - Assumes DB is either SQLite or PGSql](<../../.gitbook/assets/image (28).png>)
@@ -15,18 +14,15 @@ In future sprints of OpenWiFi dynamic device provisioning will be available as a
## Gateway
OpenWiFi 2.0 Gateway implements the uCentral device management interface. uCentral specifies the data model and interface for management and telemetry of OpenWrt based devices.
Gateway uCentral interface is a websocket JSON-RPC based design between OpenWiFi Gateway and the device running uCentral agent.
OpenWiFi 2.0 Gateway implements the uCentral device management interface. uCentral specifies the data model and interface for management and telemetry of OpenWrt based devices. Gateway uCentral interface is a websocket JSON-RPC based design between OpenWiFi Gateway and the device running uCentral agent.
![Southbound Interface to Devices](<../../.gitbook/assets/image (29).png>)
All communications from Gateway to Device are secured using mutual Transport Layer Security (mTLS). In mTLS systems each endpoint is a unique device sharing the same signed root or intermediate trust. In OpenWiFi each device has a signed certificate, key and device identifier. These are validated by the uCentral-Gateway to establish mTLS session.
Upon successful connection the device exchanges its capabilities with the OpenWiFi SDK. OpenWIFi SDK, via the Gateway microservice will send the entire device provisioning data as a JSON payload.
Within OpenWiFi devices, the uCentral agent has a reader and renderer process providing serialization and validation of data sent from cloud.
If any data presented can not be processed by the local agent, this is returned within an ERROR message using the same websocket connection.
Upon successful connection the device exchanges its capabilities with the OpenWiFi SDK. OpenWIFi SDK, via the Gateway microservice will send the entire device provisioning data as a JSON payload. Within OpenWiFi devices, the uCentral agent has a reader and renderer process providing serialization and validation of data sent from cloud. If any data presented can not be processed by the local agent, this is returned within an ERROR message using the same websocket connection.
![High Level SDK Gateway to uCentral Agent](<../../.gitbook/assets/image (22) (1).png>)
![High Level SDK Gateway to uCentral Agent](<../../.gitbook/assets/image (22) (1) (1).png>)
If the device agrees with provisioning information presented, the render process builds calls into the operating system configuration sub-system known as UCI. The Unified Configuration Interface ensures OpenWrt compliant syntax is persisted within the device.

View File

@@ -16,7 +16,7 @@ The complete data model may be found here : [https://ucentral.io/docs/ucentral-s
Each device has a Universally Unique Identifier (UUID). For each device, the configuration presented either manually, via the future Provisioning service from OpenWifi or via a commercial controller generation of provisioning data, the high level relationships of the schema may be understood as follows.
![uCentral Agent Schema Processing](<../../.gitbook/assets/image (32).png>)
![uCentral Agent Schema Processing](<../../.gitbook/assets/image (32) (1).png>)
The unique device record has a set of top level configurations. A device is referred to as a 'unit' that may have a Description, Location, TimeZone as example. Each unit may have globals for IPv4 and IPv6 networks that are derived to lower lever interfaces in later generation.
@@ -24,7 +24,6 @@ Services and Metrics are associated with logical and physical interfaces. Servic
Interfaces define upstream and downstream configuration over both Wi-Fi logical (SSID) and wired physical ports.
Metrics enable visibility to the cloud for numerous states of the device. These are associated per interface and may be sent in 60 second or greater intervals and include Statistics of SSID, LLDP, Clients. Also include Health check reports of device load, network reachability, temperature.
To assist with fingerprinting DHCP-Snooping exposes numerous interactions of IP binding to clients. Additionally wifi-frames expose all 802.11 management frames to the SDK Gateway.
Metrics enable visibility to the cloud for numerous states of the device. These are associated per interface and may be sent in 60 second or greater intervals and include Statistics of SSID, LLDP, Clients. Also include Health check reports of device load, network reachability, temperature. To assist with fingerprinting DHCP-Snooping exposes numerous interactions of IP binding to clients. Additionally wifi-frames expose all 802.11 management frames to the SDK Gateway.
It is also possible to configure config-raw elements that will parse direct UCI commands once the device provisioning has been completed by the uCentral agent.

View File

@@ -18,20 +18,15 @@ Each device presents Metrics and Health check data to the Gateway. Devices view
## Status
Connection status reflects the Gateway to Device current communications status.
Uptime and Last Contact reflect communication state.
Load indicates processing load on the device.
Memory Used indicates free memory on the device.
Connection status reflects the Gateway to Device current communications status. Uptime and Last Contact reflect communication state. Load indicates processing load on the device. Memory Used indicates free memory on the device.
![Device Status](<../../../.gitbook/assets/Screen Shot 2021-07-28 at 5.17.59 PM.png>)
![Device Status](<../../../.gitbook/assets/Screen Shot 2021-07-28 at 5.17.59 PM (1).png>)
## Configuration
Device UUID, Serial Number, MAC Address and Device Type are displayed.
Last configuration update date and timestamp reflects the last time a "configure" action completed on the device.
Password may be set and device notes may be added.
Device UUID, Serial Number, MAC Address and Device Type are displayed. Last configuration update date and timestamp reflects the last time a "configure" action completed on the device. Password may be set and device notes may be added.
![Device view Configuration Panel](<../../../.gitbook/assets/Screen Shot 2021-07-28 at 5.21.07 PM.png>)
![Device view Configuration Panel](<../../../.gitbook/assets/Screen Shot 2021-07-28 at 5.21.07 PM (1).png>)
## Logs
@@ -43,7 +38,7 @@ Log history of the device is presented within Logs. Expand the tile selecting th
Health score is an active tile reflecting the device health out of a score reported by the device to Gateway. Health metrics are configured on the device based on chosen data model options. When the device falls out of 100%, this tile changes to red. Expanding the tile will present all health reports. Those with less than 100% score will contain reasons for the result from this interface.
![](<../../../.gitbook/assets/Screen Shot 2021-07-28 at 5.24.00 PM.png>)
![](<../../../.gitbook/assets/Screen Shot 2021-07-28 at 5.24.00 PM (1).png>)
## Commands

View File

@@ -4,8 +4,7 @@ description: OpenWiFi 2.0 SDK
# Commands
Within the devices view, the Commands tile offers a number of features and administrative actions.
Each of these represent API calls exposed on the OpenAPI northbound interface from the SDK.
Within the devices view, the Commands tile offers a number of features and administrative actions. Each of these represent API calls exposed on the OpenAPI northbound interface from the SDK.
## Reboot
@@ -17,7 +16,7 @@ Selecting the Reboot action will prompt the below dialog. Options presented perm
Multiple methods exist to execute a remote Firmware Upgrade of a device. When selecting Firmware Upgrade via the Commands tile, a simple dialog to upgrade immediately or at a scheduled time is presented. Alternatively using the Firmware Management Service provides a complete solution including managed access to all TIP firmware images.
![](<../../../.gitbook/assets/Screen Shot 2021-07-29 at 2.28.44 PM.png>)
![](<../../../.gitbook/assets/Screen Shot 2021-07-29 at 2.28.44 PM (1).png>)
## Wi-Fi Scan
@@ -29,7 +28,7 @@ OpenWiFi devices may perform channel scanning and return this neighbor and RF da
Scan operations function over all channels. If 5GHz channels do not display in the returned results ( either via the UI or over API ) this indicates the device is configured in a DFS channel for which it may not return survey scans at this time.
![](<../../../.gitbook/assets/Screen Shot 2021-07-29 at 2.33.58 PM.png>)
![](<../../../.gitbook/assets/Screen Shot 2021-07-29 at 2.33.58 PM (1).png>)
## Connect
@@ -41,13 +40,13 @@ OpenWiFi enables remote connection to any managed device using rTTY encrypted sh
To assist with remote identification of devices in the network, it is possible to turn the LED lights On, Off, of continuous blinking. This may be run on-demand or scheduled.
![](<../../../.gitbook/assets/Screen Shot 2021-07-29 at 2.37.30 PM.png>)
![](<../../../.gitbook/assets/Screen Shot 2021-07-29 at 2.37.30 PM (1).png>)
## Trace
Trace feature enables a remote packet capture to occur on the managed device, over a specified period of time or amount of traffic, returning the "pcap" packet capture file locally to the OpenWiFi admin user.
![](<../../../.gitbook/assets/Screen Shot 2021-07-29 at 2.39.24 PM.png>)
![](<../../../.gitbook/assets/Screen Shot 2021-07-29 at 2.39.24 PM (1).png>)
Once complete the user is asked to open or save the packet capture file locally.