Adding new metrics to existing RDK Plume statistics
PHY Metrics Tx
1. phy_rate_actual_su - Single User Rate
2. phy_rate_actual_mu - Multi User Rate
3. ofdma_usage - OFDMA Usage count
4. mu_mimo_usage - MU MIMO Usage count
5. bw_usage_avg - Average BW
6. bw_usage_max - Max BW Ratio to total PPDUs
7. pkt_error_rate(mpdu) - MPDU packet error rate
8. num_ppdus - Number of PPDUs
9. num_bytes - Number of PPDU bytes
PHY Metrics Rx
1. phy_rate_actual_su - Single User Rate
2. phy_rate_actual_mu - Multi User Rate
3. ofdma_usage - OFDMA Usage count
4. mu_mimo_usage - MU MIMO Usage count
5. bw_usage_avg - Average BW
6. bw_usage_max - Max BW Ratio to total PPDUs
7. pkt_error_rate(mpdu) - MPDU packet error rate
8. num_ppdus - Number of PPDUs
9. num_bytes - Number of PPDU bytes
RSSI
1. su_rssi - Single user Rx RSSI
2. ack_rssi - ACK RSSI
CRs-Fixed: 2740231
Change-Id: Ie62157195d87f61640aa7bc65b2f02f629ff195d
The radar found action on a agile channel is a WIN specific action. It was
combined with the current channel radar detection making the function huge
and difficult to read.
Separate the WIN specific agile radar action and define in it as WIN
specific.
Change-Id: I79ed61ae80a2870dff9775b9435069c50584ca83
CRs-fixed: 2738015
Adds support to enable/disable Mirrored Streaming
Classification Service Procedure in vap level.
Change-Id: I2e27f0be294e1792ba9a6ad7a0354515c5ee6cc0
CRs-Fixed: 2687735
In few scenarios,dp_get_pdev_lmac_id shall returns null.
To avoid this added a null pointer check to avoid the dereference issues.
Change-Id: I5a859c81295a49afd3fc083c6611eceec414d2ca
In case of a current channel being a 5GHz DFS channel, a channel change
may be triggered by a radar detection. The next channel is automatically
selected by a random channel selection algorithm in this case. However,
if the current channel is a 6GHz channel and we need to switch to a 5GHz
channel then 5GHz channel should be provided a user or another channel
selection algorithm. At the time, when the device is starting its
operation on a 6GHz channel , the next 5GHz channel that a user
(or another another channel selection algorithm) is going to select
is unknown. Therefore, the probability that the next channel selected
by a user (or another channel selection algorithm) will match the RCAC
channel returned by random channel selection, is very low. Therefore,
do not select a random channel for RCAC if the current operating channel
is a 6G channel for now.
Change-Id: I9aef64cea1d442fc31b2314da08baba7769650f2 has the following
change :
The macro WLAN_IS_CHAN_MODE_x(_c) checked if mode is 'x' as well as if
the channel was a 5G channel. However with wideband changes this macro
will return true if mode is 'x' for both 5G and 6G channels. Hence adding
a separate 5G check for functions where the channel must be a 5G channel.
With WLAN_IS_CHAN_MODE_x(_c) now a 6G channel will pass
the checks in dfs_is_precac_done which would cause regression. Hence a
5G check has been added to prevent this.
Change-Id: Iee5e965f0bc99565cb5ea77d88998d5530f24153
For the 16M low memory profile a few feature macros were disabled which
led to unavailability of a few APIs.
Add empty definitions for these APIs when the corresponding feature
macros are disabled.
Change-Id: I1f7790196ae8383eac40f5869992fd06ede3e5dc
Introduce enums for set DFS postNOL frequency and mode and add
the corresponding members in the set and get command structure.
Change-Id: I3e25ee3aaf0c165a2923667a3210f2cc8af0af4a
The requirement is to provide a user configurable command to enable 6G
additional operating triplets within the Country IE.
The user can set the maximum bandwidth by applying the following
algorithm:
1) To enable only opclass 131, set the maximum bandwidth value as 20.
2) To enable upto opclass 132, set the maximum bandwidth value as 40.
3) To enable upto opclass 133, set the maximum bandwidth value as 80.
4) To enable upto opclass 134, set the maximum bandwidth value as 160.
The above requirement is configurable via a cfg80211tool
command:
cfg80211tool wifix enable_additional_triplets <max_bw value>
Command to fetch the max_bw set:
cfg80211tool wifix g_enable_additional_triplets.
Change-Id: I38d60afa5c6fd888b418eec29448bca661554659
CRs-Fixed: 2731637
Following is the list of changes :-
1. Add an API dfs_agile_precac_cleanup to reset all dfs variables
while going from running to init state.
2. Add a parameter is_chan_found to dfs_prepare_agile_precac_chan and
make it true if a channel is available for PrCAC/RCAC.
3. Post event done to Agile SM when firmware returns ocac complete for
a particular agile channel.
4. Post event done if preCAC timer expires from driver for a particular
agile channel.
5. Remove the zero second timer mechanism of starting of Agile PreCAC,
instead regulate it completely using the Agile SM.
6. Add API dfs_is_agile_cac_enabled which checks if either PreCAC/RCAC
is enabled. Events are not posted to the Agile SM if none of these
are enabled.
7. Add API dfs_abort_agile_precac used to send abort to F/W for that
specific DFS index.
8. Add API dfs_init_agile_start_evt_handler to handle the start event in
init state of Agile SM. This checks if a channel is available for
PreCAC/RCAC.
9. In init and running state of the SM handle events for both PreCAC and
RCAC, while complete state is for RCAC alone.
10. Following is the algorithm implemented in the Agile SM :
The Agile SM is per psoc, create it when the psoc is created.
|
On receiving the VAP start resp, send a start event to the SM in
init state. In the start event handler check if a PreCAC/RCAC channel
is available and if found configure the agile channel params and send
a WMI to F/W.
|
A OCAC complete is received on completion of CAC by F/W or the host
timer might expire. In either case mark the channel as CAC done.
Check if interCAC was running and the channel is the des chan, if so
a primary channel change is automatically triggered.
|
In the event of mode switch/scan start/VAP down/primary channel change
while PreCAC is running a stop event is received. Clear all dfs
structures and go to init state.
|
On receiving a radar in the Agile channel, go to the init state and
set event as start. Radar in primary channel is taken care of by
ensuing VAP down up.
|
When no other channels are pending PreCAC, clean all dfs structures
and remain in the init state. PreCAC uses only init and running
states of the SM.
Change-Id: I231c79d381c7c3e192bea8ebff1ee6b5dc4a3cfa
Both (ETSI) PreCAC and RCAC are going to use use the same state
machine. The state machine drives the Agile engine and not very specific
to RCAC or PreCAC, therefore let the state machine be called agile state
machine and change the names of all the associated variables accordingly.
In this preparatory change, modify names of all APIs, states and events
to make them common to Agile RCAC and Agile PreCAC
Change-Id: I83835e0295bc97e1099c0e01fc6b2fce62437872
Function to notify HMWDS ast add status to upper layers via
newly added WDI event WDI_EVENT_HMWDS_AST_ADD_STATUS
Change-Id: Ib6fad7a48425ce7de16d94bb401af0c428c8e556
CRs-Fixed: 2745460
While monitor ring processing, do not assign ppdu_id to
pdev->com_info.ppdu_id in order to avoid duplication at HAL layer
processing
Change-Id: I2ab8e955bba7494c2fca45d8be9dbf2a5eb8c4bc
CRs-Fixed: 2740395
If START request is deferred due to RESTART pending logic, in few cases
it is leading to configuring two channels to FW.
This change checks desired channel of START req deferred VDEVs and updates
the desired channel with RESTART VDEV's desired channel
Change-Id: Ic69c10c08fd4d83aafcab97a71ce906564ab51f6
CRs-Fixed: 2713931