Simulate dump2 Multi-AP setup && Fix a crash

This commit is contained in:
Amin Ben Ramdhane 2021-12-13 08:24:06 +00:00
parent 591d7ac3c5
commit 2486dffd24
7 changed files with 524 additions and 1083 deletions

3
.gitignore vendored
View file

@ -41,3 +41,6 @@ tools/__pycache__
*\.log *\.log
.libs .libs
m4/ m4/
bbf_ubus
memory-report.xml
*.la

View file

@ -656,7 +656,7 @@ static json_object *dump2_find_device_object(const char *unique_key)
return NULL; return NULL;
} }
static json_object *find_radio_object(json_object *device_obj, const char *unique_key) static json_object *dump_find_radio_object(json_object *device_obj, const char *unique_key)
{ {
json_object *radio_arr = NULL; json_object *radio_arr = NULL;
json_object *radio_obj = NULL; json_object *radio_obj = NULL;
@ -675,6 +675,22 @@ static json_object *find_radio_object(json_object *device_obj, const char *uniqu
return NULL; return NULL;
} }
static json_object *dump2_find_radio_object(json_object *device_obj, const char *unique_key)
{
json_object *radio_arr = NULL;
json_object *radio_obj = NULL;
int i = 0;
dmjson_foreach_obj_in_array(device_obj, radio_arr, radio_obj, i, 1, "RadioList") {
char *mac = dmjson_get_value(radio_obj, 1, "macaddr");
if (strcmp(unique_key, mac) == 0)
return radio_obj;
}
return NULL;
}
static int browseWiFiDataElementsNetworkDeviceInst(struct dmctx *dmctx, DMNODE *parent_node, void *prev_data, char *prev_instance) static int browseWiFiDataElementsNetworkDeviceInst(struct dmctx *dmctx, DMNODE *parent_node, void *prev_data, char *prev_instance)
{ {
struct wifi_data_element_args wifi_da_device_args = {0}; struct wifi_data_element_args wifi_da_device_args = {0};
@ -734,8 +750,8 @@ static int browseWiFiDataElementsNetworkDeviceRadioInst(struct dmctx *dmctx, DMN
continue; continue;
wifi_da_radio_args.uci_s = p; wifi_da_radio_args.uci_s = p;
wifi_da_radio_args.dump_obj = find_radio_object(wifi_da_device->dump_obj, key); wifi_da_radio_args.dump_obj = dump_find_radio_object(wifi_da_device->dump_obj, key);
wifi_da_radio_args.dump2_obj = find_radio_object(wifi_da_device->dump2_obj, key); wifi_da_radio_args.dump2_obj = dump2_find_radio_object(wifi_da_device->dump2_obj, key);
inst = handle_instance(dmctx, parent_node, p->dmmap_section, "wifi_da_device_instance", "wifi_da_device_alias"); inst = handle_instance(dmctx, parent_node, p->dmmap_section, "wifi_da_device_instance", "wifi_da_device_alias");

View file

@ -1567,7 +1567,7 @@ char *base64_decode(const char *src)
{ {
int i, j = 0; int i, j = 0;
if (!src) if (!src || *src == '\0')
return ""; return "";
size_t decsize = strlen(src)*6/8; size_t decsize = strlen(src)*6/8;

View file

@ -1,108 +1,62 @@
config controller 'controller' config controller 'controller'
option enabled '1' option enabled '1'
option registrar '5 2' option registrar '5 2'
option debug '0' option debug '0'
option enable_sta_steer '0' option enable_sta_steer '0'
option enable_bsta_steer '0' option enable_bsta_steer '0'
option use_bcn_metrics '0' option use_bcn_metrics '0'
option use_usta_metrics '0' option use_usta_metrics '0'
option primary_vid '1' option primary_vid '1'
option primary_pcp '0' option primary_pcp '0'
option backhaul_steer '0'
option beacon_metrics '0' config interface 'lan'
option usta_metrics '0'
option traffic_separation '0' config ap
option coordinated_cac '0' option band '5'
option ssid 'iopsysWrt-44D43771B410'
config ap option encryption 'sae-mixed'
option band '5' option key 'PCTQ44TNVKK5NU'
option ssid '5GHz-main' option vid '1'
option encryption 'sae-mixed' option type 'fronthaul'
option vid '100' option network 'lan'
option type 'fronthaul'
option network 'lan' config ap
option key 'M7YrYVYh9ULtm3QG' option band '2'
option ssid 'iopsysWrt-44D43771B410'
config ap option encryption 'sae-mixed'
option band '5' option key 'PCTQ44TNVKK5NU'
option ssid '5GHz-guest' option vid '1'
option encryption 'sae-mixed' option type 'fronthaul'
option vid '200' option network 'lan'
option type 'fronthaul'
option network 'lan' config ap
option key 'M7YrYVYh9ULtm3QG' option band '5'
option ssid 'MAP-44D43771B410-BH-5GHz'
config ap option encryption 'sae'
option band '2' option type 'backhaul'
option ssid 'MAP-608D26C4983C-2.4GHz' option vid '1'
option encryption 'sae-mixed' option network 'lan'
option vid '100' option key '029be741b7ff7b4caf9b1b3c48c56030fed877c22f5031bc9cf0132d1672c2c'
option type 'fronthaul'
option network 'lan' config ap
option key 'M7YrYVYh9ULtm3QG' option band '2'
option ssid 'MAP-44D43771B410-BH-2.4GHz'
config ap option encryption 'sae'
option band '5' option type 'backhaul'
option ssid 'MAP-608D26C4983C-BH-5GHz' list disallow_bsta '0'
option encryption 'sae' option vid '1'
option vid '1' option network 'lan'
option type 'backhaul' option key '029be741b7ff7b4caf9b1b3c48c56030fed877c22f5031bc9cf0132d1672c2c'
option network 'lan'
option key 'c12bf5457bc6189133d2a803fb09bb5b49e35b0e05d9abe449a5f6025441cc4' config node
option agent_id '46:d4:37:71:b4:10'
config ap
option band '2' config radio
option ssid 'MAP-608D26C4983C-BH-2.4GHz' option agent_id '46:d4:37:71:b4:10'
option encryption 'sae' option macaddr '44:d4:37:71:b4:1f'
option vid '10' option band '5'
option type 'backhaul'
option network 'lan' config radio
option key 'c12bf5457bc6189133d2a803fb09bb5b49e35b0e05d9abe449a5f6025441cc4' option agent_id '46:d4:37:71:b4:10'
option macaddr '44:d4:37:71:b4:1e'
config node 'node_021111aabbcc' option band '2'
option agent_id '02:11:11:aa:bb:cc'
option backhaul_ul_macaddr '00:00:00:00:00:01'
option backhaul_dl_macaddr '06:10:20:30:40:50'
option backhaul_type 'none'
option primary_vid '1'
option primary_pcp '0'
option report_sta_assocfails '1'
option report_sta_assocfails_rate '2'
option report_metric_periodic '0'
option report_scan '0'
list steer_exclude '00:aa:bb:cc:dd:11'
list steer_exclude '00:aa:bb:cc:dd:22'
list steer_exclude '00:aa:bb:cc:dd:33'
list steer_exclude_btm '00:aa:bb:cc:dd:44'
list steer_exclude_btm '00:aa:bb:cc:dd:55'
option steer_disallow '0'
option coordinated_cac '1'
option traffic_separation '1'
option sta_steer '1'
config radio
option agent_id '02:11:11:aa:bb:cc'
option macaddr '02:12:12:bb:cc:dd'
option band '5'
option steer_policy '0'
option util_threshold '200'
option rcpi_threshold '60'
option report_rcpi_threshold '0'
option report_rcpi_hysteresis_margin '0'
option report_util_threshold '0'
option include_sta_stats '0'
option include_sta_metric '0'
config radio
option agent_id '02:11:11:aa:bb:cc'
option macaddr '02:12:12:bb:cc:de'
option band '2'
option steer_policy '0'
option util_threshold '200'
option rcpi_threshold '30'
option report_rcpi_threshold '0'
option report_rcpi_hysteresis_margin '0'
option report_util_threshold '0'
option include_sta_stats '0'
option include_sta_metric '0'

File diff suppressed because it is too large Load diff

View file

@ -1,204 +1,160 @@
{ {
"num_ssid": 1, "num_ssid": 4,
"ssidlist": [ "ssidlist": [
{ {
"ssid": "5GHz-main", "ssid": "iopsysWrt-44D43771B410",
"band": "5GHz", "band": "5GHz",
"vid": 100, "vid": 1,
"security": "WPA" "security": "WPA3PSK/WPA2PSK+WPA3PSK"
}, },
{ {
"ssid": "5GHz-guest", "ssid": "iopsysWrt-44D43771B410",
"band": "5GHz", "band": "2.4GHz",
"vid": 200, "vid": 1,
"security": "WPA" "security": "WPA3PSK/WPA2PSK+WPA3PSK"
}, },
{ {
"ssid": "MAP-608D26C4983C-2.4GHz", "ssid": "MAP-44D43771B410-BH-5GHz",
"band": "2.4GHz", "band": "5GHz",
"vid": 100, "vid": 1,
"security": "WPA" "security": "WPA3PSK"
}, },
{ {
"ssid": "MAP-608D26C4983C-BH-5GHz", "ssid": "MAP-44D43771B410-BH-2.4GHz",
"band": "5GHz", "band": "2.4GHz",
"vid": 100, "vid": 1,
"security": "WPA" "security": "WPA3PSK"
}, }
{ ],
"ssid": "MAP-608D26C4983C-BH-2.4GHz", "num_ap_devices": 1,
"band": "2.4GHz", "APDeviceList": [
"vid": 100, {
"security": "WPA" "macaddr": "46:d4:37:71:b4:10",
} "manufacturer": "IOPSYS",
], "oui": "00:22:07",
"num_ap_devices":1, "product_class": "AP",
"APDeviceList": [ "serialnumber": "12345",
{ "version": "6.4",
"macaddr": "02:11:11:aa:bb:cc", "last_connect_time": "TODO",
"manufacturer": "IOPSYS", "backhaul_type": "TODO",
"oui": "00:22:07", "backhaul_macaddr": "TODO",
"product_class": "AP", "backhaul_tx_bytes": 0,
"serialnumber": "12345", "backhaul_rx_bytes": 0,
"version": "6.4", "backhaul_utilization": 0,
"last_connect_time": "TODO", "backhaul_rcpi": 0,
"backhaul_type": "TODO", "radar_detections": [
"backhaul_macaddr": "TODO",
"backhaul_tx_bytes": 0, ],
"backhaul_rx_bytes": 0, "num_radios": 2,
"backhaul_utilization": 0, "RadioList": [
"backhaul_rcpi": 0, {
"radar_detections": [ "macaddr": "44:d4:37:71:b4:1f",
], "band": 5,
"MaxReportingRate": 80, "standard": "ax",
"MultiAPProfile": "TODO", "channel": 36,
"MaxVIDs": 4095, "bandwidth": 80,
"DFSEnable": true, "channel_ext": 0,
"EasyMeshControllerOperationMode": "TODO", "mcs": 0,
"EasyMeshAgentOperationMode": "TODO", "txpower": 23,
"Backhaul_BackhaulMACAddress": "TODO", "channels": [
"Backhaul_BackhaulDeviceID": "TODO", 36,
"Backhaul_CurrentOperatingClassProfileNumberOfEntries": 1, 40,
"Backhaul_CurrentOperatingClassProfile": [ 44,
{ 48,
"Class": 10, 52,
"Channel": 15, 56,
"TxPower": -50, 60,
"TimeStamp": "TODO" 64,
} 100,
], 104,
"Backhaul_BytesSent": 1, 108,
"Backhaul_BytesReceived": 2, 112,
"Backhaul_PacketsSent": 3, 116,
"Backhaul_PacketsReceived": 4, 120,
"Backhaul_ErrorsSent": 5, 124,
"Backhaul_ErrorsReceived": 6, 128,
"Backhaul_LinkUtilization": 7, 132,
"Backhaul_SignalStrength": 8, 136,
"Backhaul_LastDataDownlinkRate": 9, 140,
"Backhaul_LastDataUplinkRate": 10, 144
"Backhaul_TimeStamp": "TODO", ],
"num_radios": 2, "num_bss": 2,
"RadioList": [ "APList": [
{ {
"ID": "AhISu8zd", "bssid": "7e:d4:37:71:b4:18",
"band": 2, "ssid": "MAP-44D43771B410-BH-5GHz",
"standard": "ax", "num_steer_assoc_control": 0,
"channel": 8, "num_steer_btm": 0,
"bandwidth": 40, "num_steer_btm_query": 0,
"channel_ext": 1, "num_stations": 0,
"mcs": 7, "StationList": [
"txpower": 23,
"channels": [ ]
},
], {
"num_bss": 1, "bssid": "44:d4:37:71:b4:1f",
"APList": [ "ssid": "iopsysWrt-44D43771B410",
{ "num_steer_assoc_control": 0,
"bssid": "", "num_steer_btm": 0,
"ssid": "", "num_steer_btm_query": 0,
"num_steer_assoc_control": 12, "num_stations": 0,
"num_steer_btm": 5, "StationList": [
"num_steer_btm_query": 1,
"num_stations": 1, ]
"StationList": [ }
{ ]
"macaddr": "", },
"standard": "a", {
"active": true, "macaddr": "44:d4:37:71:b4:1e",
"connect_time": 51, "band": 2,
"dl_rate": -52, "standard": "ax",
"ul_rate": -40, "channel": 6,
"rcpi": 55, "bandwidth": 20,
"noise": -90, "channel_ext": 0,
"tx_bytes": 1, "mcs": 0,
"rx_bytes": 2, "txpower": 20,
"tx_packets": 3, "channels": [
"rx_packets": 4, 1,
"tx_error_packets": 5, 2,
"rx_error_packets": 6, 3,
"tx_retrans_packets": 7 4,
} 5,
] 6,
} 7,
], 8,
"scan_boot_only": true, 9,
"scan_impact": 2, 10,
"scan_interval": 50, 11,
"scan_num_opclass": 1, 12,
"OpClassChannels": [ 13
{ ],
"OpClass": 10, "num_bss": 2,
"ChannelList": "TODO" "APList": [
} {
], "bssid": "7a:d4:37:71:b4:1f",
"num_CACMethod": 1, "ssid": "MAP-44D43771B410-BH-2.4GHz",
"CACMethod": [ "num_steer_assoc_control": 0,
{ "num_steer_btm": 0,
"Method": 12 "num_steer_btm_query": 0,
} "num_stations": 0,
] "StationList": [
},
{ ]
"ID": "AhISu8ze", },
"band": 2, {
"standard": "ax", "bssid": "44:d4:37:71:b4:1e",
"channel": 8, "ssid": "iopsysWrt-44D43771B410",
"bandwidth": 40, "num_steer_assoc_control": 0,
"channel_ext": 1, "num_steer_btm": 0,
"mcs": 7, "num_steer_btm_query": 0,
"txpower": 23, "num_stations": 0,
"channels": [ "StationList": [
], ]
"num_bss": 1, }
"APList": [ ]
{ }
"bssid": "", ]
"ssid": "", }
"num_steer_assoc_control": 12, ]
"num_steer_btm": 5,
"num_steer_btm_query": 1,
"num_stations": 1,
"StationList": [
{
"macaddr": "",
"standard": "a",
"active": true,
"connect_time": 51,
"dl_rate": -52,
"ul_rate": -40,
"rcpi": 55,
"noise": -90,
"tx_bytes": 1,
"rx_bytes": 2,
"tx_packets": 3,
"rx_packets": 4,
"tx_error_packets": 5,
"rx_error_packets": 6,
"tx_retrans_packets": 7
}
]
}
],
"scan_boot_only": true,
"scan_impact": 2,
"scan_interval": 50,
"scan_num_opclass": 1,
"OpClassChannels": [
{
"OpClass": 10,
"ChannelList": "TODO"
}
],
"num_CACMethod": 1,
"CACMethod": [
{
"Method": 12
}
]
}
]
}
]
} }

View file

@ -4,10 +4,15 @@
case "$1" in case "$1" in
list) list)
echo '{ "dump" : {}, "event": {}, "dump2": {} }' echo '{ "status": {}, "dump" : {}, "event": {}, "dump2": {} }'
;; ;;
call) call)
case "$2" in case "$2" in
status)
json_init
json_add_string status available
json_dump
;;
dump) dump)
cat /tmp/wifi.dataelements.collector.dump.data 2>/dev/null cat /tmp/wifi.dataelements.collector.dump.data 2>/dev/null
;; ;;