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'
option coordinated_cac '0'
config ap config ap
option band '5' option band '5'
option ssid '5GHz-main' option ssid 'iopsysWrt-44D43771B410'
option encryption 'sae-mixed' option encryption 'sae-mixed'
option vid '100' option key 'PCTQ44TNVKK5NU'
option type 'fronthaul' option vid '1'
option network 'lan' option type 'fronthaul'
option key 'M7YrYVYh9ULtm3QG' option network 'lan'
config ap config ap
option band '5' option band '2'
option ssid '5GHz-guest' option ssid 'iopsysWrt-44D43771B410'
option encryption 'sae-mixed' option encryption 'sae-mixed'
option vid '200' option key 'PCTQ44TNVKK5NU'
option type 'fronthaul' option vid '1'
option network 'lan' option type 'fronthaul'
option key 'M7YrYVYh9ULtm3QG' option network 'lan'
config ap config ap
option band '2' option band '5'
option ssid 'MAP-608D26C4983C-2.4GHz' option ssid 'MAP-44D43771B410-BH-5GHz'
option encryption 'sae-mixed' option encryption 'sae'
option vid '100' option type 'backhaul'
option type 'fronthaul' option vid '1'
option network 'lan' option network 'lan'
option key 'M7YrYVYh9ULtm3QG' option key '029be741b7ff7b4caf9b1b3c48c56030fed877c22f5031bc9cf0132d1672c2c'
config ap config ap
option band '5' option band '2'
option ssid 'MAP-608D26C4983C-BH-5GHz' option ssid 'MAP-44D43771B410-BH-2.4GHz'
option encryption 'sae' option encryption 'sae'
option vid '1' option type 'backhaul'
option type 'backhaul' list disallow_bsta '0'
option network 'lan' option vid '1'
option key 'c12bf5457bc6189133d2a803fb09bb5b49e35b0e05d9abe449a5f6025441cc4' option network 'lan'
option key '029be741b7ff7b4caf9b1b3c48c56030fed877c22f5031bc9cf0132d1672c2c'
config ap config node
option band '2' option agent_id '46:d4:37:71:b4:10'
option ssid 'MAP-608D26C4983C-BH-2.4GHz'
option encryption 'sae'
option vid '10'
option type 'backhaul'
option network 'lan'
option key 'c12bf5457bc6189133d2a803fb09bb5b49e35b0e05d9abe449a5f6025441cc4'
config node 'node_021111aabbcc'
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 config radio
option agent_id '02:11:11:aa:bb:cc' option agent_id '46:d4:37:71:b4:10'
option macaddr '02:12:12:bb:cc:dd' option macaddr '44:d4:37:71:b4:1f'
option band '5' 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 config radio
option agent_id '02:11:11:aa:bb:cc' option agent_id '46:d4:37:71:b4:10'
option macaddr '02:12:12:bb:cc:de' option macaddr '44:d4:37:71:b4:1e'
option band '2' 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,
"backhaul_utilization": 0,
"backhaul_rcpi": 0,
"radar_detections": [
],
"MaxReportingRate": 80,
"MultiAPProfile": "TODO",
"MaxVIDs": 4095,
"DFSEnable": true,
"EasyMeshControllerOperationMode": "TODO",
"EasyMeshAgentOperationMode": "TODO",
"Backhaul_BackhaulMACAddress": "TODO",
"Backhaul_BackhaulDeviceID": "TODO",
"Backhaul_CurrentOperatingClassProfileNumberOfEntries": 1,
"Backhaul_CurrentOperatingClassProfile": [
{
"Class": 10,
"Channel": 15,
"TxPower": -50,
"TimeStamp": "TODO"
}
],
"Backhaul_BytesSent": 1,
"Backhaul_BytesReceived": 2,
"Backhaul_PacketsSent": 3,
"Backhaul_PacketsReceived": 4,
"Backhaul_ErrorsSent": 5,
"Backhaul_ErrorsReceived": 6,
"Backhaul_LinkUtilization": 7,
"Backhaul_SignalStrength": 8,
"Backhaul_LastDataDownlinkRate": 9,
"Backhaul_LastDataUplinkRate": 10,
"Backhaul_TimeStamp": "TODO",
"num_radios": 2,
"RadioList": [
{
"ID": "AhISu8zd",
"band": 2,
"standard": "ax",
"channel": 8,
"bandwidth": 40,
"channel_ext": 1,
"mcs": 7,
"txpower": 23,
"channels": [
], ],
"num_bss": 1, "num_radios": 2,
"APList": [ "RadioList": [
{ {
"bssid": "", "macaddr": "44:d4:37:71:b4:1f",
"ssid": "", "band": 5,
"num_steer_assoc_control": 12, "standard": "ax",
"num_steer_btm": 5, "channel": 36,
"num_steer_btm_query": 1, "bandwidth": 80,
"num_stations": 1, "channel_ext": 0,
"StationList": [ "mcs": 0,
{ "txpower": 23,
"macaddr": "", "channels": [
"standard": "a", 36,
"active": true, 40,
"connect_time": 51, 44,
"dl_rate": -52, 48,
"ul_rate": -40, 52,
"rcpi": 55, 56,
"noise": -90, 60,
"tx_bytes": 1, 64,
"rx_bytes": 2, 100,
"tx_packets": 3, 104,
"rx_packets": 4, 108,
"tx_error_packets": 5, 112,
"rx_error_packets": 6, 116,
"tx_retrans_packets": 7 120,
} 124,
] 128,
} 132,
], 136,
"scan_boot_only": true, 140,
"scan_impact": 2, 144
"scan_interval": 50, ],
"scan_num_opclass": 1, "num_bss": 2,
"OpClassChannels": [ "APList": [
{ {
"OpClass": 10, "bssid": "7e:d4:37:71:b4:18",
"ChannelList": "TODO" "ssid": "MAP-44D43771B410-BH-5GHz",
} "num_steer_assoc_control": 0,
], "num_steer_btm": 0,
"num_CACMethod": 1, "num_steer_btm_query": 0,
"CACMethod": [ "num_stations": 0,
{ "StationList": [
"Method": 12
}
]
},
{
"ID": "AhISu8ze",
"band": 2,
"standard": "ax",
"channel": 8,
"bandwidth": 40,
"channel_ext": 1,
"mcs": 7,
"txpower": 23,
"channels": [
], ]
"num_bss": 1, },
"APList": [ {
{ "bssid": "44:d4:37:71:b4:1f",
"bssid": "", "ssid": "iopsysWrt-44D43771B410",
"ssid": "", "num_steer_assoc_control": 0,
"num_steer_assoc_control": 12, "num_steer_btm": 0,
"num_steer_btm": 5, "num_steer_btm_query": 0,
"num_steer_btm_query": 1, "num_stations": 0,
"num_stations": 1, "StationList": [
"StationList": [
{ ]
"macaddr": "", }
"standard": "a", ]
"active": true, },
"connect_time": 51, {
"dl_rate": -52, "macaddr": "44:d4:37:71:b4:1e",
"ul_rate": -40, "band": 2,
"rcpi": 55, "standard": "ax",
"noise": -90, "channel": 6,
"tx_bytes": 1, "bandwidth": 20,
"rx_bytes": 2, "channel_ext": 0,
"tx_packets": 3, "mcs": 0,
"rx_packets": 4, "txpower": 20,
"tx_error_packets": 5, "channels": [
"rx_error_packets": 6, 1,
"tx_retrans_packets": 7 2,
} 3,
] 4,
} 5,
], 6,
"scan_boot_only": true, 7,
"scan_impact": 2, 8,
"scan_interval": 50, 9,
"scan_num_opclass": 1, 10,
"OpClassChannels": [ 11,
{ 12,
"OpClass": 10, 13
"ChannelList": "TODO" ],
} "num_bss": 2,
], "APList": [
"num_CACMethod": 1, {
"CACMethod": [ "bssid": "7a:d4:37:71:b4:1f",
{ "ssid": "MAP-44D43771B410-BH-2.4GHz",
"Method": 12 "num_steer_assoc_control": 0,
} "num_steer_btm": 0,
] "num_steer_btm_query": 0,
} "num_stations": 0,
] "StationList": [
}
] ]
},
{
"bssid": "44:d4:37:71:b4:1e",
"ssid": "iopsysWrt-44D43771B410",
"num_steer_assoc_control": 0,
"num_steer_btm": 0,
"num_steer_btm_query": 0,
"num_stations": 0,
"StationList": [
]
}
]
}
]
}
]
} }

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
;; ;;