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
This commit is contained in:

committed by
Madan Koyyalamudi

parent
242339083b
commit
5c0f11603d
@@ -66,12 +66,14 @@ dp_rx_wds_learn(struct dp_soc *soc,
|
|||||||
* @soc: DP soc
|
* @soc: DP soc
|
||||||
* @ta_txrx_peer: WDS repeater txrx peer
|
* @ta_txrx_peer: WDS repeater txrx peer
|
||||||
* @rx_tlv_hdr : start address of rx tlvs
|
* @rx_tlv_hdr : start address of rx tlvs
|
||||||
|
* @nbuf: RX packet buffer
|
||||||
*
|
*
|
||||||
* Return: void
|
* Return: void
|
||||||
*/
|
*/
|
||||||
static inline void dp_wds_ext_peer_learn_be(struct dp_soc *soc,
|
static inline void dp_wds_ext_peer_learn_be(struct dp_soc *soc,
|
||||||
struct dp_txrx_peer *ta_txrx_peer,
|
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];
|
uint8_t wds_ext_src_mac[QDF_MAC_ADDR_SIZE];
|
||||||
struct dp_peer *ta_base_peer;
|
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))
|
&ta_txrx_peer->wds_ext.init))
|
||||||
return;
|
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,
|
qdf_atomic_test_and_set_bit(WDS_EXT_PEER_INIT_BIT,
|
||||||
&ta_txrx_peer->wds_ext.init);
|
&ta_txrx_peer->wds_ext.init);
|
||||||
|
|
||||||
@@ -109,7 +112,8 @@ static inline void dp_wds_ext_peer_learn_be(struct dp_soc *soc,
|
|||||||
#else
|
#else
|
||||||
static inline void dp_wds_ext_peer_learn_be(struct dp_soc *soc,
|
static inline void dp_wds_ext_peer_learn_be(struct dp_soc *soc,
|
||||||
struct dp_txrx_peer *ta_txrx_peer,
|
struct dp_txrx_peer *ta_txrx_peer,
|
||||||
uint8_t *rx_tlv_hdr)
|
uint8_t *rx_tlv_hdr,
|
||||||
|
qdf_nbuf_t nbuf)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -121,7 +125,7 @@ dp_rx_wds_learn(struct dp_soc *soc,
|
|||||||
qdf_nbuf_t nbuf,
|
qdf_nbuf_t nbuf,
|
||||||
struct hal_rx_msdu_metadata msdu_metadata)
|
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
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user