qcacmn: populate RSSI for the neighbor clients

Populate the RSSI value for the non associated clients
added in pdev->neighbour_peers_list from monitor status
ring

Change-Id: I509d06bec6eafe8377681c8a3da9a64f301c3c73
CRs-fixed: 2286571
This commit is contained in:
Chaithanya Garrepalli
2018-07-24 18:52:27 +05:30
committad av nshrivas
förälder 3756b7603e
incheckning 95fc62f8fc
7 ändrade filer med 178 tillägg och 74 borttagningar

Visa fil

@@ -139,6 +139,8 @@
#define HAL_RX_GET_MSDU_AGGREGATION(rx_desc, rs)
#endif
#define HAL_MAC_ADDR_LEN 6
enum {
HAL_HW_RX_DECAP_FORMAT_RAW = 0,
HAL_HW_RX_DECAP_FORMAT_NWIFI,
@@ -416,11 +418,26 @@ struct hal_rx_msdu_payload_info {
uint32_t payload_len;
};
/**
* struct hal_rx_nac_info - struct for neighbour info
* @fc_valid: flag indicate if it has valid frame control information
* @to_ds_flag: flag indicate to_ds bit
* @mac_addr2_valid: flag indicate if mac_addr2 is valid
* @mac_addr2: mac address2 in wh
*/
struct hal_rx_nac_info {
uint8_t fc_valid;
uint8_t to_ds_flag;
uint8_t mac_addr2_valid;
uint8_t mac_addr2[HAL_MAC_ADDR_LEN];
};
struct hal_rx_ppdu_info {
struct hal_rx_ppdu_common_info com_info;
struct hal_rx_ppdu_user_info user_info[HAL_MAX_UL_MU_USERS];
struct mon_rx_status rx_status;
struct hal_rx_msdu_payload_info msdu_info;
struct hal_rx_nac_info nac_info;
/* status ring PPDU start and end state */
uint32_t rx_state;
};
@@ -1275,6 +1292,31 @@ hal_rx_status_get_tlv_info(void *rx_tlv_hdr, struct hal_rx_ppdu_info *ppdu_info,
uint32_t ppdu_id = HAL_RX_GET(rx_mpdu_start, RX_MPDU_INFO_0,
PHY_PPDU_ID);
ppdu_info->nac_info.fc_valid =
HAL_RX_GET(rx_mpdu_start,
RX_MPDU_INFO_2,
MPDU_FRAME_CONTROL_VALID);
ppdu_info->nac_info.to_ds_flag =
HAL_RX_GET(rx_mpdu_start,
RX_MPDU_INFO_2,
TO_DS);
ppdu_info->nac_info.mac_addr2_valid =
HAL_RX_GET(rx_mpdu_start,
RX_MPDU_INFO_2,
MAC_ADDR_AD2_VALID);
*(uint16_t *)&ppdu_info->nac_info.mac_addr2[0] =
HAL_RX_GET(rx_mpdu_start,
RX_MPDU_INFO_16,
MAC_ADDR_AD2_15_0);
*(uint32_t *)&ppdu_info->nac_info.mac_addr2[2] =
HAL_RX_GET(rx_mpdu_start,
RX_MPDU_INFO_17,
MAC_ADDR_AD2_47_16);
if (ppdu_info->rx_status.prev_ppdu_id != ppdu_id) {
ppdu_info->rx_status.prev_ppdu_id = ppdu_id;
ppdu_info->rx_status.ppdu_len =