Draft: Libwifi: add 68 and 96 chanel to DE (A_REG_1) config
Link to task:
https://project.iopsys.eu/issues/10150
Output after patch:
root@nvg578m-2c9569ffeea7:~# ubus -t 30 call wifi.radio.phy1 status
{
"radio": "phy1",
"phyname": "phy1",
"macaddr": "2c:95:69:ff:ee:aa",
"firmware": "",
"vendor_id": "0x14c3",
... {
"opclass": 118,
"bandwidth": 20,
"txpower": 23,
"channels": [
52,
...
64,
68
]
},.... {
"opclass": 121,
"bandwidth": 20,
"txpower": 30,
"channels": [
96,
100,
...
140,
144
]
},
Full output
root@nvg578m-2c9569ffeea7:~# ubus -t 30 call wifi.radio.phy1 status
{
"res_radio": 0,
"res_driver": 0,
"gsv_ver": 11,
"radio": "phy1",
"phyname": "phy1",
"macaddr": "2c:95:69:ff:ee:aa",
"firmware": "",
"vendor_id": "0x14c3",
"device_id": "0x7906",
"isup": true,
"band": "5GHz",
"standard": "802.11a/n/ac/ax",
"num_iface": 1,
"iface": [
{
"name": "wlan1_0",
"mode": "ap"
}
],
"opclass": 128,
"channel": 52,
"bandwidth": 80,
"channel_ext": "auto",
"tx_streams": 2,
"rx_streams": 2,
"noise": -92,
"guard_int": "400ns",
"maxrate": 2401,
"supp_bands": [
"5GHz"
],
"supp_std": [
"11a",
"11n",
"11ac",
"11ax"
],
"supp_bw": [
"20MHz",
"40MHz",
"80MHz",
"160MHz"
],
"cac_methods": [
"continous",
"mimo-reduced"
],
"supp_rates": [
],
"basic_rates": [
],
"supp_channels": [
{
"opclass": 115,
"bandwidth": 20,
"txpower": 23,
"channels": [
36,
40,
44,
48
]
},
{
"opclass": 116,
"bandwidth": 40,
"txpower": 23,
"channels": [
36,
44
]
},
{
"opclass": 117,
"bandwidth": 40,
"txpower": 23,
"channels": [
40,
48
]
},
{
"opclass": 118,
"bandwidth": 20,
"txpower": 23,
"channels": [
52,
56,
60,
64,
68
]
},
{
"opclass": 119,
"bandwidth": 40,
"txpower": 23,
"channels": [
52,
60
]
},
{
"opclass": 120,
"bandwidth": 40,
"txpower": 23,
"channels": [
56,
64
]
},
{
"opclass": 121,
"bandwidth": 20,
"txpower": 30,
"channels": [
96,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144
]
},
{
"opclass": 122,
"bandwidth": 40,
"txpower": 30,
"channels": [
100,
108,
116,
124,
132,
140
]
},
{
"opclass": 123,
"bandwidth": 40,
"txpower": 30,
"channels": [
104,
112,
120,
128,
136,
144
]
},
{
"opclass": 124,
"bandwidth": 20,
"txpower": 36,
"channels": [
149,
153,
157,
161
]
},
{
"opclass": 125,
"bandwidth": 20,
"txpower": 36,
"channels": [
149,
153,
157,
161,
165,
169,
173
]
},
{
"opclass": 126,
"bandwidth": 40,
"txpower": 36,
"channels": [
149,
157,
165,
173
]
},
{
"opclass": 127,
"bandwidth": 40,
"txpower": 36,
"channels": [
153,
161,
169
]
},
{
"opclass": 128,
"bandwidth": 80,
"txpower": 23,
"channels": [
36,
52,
100,
116,
132,
149
]
},
{
"opclass": 129,
"bandwidth": 160,
"txpower": 23,
"channels": [
36,
100
]
}
],
"txpower_dbm": 0,
"txpower": 0,
"dot11h_capable": false,
"dot11h_enabled": false,
"regdomain": "DE",
"beacon_int": 0,
"dtim_period": 0,
"preamble": "short",
"short_retry_limit": 7,
"long_retry_limit": 4,
"frag_threshold": -1,
"rts_threshold": -1,
"aggr_enabled": false,
"stats": {
"tx_bytes": 0,
"tx_packets": 0,
"tx_error_packets": 0,
"tx_dropped_packets": 0,
"rx_bytes": 0,
"rx_packets": 0,
"rx_error_packets": 0,
"rx_dropped_packets": 0,
"rx_plcp_error_packets": 0,
"rx_fcs_error_packets": 0,
"rx_mac_error_packets": 0,
"rx_unknown_packets": 0
},
"diagnostics": {
"channel_busy": 649515000,
"tx_airtime": 42784000,
"rx_airtime": 594878000,
"obss_airtime": 0,
"cca_time": 8164000000,
"false_cca_count": 0
}
}
root@nvg578m-2c9569ffeea7:~#
root@nvg578m-2c9569ffeea7:~# ubus call wifi.radio.phy1 opclass_preferences {
"opclass": 118,
"bandwidth": 20,
"txpower": 23,
"channels": [
{
...
{
...
},
{
"channel": 68,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
68
]
}
]
},
... {
"opclass": 121,
"bandwidth": 20,
"txpower": 30,
"channels": [
{
"channel": 96,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
96
]
},
{
...
},
Full output
root@nvg578m-2c9569ffeea7:~# ubus call wifi.radio.phy1 opclass_preferences
{
"pref_opclass": [
{
"opclass": 115,
"bandwidth": 20,
"txpower": 23,
"channels": [
{
"channel": 36,
"score": 76,
"dfs": 0,
"ctrl_channels": [
36
]
},
{
"channel": 40,
"score": 84,
"dfs": 0,
"ctrl_channels": [
40
]
},
{
"channel": 44,
"score": 94,
"dfs": 0,
"ctrl_channels": [
44
]
},
{
"channel": 48,
"score": 96,
"dfs": 0,
"ctrl_channels": [
48
]
}
]
},
{
"opclass": 116,
"bandwidth": 40,
"txpower": 23,
"channels": [
{
"channel": 36,
"score": 80,
"dfs": 0,
"ctrl_channels": [
36
]
},
{
"channel": 44,
"score": 95,
"dfs": 0,
"ctrl_channels": [
44
]
}
]
},
{
"opclass": 117,
"bandwidth": 40,
"txpower": 23,
"channels": [
{
"channel": 40,
"score": 80,
"dfs": 0,
"ctrl_channels": [
40
]
},
{
"channel": 48,
"score": 95,
"dfs": 0,
"ctrl_channels": [
48
]
}
]
},
{
"opclass": 118,
"bandwidth": 20,
"txpower": 23,
"channels": [
{
"channel": 52,
"score": 90,
"dfs": 1,
"dfs_state": "available",
"cac_time": 60,
"ctrl_channels": [
52
]
},
{
"channel": 56,
"score": 97,
"dfs": 1,
"dfs_state": "available",
"cac_time": 60,
"ctrl_channels": [
56
]
},
{
"channel": 60,
"score": 96,
"dfs": 1,
"dfs_state": "available",
"cac_time": 60,
"ctrl_channels": [
60
]
},
{
"channel": 64,
"score": 96,
"dfs": 1,
"dfs_state": "available",
"cac_time": 60,
"ctrl_channels": [
64
]
},
{
"channel": 68,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
68
]
}
]
},
{
"opclass": 119,
"bandwidth": 40,
"txpower": 23,
"channels": [
{
"channel": 52,
"score": 93,
"dfs": 1,
"dfs_state": "available",
"cac_time": 60,
"ctrl_channels": [
52
]
},
{
"channel": 60,
"score": 95,
"dfs": 1,
"dfs_state": "available",
"cac_time": 60,
"ctrl_channels": [
60
]
}
]
},
{
"opclass": 120,
"bandwidth": 40,
"txpower": 23,
"channels": [
{
"channel": 56,
"score": 93,
"dfs": 1,
"dfs_state": "available",
"cac_time": 60,
"ctrl_channels": [
56
]
},
{
"channel": 64,
"score": 95,
"dfs": 1,
"dfs_state": "available",
"cac_time": 60,
"ctrl_channels": [
64
]
}
]
},
{
"opclass": 121,
"bandwidth": 20,
"txpower": 30,
"channels": [
{
"channel": 96,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
96
]
},
{
"channel": 100,
"score": 70,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
100
]
},
{
"channel": 104,
"score": 91,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
104
]
},
{
"channel": 108,
"score": 65,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
108
]
},
{
"channel": 112,
"score": 21,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
112
]
},
{
"channel": 116,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
116
]
},
{
"channel": 120,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 600,
"ctrl_channels": [
120
]
},
{
"channel": 124,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 600,
"ctrl_channels": [
124
]
},
{
"channel": 128,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 600,
"ctrl_channels": [
128
]
},
{
"channel": 132,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
132
]
},
{
"channel": 136,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
136
]
},
{
"channel": 140,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
140
]
},
{
"channel": 144,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
144
]
}
]
},
{
"opclass": 122,
"bandwidth": 40,
"txpower": 30,
"channels": [
{
"channel": 100,
"score": 80,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
100
]
},
{
"channel": 108,
"score": 43,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
108
]
},
{
"channel": 116,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 600,
"ctrl_channels": [
116
]
},
{
"channel": 124,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 600,
"ctrl_channels": [
124
]
},
{
"channel": 132,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
132
]
},
{
"channel": 140,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
140
]
}
]
},
{
"opclass": 123,
"bandwidth": 40,
"txpower": 30,
"channels": [
{
"channel": 104,
"score": 80,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
104
]
},
{
"channel": 112,
"score": 43,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
112
]
},
{
"channel": 120,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 600,
"ctrl_channels": [
120
]
},
{
"channel": 128,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 600,
"ctrl_channels": [
128
]
},
{
"channel": 136,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
136
]
},
{
"channel": 144,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
144
]
}
]
},
{
"opclass": 124,
"bandwidth": 20,
"txpower": 36,
"channels": [
{
"channel": 149,
"score": 255,
"dfs": 0,
"ctrl_channels": [
149
]
},
{
"channel": 153,
"score": 255,
"dfs": 0,
"ctrl_channels": [
153
]
},
{
"channel": 157,
"score": 255,
"dfs": 0,
"ctrl_channels": [
157
]
},
{
"channel": 161,
"score": 255,
"dfs": 0,
"ctrl_channels": [
161
]
}
]
},
{
"opclass": 125,
"bandwidth": 20,
"txpower": 36,
"channels": [
{
"channel": 149,
"score": 255,
"dfs": 0,
"ctrl_channels": [
149
]
},
{
"channel": 153,
"score": 255,
"dfs": 0,
"ctrl_channels": [
153
]
},
{
"channel": 157,
"score": 255,
"dfs": 0,
"ctrl_channels": [
157
]
},
{
"channel": 161,
"score": 255,
"dfs": 0,
"ctrl_channels": [
161
]
},
{
"channel": 165,
"score": 255,
"dfs": 0,
"ctrl_channels": [
165
]
},
{
"channel": 169,
"score": 255,
"dfs": 0,
"ctrl_channels": [
169
]
},
{
"channel": 173,
"score": 255,
"dfs": 0,
"ctrl_channels": [
173
]
},
{
"channel": 177,
"score": 0,
"dfs": 0,
"ctrl_channels": [
177
]
}
]
},
{
"opclass": 126,
"bandwidth": 40,
"txpower": 36,
"channels": [
{
"channel": 149,
"score": 255,
"dfs": 0,
"ctrl_channels": [
149
]
},
{
"channel": 157,
"score": 255,
"dfs": 0,
"ctrl_channels": [
157
]
},
{
"channel": 165,
"score": 255,
"dfs": 0,
"ctrl_channels": [
165
]
},
{
"channel": 173,
"score": 255,
"dfs": 0,
"ctrl_channels": [
173
]
}
]
},
{
"opclass": 127,
"bandwidth": 40,
"txpower": 36,
"channels": [
{
"channel": 153,
"score": 255,
"dfs": 0,
"ctrl_channels": [
153
]
},
{
"channel": 161,
"score": 255,
"dfs": 0,
"ctrl_channels": [
161
]
},
{
"channel": 169,
"score": 255,
"dfs": 0,
"ctrl_channels": [
169
]
},
{
"channel": 177,
"score": 0,
"dfs": 0,
"ctrl_channels": [
177
]
}
]
},
{
"opclass": 128,
"bandwidth": 80,
"txpower": 23,
"channels": [
{
"channel": 42,
"score": 87,
"dfs": 0,
"ctrl_channels": [
36,
40,
44,
48
]
},
{
"channel": 58,
"score": 94,
"dfs": 1,
"dfs_state": "available",
"cac_time": 60,
"ctrl_channels": [
52,
56,
60,
64
]
},
{
"channel": 106,
"score": 60,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
100,
104,
108,
112
]
},
{
"channel": 122,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 600,
"ctrl_channels": [
116,
120,
124,
128
]
},
{
"channel": 138,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 60,
"ctrl_channels": [
132,
136,
140,
144
]
},
{
"channel": 155,
"score": 255,
"dfs": 0,
"ctrl_channels": [
149,
153,
157,
161
]
},
{
"channel": 171,
"score": 0,
"dfs": 0,
"ctrl_channels": [
165,
169,
173,
177
]
}
]
},
{
"opclass": 129,
"bandwidth": 160,
"txpower": 23,
"channels": [
{
"channel": 50,
"score": 90,
"dfs": 1,
"dfs_state": "available",
"cac_time": 60,
"ctrl_channels": [
36,
40,
44,
48,
52,
56,
60,
64
]
},
{
"channel": 114,
"score": 255,
"dfs": 1,
"dfs_state": "usable",
"cac_time": 600,
"ctrl_channels": [
100,
104,
108,
112,
116,
120,
124,
128
]
},
{
"channel": 163,
"score": 0,
"dfs": 0,
"ctrl_channels": [
149,
153,
157,
161,
165,
169,
173,
177
]
}
]
},
{
"opclass": 130,
"bandwidth": 8080,
"txpower": 23,
"channels": [
{
"channel": 42,
"score": 0,
"dfs": 0,
"ctrl_channels": [
36,
40,
44,
48
]
},
{
"channel": 58,
"score": 0,
"dfs": 0,
"ctrl_channels": [
52,
56,
60,
64
]
},
{
"channel": 106,
"score": 0,
"dfs": 0,
"ctrl_channels": [
100,
104,
108,
112
]
},
{
"channel": 122,
"score": 0,
"dfs": 0,
"ctrl_channels": [
116,
120,
124,
128
]
},
{
"channel": 138,
"score": 0,
"dfs": 0,
"ctrl_channels": [
132,
136,
140,
144
]
},
{
"channel": 155,
"score": 0,
"dfs": 0,
"ctrl_channels": [
149,
153,
157,
161
]
},
{
"channel": 171,
"score": 0,
"dfs": 0,
"ctrl_channels": [
165,
169,
173,
177
]
}
]
}
]
}
root@nvg578m-2c9569ffeea7:~#
Edited by Vitaliy Gaponov