qcacmn: New TLV sequence supporting for UL OFDMA in monitor mode
According to the ucode and mac team, the new TB-PPDU (UL OFDMA Dat frame) from any other users using the TLV's fields below: * PHYRX_RSSI_LEGACY (has a reception type field that is set to UL-MU) * PHYRX_RSSI_HT * PHYRX_COMMON_USER_INFO (has a reception type field that is set to UL-MU) * PHYRX_USER_INFO (has more detailed modulation info) * PHYRX_USER_INFO (Could be more than one) ... * PHYRX_DATA * PHYRX_DATA (Could be more than one) CRs-Fixed: 2329959 Change-Id: Ib5fa1734a5525d2b2d1db8756166f259be30b9c0
This commit is contained in:
@@ -1056,6 +1056,7 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
|
||||
}
|
||||
case WIFIPHYRX_RSSI_LEGACY_E:
|
||||
{
|
||||
uint8_t reception_type;
|
||||
uint8_t *rssi_info_tlv = (uint8_t *)rx_tlv +
|
||||
HAL_RX_OFFSET(UNIFIED_PHYRX_RSSI_LEGACY_3,
|
||||
RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS);
|
||||
@@ -1065,6 +1066,22 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
|
||||
ppdu_info->rx_status.bw = hal->ops->hal_rx_get_tlv(rx_tlv);
|
||||
ppdu_info->rx_status.he_re = 0;
|
||||
|
||||
reception_type = HAL_RX_GET(rx_tlv,
|
||||
PHYRX_RSSI_LEGACY_0,
|
||||
RECEPTION_TYPE);
|
||||
switch (reception_type) {
|
||||
case QDF_RECEPTION_TYPE_ULOFMDA:
|
||||
ppdu_info->rx_status.ulofdma_flag = 1;
|
||||
ppdu_info->rx_status.he_data1 =
|
||||
QDF_MON_STATUS_HE_TRIG_FORMAT_TYPE;
|
||||
break;
|
||||
case QDF_RECEPTION_TYPE_ULMIMO:
|
||||
ppdu_info->rx_status.he_data1 =
|
||||
QDF_MON_STATUS_HE_MU_FORMAT_TYPE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
value = HAL_RX_GET(rssi_info_tlv,
|
||||
RECEIVE_RSSI_INFO_0, RSSI_PRI20_CHAIN0);
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
|
||||
|
@@ -200,6 +200,7 @@
|
||||
* @rs_flags: Flags to indicate AMPDU or AMSDU aggregation
|
||||
* @cck_flag: Flag to indicate CCK modulation
|
||||
* @ofdm_flag: Flag to indicate OFDM modulation
|
||||
* @ulofdma_flag: Flag to indicate UL OFDMA PPDU
|
||||
* @he_per_user_1: HE per user info1
|
||||
* @he_per_user_2: HE per user info2
|
||||
* @he_per_user_position: HE per user position info
|
||||
@@ -275,6 +276,7 @@ struct mon_rx_status {
|
||||
uint8_t rs_flags;
|
||||
uint8_t cck_flag;
|
||||
uint8_t ofdm_flag;
|
||||
uint8_t ulofdma_flag;
|
||||
/* New HE radiotap fields */
|
||||
uint16_t he_per_user_1;
|
||||
uint16_t he_per_user_2;
|
||||
@@ -512,6 +514,20 @@ enum qdf_proto_type {
|
||||
QDF_PROTO_TYPE_MAX
|
||||
};
|
||||
|
||||
/**
|
||||
* qdf_reception_type - reception type used by lithium phy TLV
|
||||
* @QDF_RECEPTION_TYPE_ULOFMDA - UL OFDMA
|
||||
* @QDF_RECEPTION_TYPE_ULMIMO - UL MIMO
|
||||
* @QQDF_RECEPTION_TYPE_FRAMELESS - Frame less
|
||||
* @QDF_RECEPTION_TYPE_OTHER - All the other types
|
||||
*/
|
||||
enum qdf_reception_type {
|
||||
QDF_RECEPTION_TYPE_ULOFMDA,
|
||||
QDF_RECEPTION_TYPE_ULMIMO,
|
||||
QDF_RECEPTION_TYPE_OTHER,
|
||||
QDF_RECEPTION_TYPE_FRAMELESS
|
||||
};
|
||||
|
||||
/**
|
||||
* cb_ftype - Frame type information in skb cb
|
||||
* @CB_FTYPE_INVALID - Invalid
|
||||
|
Reference in New Issue
Block a user