qcacmn: Check for addr4 valid only in case of first MSDU

In backhaul WDS, Check for addr4 valid only when the
received frame is first msdu.

Change-Id: Ib92ba0fc8b7a651c0c875cdde21f2d5538db2a32
CRs-Fixed: 3214575
Tento commit je obsažen v:
Sai Rupesh Chevuru
2022-06-07 13:07:18 +05:30
odevzdal Madan Koyyalamudi
rodič 242339083b
revize 5c0f11603d

Zobrazit soubor

@@ -66,12 +66,14 @@ dp_rx_wds_learn(struct dp_soc *soc,
* @soc: DP soc
* @ta_txrx_peer: WDS repeater txrx peer
* @rx_tlv_hdr : start address of rx tlvs
* @nbuf: RX packet buffer
*
* Return: void
*/
static inline void dp_wds_ext_peer_learn_be(struct dp_soc *soc,
struct dp_txrx_peer *ta_txrx_peer,
uint8_t *rx_tlv_hdr)
uint8_t *rx_tlv_hdr,
qdf_nbuf_t nbuf)
{
uint8_t wds_ext_src_mac[QDF_MAC_ADDR_SIZE];
struct dp_peer *ta_base_peer;
@@ -85,7 +87,8 @@ static inline void dp_wds_ext_peer_learn_be(struct dp_soc *soc,
&ta_txrx_peer->wds_ext.init))
return;
if (hal_rx_get_mpdu_mac_ad4_valid_be(rx_tlv_hdr)) {
if (qdf_nbuf_is_rx_chfrag_start(nbuf) &&
hal_rx_get_mpdu_mac_ad4_valid_be(rx_tlv_hdr)) {
qdf_atomic_test_and_set_bit(WDS_EXT_PEER_INIT_BIT,
&ta_txrx_peer->wds_ext.init);
@@ -109,7 +112,8 @@ static inline void dp_wds_ext_peer_learn_be(struct dp_soc *soc,
#else
static inline void dp_wds_ext_peer_learn_be(struct dp_soc *soc,
struct dp_txrx_peer *ta_txrx_peer,
uint8_t *rx_tlv_hdr)
uint8_t *rx_tlv_hdr,
qdf_nbuf_t nbuf)
{
}
#endif
@@ -121,7 +125,7 @@ dp_rx_wds_learn(struct dp_soc *soc,
qdf_nbuf_t nbuf,
struct hal_rx_msdu_metadata msdu_metadata)
{
dp_wds_ext_peer_learn_be(soc, ta_txrx_peer, rx_tlv_hdr);
dp_wds_ext_peer_learn_be(soc, ta_txrx_peer, rx_tlv_hdr, nbuf);
}
#endif