Преглед изворни кода

qca-wifi: Provide 20/40/80MHz Agile DFS support

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
Vignesh Mohan пре 6 година
родитељ
комит
245170b6a6
1 измењених фајлова са 649 додато и 252 уклоњено
  1. 649 252
      umac/dfs/core/src/misc/dfs_zero_cac.c

Разлика између датотеке није приказан због своје велике величине
+ 649 - 252
umac/dfs/core/src/misc/dfs_zero_cac.c


Неке датотеке нису приказане због велике количине промена