Merge "qcacmn: FR-64493 WDS Extended support"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
ada250b662
@@ -82,6 +82,39 @@ void dp_hmwds_ast_add_notify(struct dp_peer *peer,
|
|||||||
QDF_STATUS err,
|
QDF_STATUS err,
|
||||||
bool is_peer_map);
|
bool is_peer_map);
|
||||||
|
|
||||||
|
#ifdef QCA_SUPPORT_WDS_EXTENDED
|
||||||
|
/**
|
||||||
|
* dp_wds_ext_peer_learn() - function to send event to control
|
||||||
|
* path on receiving 1st 4-address frame from backhaul.
|
||||||
|
* @soc: DP soc
|
||||||
|
* @ta_peer: WDS repeater peer
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static inline void dp_wds_ext_peer_learn(struct dp_soc *soc,
|
||||||
|
struct dp_peer *ta_peer)
|
||||||
|
{
|
||||||
|
uint8_t wds_ext_src_mac[QDF_MAC_ADDR_SIZE];
|
||||||
|
|
||||||
|
if (ta_peer->vdev->wds_ext_enabled &&
|
||||||
|
!qdf_atomic_test_and_set_bit(WDS_EXT_PEER_INIT_BIT,
|
||||||
|
&ta_peer->wds_ext.init)) {
|
||||||
|
qdf_mem_copy(wds_ext_src_mac, &ta_peer->mac_addr.raw[0],
|
||||||
|
QDF_MAC_ADDR_SIZE);
|
||||||
|
soc->cdp_soc.ol_ops->rx_wds_ext_peer_learn(
|
||||||
|
soc->ctrl_psoc,
|
||||||
|
ta_peer->peer_id,
|
||||||
|
ta_peer->vdev->vdev_id,
|
||||||
|
wds_ext_src_mac);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline void dp_wds_ext_peer_learn(struct dp_soc *soc,
|
||||||
|
struct dp_peer *ta_peer)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_rx_wds_add_or_update_ast() - Add or update the ast entry.
|
* dp_rx_wds_add_or_update_ast() - Add or update the ast entry.
|
||||||
*
|
*
|
||||||
@@ -138,6 +171,7 @@ dp_rx_wds_add_or_update_ast(struct dp_soc *soc, struct dp_peer *ta_peer,
|
|||||||
(qdf_nbuf_data(nbuf) + QDF_MAC_ADDR_SIZE),
|
(qdf_nbuf_data(nbuf) + QDF_MAC_ADDR_SIZE),
|
||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
|
|
||||||
|
dp_wds_ext_peer_learn(soc, ta_peer);
|
||||||
ret = dp_peer_add_ast(soc,
|
ret = dp_peer_add_ast(soc,
|
||||||
ta_peer,
|
ta_peer,
|
||||||
wds_src_mac,
|
wds_src_mac,
|
||||||
@@ -254,10 +288,12 @@ dp_rx_wds_add_or_update_ast(struct dp_soc *soc, struct dp_peer *ta_peer,
|
|||||||
* learning is disable on STA vap
|
* learning is disable on STA vap
|
||||||
*/
|
*/
|
||||||
if (soc->ast_override_support &&
|
if (soc->ast_override_support &&
|
||||||
(ta_peer->vdev->opmode == wlan_op_mode_sta))
|
(ta_peer->vdev->opmode == wlan_op_mode_sta)) {
|
||||||
dp_peer_del_ast(soc, ast);
|
dp_peer_del_ast(soc, ast);
|
||||||
else
|
} else {
|
||||||
|
dp_wds_ext_peer_learn(soc, ta_peer);
|
||||||
dp_peer_update_ast(soc, ta_peer, ast, flags);
|
dp_peer_update_ast(soc, ta_peer, ast, flags);
|
||||||
|
}
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user