In the current Agile DFS design it is assumed that the agile detector's
bandwidth is always 80Mhz. However, the agile detector inherits the
bandwidth of the current operating channel with the following
mapping:
Current Chan BW --- > AGILE BW
20 20
40 40
80/80+80/160 80
Provide support for Agile DFS on 20/40/80MHz channels based on the
current channel's bandwidth. Maintain a Binary Search Forest,
with each Binary Search Tree (BSTree) rooted by an 80MHz channel
structure. These BSTrees are connected by the preCAC list.
The primary key (identifier) of each node in the BSTree is an IEEE
channel. Each level of the BSTree has a unique bandwidth.
Remove the three existing precac lists: precac_required_list,
precac_done_list, precac nol_list.
Maintain
1) regular CAC and preCAC
2) regular NOL and preCAC NOL
information in the same Binary Search Forest.
Operations available on the preCAC BSF:
1. Allocate nodes of each tree in the forest:
Use level order BST insertion to create and add individual nodes of
the tree.
2. Deallocate nodes of each tree in the forest:
Use an algorithm to add current node's right subtree to the last leaf
node and remove left nodes (from the root) iteratively [O(N)].
3. Print precac tree states:
Use morris preorder tree traversal to print the states of the nodes
in the entire forest.
User space command: radartool -i wifi[x] showprecaclists.
Example: For a HT80 channel list,
[Syntax of each node: <center_channel_ieee>(<CAC_status>,<NOL_status>)]
106(0,0)
|
|------- 102(0,0)
| |
| |------- 100(0,0)
| |
| |------- 104(0,0)
|
|------- 110(0,0)
| |
| |------- 108(0,0)
| |
| |------- 112(0,0)
4. Find a channel for preCAC for a given bandwidth:
Use the current status of the node to find the appropriate channel
from the Forest based on it's bandwidth. [O(N)]
5. Find if channel is preCAC done:
Search the tree (Binary tree search) which has the channel requested
and return the CAC status.
6. Mark/unmark the channel as CAC done:
Given a channel, find all 20MHz subchannels and mark/unmark as CAC
completed.
7. Mark/unmark the channel as NOL:
Given a channel, find all 20MHz subchannels and mark/unmark as NOL.
CRs-Fixed: 2464929
Change-Id: If4a806207025edfd9e9b99de310963bb8a3a5007
Add WMI support for vdev delete all
peer request which will replace individual peer
delete of peers under a vdev during vdev down.
Change-Id: I797519868c3e9b8e6a163f2857dfa2bd93e630d9
CRs-Fixed: 2477638
htt_command_record, htt_event_record, htt_wbm_event_record
function is used to log command,event, wbm event to
in-memory data-structure.This function is exported and can
be called to record htt comamnd/event.
Change-Id: I8f917183d26a219543d235d4dc6117839e3f33db
CRs-Fixed: 2428751
Add max user_id check while accessing ppdu_info->rx_msdu_info[]
to avoid out of bound array access.
Change-Id: I776aaec4d4e18e0f9af0b28718e61c81e9e32eab
In TX packet capture, we expect wbm to comes in order
but sometimes we see it comes out of order. During that case we
free msdu and mpdu that we recreate for ppdu.
Change-Id: Id8e6082ade4e3d24937af490014c0fe4152906d8
Add counters for vdev delete all peer requests
and responses in cp_state component.
Change-Id: Ifbd9a35abe32b3e20db1ac784e1db78b415e46f2
CRs-Fixed: 2477610
Before this change when peer rate stats are enabled,
TX/RX_PPDU_DESC nbuf was getting free in ol_ath_sched_ppdu_stats()
which is not proper as whoever is consumer should free the buffer.
Change-Id: I0543072ddca7aa14e9092864a8c07229072925a5
CRs-Fixed: 2451257
Fix cpu stall during TX capture feature enable
and copy and expand sk_buff is used instead of
expanding sk_buff header alone.
Change-Id: I100e13304f4e1cd3dfabd3d6177d658be8fcb31f
We are moving multicast enhancement feature out of common code.
As part of this change move the APIs to component dev.
Change-Id: I2e6cecdf7a690416544825e8c51e04c4484ddde0
When the CAC timer is in progress and radar is detected, a NULL pointer
dereference is observed when the radar detected channels are removed
from etsi required lists and added to NOL.
This issue is seen as the next etsi precac entry in the etsi required
list is freed instead of the current etsi precac entry.
This issue is fixed by freeing the current etsi precac entry in the
etsi precac required list.
Change-Id: I609174b23b0d6d2ea36ca26b011359dcf5876c3a
CRs-Fixed: 2463762
ppdu_cookie extracted from ppdu htt completion in user stats tlv is
copied to mpdu_info which is delivered to upper layer
Change-Id: I9c3b5a86b345b5f5545ec81b41b682c82547d5f5
Currently if InterCAC support is enabled:
1. If the user configures a DFS channel in 80MHz mode, the
radio switches to an intermediate channel and the user
desired channel is added on the top of the lists of the
channels to be CACed using AgileDFS.
2. If the user configures a DFS channel in 160MHz mode, the
radio switches to an intermediate channel and the user
desired channel is split into two 80MHz channels and are
added on the top of the list.
3. After agile CAC is completed on the user configured channel,
the radio stays on the intermediate channel.
Change the current channel (and mode) back to user desired
channel, after agile CAC is completed on the desired channel.
Change-Id: Ib3e7757316ebddfc75f1b1f1f4bb8c5debd04d62
CRs-Fixed: 2448224
dp_tx_mec_handleri,dp_rx_wds_add_or_update_ast,
dp_rx_wds_srcport_learn were changed inside common dp.
As part of cleanup we have moved it to component
dev.This change adopts to the latest dp_tx_mec_handler version.
With this change we are moving dp_peer_teardown_wifi3 to common code as
it is also required by MCL driver code.
Change-Id: Ieba59ceb2f3a3b21f3588fe2685e0dc720ee049a
Fix memleak on Rx enhanced capture mode. Adding frag list on the
cloned buffer causing the memory leak. Allocate a MPDU control
block. The MPDU header(128 bytes) and mdsu headers(128 bytes)
link list is attached to MPDU control block frag list. The MPDU
control block is sent to osif layer to send to network stack.
Change-Id: If6c81b9d1027dfbb12277574fe9598f6fb8c5eca
Convert host param id to target param id using arrays
instead of switch case. This enables removal of
CONFIG_MCL compile time macro and use specific macro
ENABLE_HOST_TO_TARGET_CONVERSION for conversion
Change-Id: I4dae15baac0c74846155a5f1ee3328dfc2f28ad5
CRs-Fixed: 2418030