The functions process the RADAR pulses. If Radar is found then it sends
RADAR found notification, marks the channel as RADAR and add the RADAR
infected channel to NOL.
Change-Id: Ic53d6408bf32c24826b7ef97eee3657adac8ef90
CRs-Fixed: 2001106
NOL stands for non-occupancy list. After RADAR has been detected in a
particular channel, the channel cannot be used for a period of 30 minutes,
which is called the non-occupancy. The NOL is basically a list of all the
channels on which RADAR has been detected. Each channel has a 30-minute
timer associated with it.
Change-Id: Ie823ef86a4109ff200c9bb2307711d17ff3f9876
CRs-Fixed: 2001106
Operation in a DFS channel requires CAC that adds additional
delay as well as loss of connection even when CSA is used. ETSI allows
pre-CAC, i.e. performing CAC at a convenient time and using that channel
later. Once Pre-CAC is done in a channel, it is no longer required to
perform a CAC in the channel before TX/RX as long as radar is not found
in it or we reset or restart the device.
Change-Id: Ic1896f7881c12606f1edc20c60cd4bb2ab63821c
CRs-Fixed: 2001106
Channel Availability Check (CAC) Time: The time a system shall
monitor a channel for the presence of RADAR prior to initiating
a communications link on that channel.
It is implemented using one-shot timer.
Change-Id: Iacf33681006cd8ee87e26fe63a852ff44a932e31
CRs-Fixed: 2001106
Whenever the hardware detects a RADAR PHY error, it generates an interrupt
and the MAC layer provides the RSSI value, Pulse width, Timestamp on the
collected data, and FFT data to Software.
There is an event queue associated with RADAR detection. The RSSI, pulse
width, and time stamp is stored in the queue by the interrupt handler.
There is a DFS timer task that reads the entries in the queue associated
with RADAR detection. It checks the time stamp, RSSI, and pulse width
value against the PRI, RSSI, and pulse width defined in the RADAR filter
table. If any entry of the table mactches then it announces RADAR is found.
Change-Id: I71bf88c77eb5baa4984bdc2181ca27008d641469
CRs-Fixed: 2001106
The main task of the Dynamic Frequency Selection (DFS) component is to
analyze RADAR pulses and declare RADAR detected if a filter match is
found. The DFS component also performs channel availability Check (CAC),
stores Non Occupancy List (NOL), and selects a random channel from a
list of available channels. This componentization of DFS code brings all
the scattered code into a single place, which makes it is easy to maintain
and also easy to move the component to a desired software layer with
minimal effort. Any DFS data structure and code must be accessed through
the public APIs provided in the DFS dispatcher.
This commit contains only Filtering part. Next and subsequent commits will
contain: Filter Tables, CAC, Zero CAC, NOL, RADAR event notification, and
DFS Dispatcher.
Change-Id: I2c21f7752545eb910c48ade630ceba74053cc019
CRs-Fixed: 2001106