mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-10-31 13:17:25 +01:00 
			
		
		
		
	scan: add scan_get_band_rank_modifier
This exposes the [Rank].BandModifier* settings so other modules can use then. Doing this will allow user-disabling of certain bands by setting these modifier values to 0.0.
This commit is contained in:
		
							parent
							
								
									043a050e57
								
							
						
					
					
						commit
						e4fb9786c5
					
				
							
								
								
									
										41
									
								
								src/scan.c
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								src/scan.c
									
									
									
									
									
								
							| @ -2310,6 +2310,33 @@ bool scan_get_firmware_scan(uint64_t wdev_id, scan_notify_func_t notify, | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
| double scan_get_band_rank_modifier(enum band_freq band) | ||||
| { | ||||
| 	const struct l_settings *config = iwd_get_config(); | ||||
| 	double modifier; | ||||
| 	char *str; | ||||
| 
 | ||||
| 	switch (band) { | ||||
| 	case BAND_FREQ_2_4_GHZ: | ||||
| 		str = "BandModifier2_4Ghz"; | ||||
| 		break; | ||||
| 	case BAND_FREQ_5_GHZ: | ||||
| 		str = "BandModifier5Ghz"; | ||||
| 		break; | ||||
| 	case BAND_FREQ_6_GHZ: | ||||
| 		str = "BandModifier6Ghz"; | ||||
| 		break; | ||||
| 	default: | ||||
| 		l_warn("Unhandled band %u", band); | ||||
| 		return 0.0; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!l_settings_get_double(config, "Rank", str, &modifier)) | ||||
| 		modifier = 1.0; | ||||
| 
 | ||||
| 	return modifier; | ||||
| } | ||||
| 
 | ||||
| bool scan_wdev_add(uint64_t wdev_id) | ||||
| { | ||||
| 	struct scan_context *sc; | ||||
| @ -2359,17 +2386,9 @@ static int scan_init(void) | ||||
| 
 | ||||
| 	scan_contexts = l_queue_new(); | ||||
| 
 | ||||
| 	if (!l_settings_get_double(config, "Rank", "BandModifier2_4Ghz", | ||||
| 					&RANK_2G_FACTOR)) | ||||
| 		RANK_2G_FACTOR = 1.0; | ||||
| 
 | ||||
| 	if (!l_settings_get_double(config, "Rank", "BandModifier5Ghz", | ||||
| 					&RANK_5G_FACTOR)) | ||||
| 		RANK_5G_FACTOR = 1.0; | ||||
| 
 | ||||
| 	if (!l_settings_get_double(config, "Rank", "BandModifier6Ghz", | ||||
| 					&RANK_6G_FACTOR)) | ||||
| 		RANK_6G_FACTOR = 1.0; | ||||
| 	RANK_2G_FACTOR = scan_get_band_rank_modifier(BAND_FREQ_2_4_GHZ); | ||||
| 	RANK_5G_FACTOR = scan_get_band_rank_modifier(BAND_FREQ_5_GHZ); | ||||
| 	RANK_6G_FACTOR = scan_get_band_rank_modifier(BAND_FREQ_6_GHZ); | ||||
| 
 | ||||
| 	if (!l_settings_get_uint(config, "Scan", "InitialPeriodicScanInterval", | ||||
| 					&SCAN_INIT_INTERVAL)) | ||||
|  | ||||
| @ -29,6 +29,7 @@ struct p2p_beacon; | ||||
| struct mmpdu_header; | ||||
| struct wiphy; | ||||
| enum security; | ||||
| enum band_freq; | ||||
| 
 | ||||
| enum scan_state { | ||||
| 	SCAN_STATE_NOT_RUNNING, | ||||
| @ -170,5 +171,7 @@ struct scan_bss *scan_bss_new_from_probe_req(const struct mmpdu_header *mpdu, | ||||
| 						size_t body_len, | ||||
| 						uint32_t frequency, int rssi); | ||||
| 
 | ||||
| double scan_get_band_rank_modifier(enum band_freq band); | ||||
| 
 | ||||
| bool scan_wdev_add(uint64_t wdev_id); | ||||
| bool scan_wdev_remove(uint64_t wdev_id); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 James Prestwood
						James Prestwood