[PATCH] wifi: ath12k: Use msdu_end to check MCBC

Vasanthakumar Thiagarajan quic_vthiagar at quicinc.com
Wed Apr 26 22:40:18 PDT 2023



On 4/27/2023 7:00 AM, Baochen Qiang wrote:
> We are seeing a very low TCP throughput testing with some specific
> tools. This is because for sub-frames of an AMSDU, MCBC flag in
> mpdu_start may be not valid, and as a result those frames would be
> dropped by kernel.
> 
> Change to get it from msdu_end.
> 
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
> 
> Signed-off-by: Baochen Qiang <quic_bqiang at quicinc.com>
> ---
>   drivers/net/wireless/ath/ath12k/hal.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/hal.c b/drivers/net/wireless/ath/ath12k/hal.c
> index 0ec53afe9915..980ec2024b37 100644
> --- a/drivers/net/wireless/ath/ath12k/hal.c
> +++ b/drivers/net/wireless/ath/ath12k/hal.c
> @@ -889,8 +889,8 @@ static u8 *ath12k_hw_wcn7850_rx_desc_mpdu_start_addr2(struct hal_rx_desc *desc)
>   
>   static bool ath12k_hw_wcn7850_rx_desc_is_mcbc(struct hal_rx_desc *desc)
>   {
> -	return __le32_to_cpu(desc->u.wcn7850.mpdu_start.info6) &
> -	       RX_MPDU_START_INFO6_MCAST_BCAST;
> +	return __le32_to_cpu(desc->u.wcn7850.msdu_end.info5) &
> +	       RX_MSDU_END_INFO5_DA_IS_MCBC;

Please note that RX_MSDU_END_INFO5_DA_IS_MCBC is to notify if the DA 
address is mc/bc while RX_MPDU_START_INFO6_MCAST_BCAST is to inform
if the RA (addr1) is mc/bc. Both may not be used interchangeably, for 
example if we want to enable PN replay check for mc/bc frames we need
to use RX_MPDU_START_INFO6_MCAST_BCAST. You can probably define a new
call back for da_mc_bc check instead of modifying the same callback.

Vasanth




More information about the ath12k mailing list