Dear all, We're now in the final DFS development stage and planning to release RFC patchsets (both hostapd and nl/cfg/mac80211) in the next week or so. Main idea =================== DFS master algorithm is implemented in the hostapd, while nl/cfg/mac80211 will pipe relevant commands/events to the driver/hostapd. Based on the assumption that the device/driver supports radar interference detection i.e., it is capable to generate radar_detected event by using different pattern detection techniques: 1. Pattern detection in the HW: the device generates 'radar_detected' events. 2. Pattern detection in the driver: the driver receives radar pulses from the device and generates 'radar_detected' events. Main DFS procedures =================== 1. Hostapd gets driver's DFS capabilities. 2. If 80211h is enabled in the hostapd.conf and the driver supports one of the above radar detection techniques, hostapd may use DFS channels. 3. Hostapd selects an operational channel (default from hostapd.conf), if selected channel is a DFS channel, hostapd sends start_radar_detection command to the device/driver which starts monitoring for radar interference while hostapd sets a timer for a CAC (Channel Availability Check) time, which is 60 seconds (DFS spec). 4. As CAC timer expires and no radar has been detected, hostapd may continue with the init flow, otherwise if interference is detected hostapd randomly selects another channel (later on this can be changed to ACS). If the new channel is also a DFS channel hostapd performs CAC once again, while the original channel is added to a "black list" for a period of ''No-Occupancy'' time (time that the channel can't be used/selected). 5. While using the channel the device/driver continuously monitors for potential radar interference. If interference is detected hostapd notified with 'radar detected' event, which selects a new channel and triggers a channel switch procedure, if the new channel is also a DFS channel, hostapd performs the CAC test, once it's successfully passed hostapd instructs the driver to initiate the transmission on the channel. Enclosed: 1. dfs_init_flow.jpeg: Which illustrates DFS init flow. 2. radar_event_channel_switch.jpeg: Which illustrates radar_detection event and the channel switch procedure. -- Thanks, Victor.
Attachment:
dfs_init_flow.jpeg
Description: JPEG image
Attachment:
radar_event_channel_switch.jpeg
Description: JPEG image