فهرست منبع

wifi-scripts: ucode: fix setting supported/basic rates in config

Only set the default based on cell density, do not override.

Fixes: https://github.com/openwrt/openwrt/issues/19673
Signed-off-by: Felix Fietkau <[email protected]>
Felix Fietkau 4 ماه پیش
والد
کامیت
6ae4115746
1فایلهای تغییر یافته به همراه20 افزوده شده و 20 حذف شده
  1. 20 20
      package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc

+ 20 - 20
package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc

@@ -86,50 +86,50 @@ function device_cell_density_append(config) {
 	switch (config.hw_mode) {
 	case 'b':
 		if (config.cell_density == 1) {
-			config.supported_rates = [ 5500, 11000 ];
-			config.basic_rates = [ 5500, 11000 ];
+			config.supported_rates ??= [ 5500, 11000 ];
+			config.basic_rates ??= [ 5500, 11000 ];
 		} else if (config.cell_density > 2) {
-			config.supported_rates = [ 11000 ];
-			config.basic_rates = [ 11000 ];
+			config.supported_rates ??= [ 11000 ];
+			config.basic_rates ??= [ 11000 ];
 		}
 		;;
 	case 'g':
 		if (config.cell_density in [ 0, 1 ]) {
 			if (!config.legacy_rates) {
-				config.supported_rates = [ 6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000 ];
-				config.basic_rates = [ 6000, 12000, 24000 ];
+				config.supported_rates ??= [ 6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000 ];
+				config.basic_rates ??= [ 6000, 12000, 24000 ];
 			} else if (config.cell_density == 1) {
-				config.supported_rates = [ 5500, 6000, 9000, 11000, 12000, 18000, 24000, 36000, 48000, 54000 ];
-				config.basic_rates = [ 5500, 11000 ];
+				config.supported_rates ??= [ 5500, 6000, 9000, 11000, 12000, 18000, 24000, 36000, 48000, 54000 ];
+				config.basic_rates ??= [ 5500, 11000 ];
 			}
 		} else if (config.cell_density == 2 || (config.cell_density > 3 && config.legacy_rates)) {
 			if (!config.legacy_rates) {
-				config.supported_rates = [ 12000, 18000, 24000, 36000, 48000, 54000 ];
-				config.basic_rates = [ 12000, 24000 ];
+				config.supported_rates ??= [ 12000, 18000, 24000, 36000, 48000, 54000 ];
+				config.basic_rates ??= [ 12000, 24000 ];
 			} else {
-				config.supported_rates = [ 11000, 12000, 18000, 24000, 36000, 48000, 54000 ];
-				config.basic_rates = [ 11000 ];
+				config.supported_rates ??= [ 11000, 12000, 18000, 24000, 36000, 48000, 54000 ];
+				config.basic_rates ??= [ 11000 ];
 			}
 		} else if (config.cell_density > 2) {
-			 config.supported_rates = [ 24000, 36000, 48000, 54000 ];
-			 config.basic_rates = [ 24000 ];
+			 config.supported_rates ??= [ 24000, 36000, 48000, 54000 ];
+			 config.basic_rates ??= [ 24000 ];
 		}
 		;;
 	case 'a':
 		switch (config.cell_density) {
 		case 1:
-			config.supported_rates = [ 6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000 ];
-			config.basic_rates = [ 6000, 12000, 24000 ];
+			config.supported_rates ??= [ 6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000 ];
+			config.basic_rates ??= [ 6000, 12000, 24000 ];
 			break;
 
 		case 2:
-			config.supported_rates = [ 12000, 18000, 24000, 36000, 48000, 54000 ];
-			config.basic_rates = [ 12000, 24000 ];
+			config.supported_rates ??= [ 12000, 18000, 24000, 36000, 48000, 54000 ];
+			config.basic_rates ??= [ 12000, 24000 ];
 			break;
 
 		case 3:
-			config.supported_rates = [ 24000, 36000, 48000, 54000 ];
-			config.basic_rates = [ 24000 ];
+			config.supported_rates ??= [ 24000, 36000, 48000, 54000 ];
+			config.basic_rates ??= [ 24000 ];
 			break;
 		}
 	}