WLAN services: Difference between revisions
No edit summary |
|||
Line 82: | Line 82: | ||
| 37 || [11.0.0+] | | 37 || [11.0.0+] | ||
|- | |- | ||
| 38 || [13.0.0+] | | 38 || [13.0.0+] [[#SetDfrtsMode]] | ||
|} | |} | ||
Line 371: | Line 371: | ||
This is not used on retail. | This is not used on retail. | ||
== | == SetDfrtsMode == | ||
Unofficial name. | |||
Takes an input u32 '''Mode'''. No output. | |||
'''Mode''' must be 0 or 1. | |||
Sends command message 0x32 to the state machine. | |||
The state machine then handles this by issuing the WLC_SET_VAR ioctl for the "pm2_sleep_ret_ext" variable. '''Mode''' is used to select between 2 sets of hardcoded parameters as follows: | |||
struct wl_pm2_sleep_ret_ext { | |||
u8 logic; | |||
u8 PAD; | |||
u16 low_ms; | |||
u16 high_ms; | |||
u16 rx_pkts_threshold; | |||
u16 tx_pkts_threshold; | |||
u16 txrx_pkts_threshold; | |||
u32 rx_bytes_threshold; | |||
u32 tx_bytes_threshold; | |||
u32 txrx_bytes_threshold; | |||
}; | |||
wl_pm2_sleep_ret_ext args = {0}; | |||
if (mode == 0) { | |||
args.logic = 2; | |||
args.low_ms = 2000; | |||
args.high_ms = 5000; | |||
args.rx_pkts_threshold = 10; | |||
} else if (mode == 1) { | |||
args.logic = 2; | |||
args.low_ms = 200; | |||
args.high_ms = 800; | |||
args.rx_pkts_threshold = 10; | |||
} | |||
Afterwards, the WLC_SET_PM ioctl is issued with the argument value 2 (PM2). | |||
This is used by [[Network_Interface_services|nifm]]. | This is used by [[Network_Interface_services|nifm]]. |