qcacmn: Add support for intra-bss forwarding
pkts should be forwarded from one STA to another STA belonging to same VAP from within the driver Change-Id: I68eb0dd91f7ac54352b4882ffdb9d5d53d627db1 Conflicts: dp/wifi3.0/dp_rx.c dp/wifi3.0/dp_types.h Conflicts: dp/wifi3.0/dp_rx.c Change-Id: I68eb0dd91f7ac54352b4882ffdb9d5d53d627db1
This commit is contained in:

committed by
Sandeep Puligilla

parent
975bf37ab6
commit
6f6166e36c
@@ -1252,6 +1252,81 @@ QDF_STATUS hal_rx_mpdu_get_addr2(uint8_t *buf, uint8_t *mac_addr)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
#define HAL_RX_MSDU_END_DA_IDX_GET(_rx_msdu_end) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_msdu_end, \
|
||||
RX_MSDU_END_13_DA_IDX_OFFSET)), \
|
||||
RX_MSDU_END_13_DA_IDX_MASK, \
|
||||
RX_MSDU_END_13_DA_IDX_LSB))
|
||||
|
||||
/**
|
||||
* hal_rx_msdu_end_da_idx_get: API to get da_idx
|
||||
* from rx_msdu_end TLV
|
||||
*
|
||||
* @ buf: pointer to the start of RX PKT TLV headers
|
||||
* Return: da index
|
||||
*/
|
||||
static inline uint16_t
|
||||
hal_rx_msdu_end_da_idx_get(uint8_t *buf)
|
||||
{
|
||||
struct rx_pkt_tlvs *pkt_tlvs = (struct rx_pkt_tlvs *)buf;
|
||||
struct rx_msdu_end *msdu_end = &pkt_tlvs->msdu_end_tlv.rx_msdu_end;
|
||||
uint16_t da_idx;
|
||||
|
||||
da_idx = HAL_RX_MSDU_END_DA_IDX_GET(msdu_end);
|
||||
|
||||
return da_idx;
|
||||
}
|
||||
|
||||
#define HAL_RX_MSDU_END_DA_IS_VALID_GET(_rx_msdu_end) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_msdu_end, \
|
||||
RX_MSDU_END_5_DA_IS_VALID_OFFSET)), \
|
||||
RX_MSDU_END_5_DA_IS_VALID_MASK, \
|
||||
RX_MSDU_END_5_DA_IS_VALID_LSB))
|
||||
|
||||
/**
|
||||
* hal_rx_msdu_end_da_is_valid_get: API to check if da is valid
|
||||
* from rx_msdu_end TLV
|
||||
*
|
||||
* @ buf: pointer to the start of RX PKT TLV headers
|
||||
* Return: da_is_valid
|
||||
*/
|
||||
static inline uint8_t
|
||||
hal_rx_msdu_end_da_is_valid_get(uint8_t *buf)
|
||||
{
|
||||
struct rx_pkt_tlvs *pkt_tlvs = (struct rx_pkt_tlvs *)buf;
|
||||
struct rx_msdu_end *msdu_end = &pkt_tlvs->msdu_end_tlv.rx_msdu_end;
|
||||
uint8_t da_is_valid;
|
||||
|
||||
da_is_valid = HAL_RX_MSDU_END_DA_IS_VALID_GET(msdu_end);
|
||||
|
||||
return da_is_valid;
|
||||
}
|
||||
|
||||
#define HAL_RX_MSDU_END_DA_IS_MCBC_GET(_rx_msdu_end) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_msdu_end, \
|
||||
RX_MSDU_END_5_DA_IS_MCBC_OFFSET)), \
|
||||
RX_MSDU_END_5_DA_IS_MCBC_MASK, \
|
||||
RX_MSDU_END_5_DA_IS_MCBC_LSB))
|
||||
|
||||
/**
|
||||
* hal_rx_msdu_end_da_is_mcbc_get: API to check if pkt is MCBC
|
||||
* from rx_msdu_end TLV
|
||||
*
|
||||
* @ buf: pointer to the start of RX PKT TLV headers
|
||||
* Return: da_is_mcbc
|
||||
*/
|
||||
static inline uint8_t
|
||||
hal_rx_msdu_end_da_is_mcbc_get(uint8_t *buf)
|
||||
{
|
||||
struct rx_pkt_tlvs *pkt_tlvs = (struct rx_pkt_tlvs *)buf;
|
||||
struct rx_msdu_end *msdu_end = &pkt_tlvs->msdu_end_tlv.rx_msdu_end;
|
||||
uint8_t da_is_mcbc;
|
||||
|
||||
da_is_mcbc = HAL_RX_MSDU_END_DA_IS_MCBC_GET(msdu_end);
|
||||
|
||||
return da_is_mcbc;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* RX ERROR APIS
|
||||
******************************************************************************/
|
||||
|
Reference in New Issue
Block a user