Commit Graph

260 Commits

Author SHA1 Message Date
Arif Hussain
a1e18b6b7d qcacmn: Add dfs public structure file
Add dfs public structure file.

Change-Id: Id34164da42d2d7b593fcb86ebd585140cd263f6e
CRs-Fixed: 2017481
2017-04-15 23:02:16 -07:00
Abhijit Pradhan
32eb664610 qcacmn: dfs_ioctl header file is moved to common services
dfs_ioctl header file is used by both mlme and dfs module.

Change-Id: Iafe0e38a97454418444e6489439f375d26928fe2
CRs-Fixed: 2001106
2017-04-11 11:04:38 -07:00
Abhijit Pradhan
312638baa2 qcacmn: NULL check added before calling dfs_tx_ops
Change-Id: Ic101351c23a4e4d1e893f131f1d6ecb31ac77952
CRs-Fixed: 2026054
2017-03-30 07:23:16 -07:00
Abhijit Pradhan
38ae892add qcacmn: DFS componentization (DFS Dispatcher)
DFS module provides  these public APIs for other modules to call DFS
functions.

Change-Id: I4f703416d7afe97d2304033b1c3b6c31914a83bb
CRs-Fixed: 2001106
2017-03-22 21:19:39 -07:00
Abhijit Pradhan
eab1923f7e qcacmn: DFS componentization (RADAR event notification)
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
2017-03-22 00:52:55 -07:00
Abhijit Pradhan
49f69436c2 qcacmn: DFS componentization (NOL)
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
2017-03-22 00:52:53 -07:00
Abhijit Pradhan
189e80817f qcacmn: DFS componentization (Zero CAC)
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
2017-03-22 00:52:52 -07:00
Abhijit Pradhan
08748c89fb qcacmn: DFS componentization (CAC)
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
2017-03-22 00:52:50 -07:00
Abhijit Pradhan
752ce0a9de qcacmn: DFS componentization (Filter Tables)
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
2017-03-22 00:52:49 -07:00
Abhijit Pradhan
af7d7da0cc qcacmn: DFS componentization Initial version
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
2017-03-22 00:52:48 -07:00