Skip to content

Draft: Libwifi: add 68 and 96 chanel to DE (A_REG_1) config

Vitaliy Gaponov requested to merge gsv_libwifi_add_68and96chToDE into devel

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

Merge request reports