Revert "qcacmn: Add cdp ops to set/get timestamp for management frames"
1) This reverts commit I7025fdd7540f47bb4d3f95ef6d9f2ef92af5f1f1 2) Reverted changes have been taken care through: Idd7617782e71ee187eef7fcb3523c05b49f82094 CRs-Fixed: 2300055 Change-Id: Icc47ded9a585e356b7eae1ad53ffea6668510308
This commit is contained in:
@@ -1111,8 +1111,6 @@ struct cdp_ocb_ops {
|
||||
* @remove_peers_for_vdev_no_lock:
|
||||
* @copy_mac_addr_raw:
|
||||
* @add_last_real_peer:
|
||||
* @get_last_mgmt_timestamp:
|
||||
* @set_last_mgmt_timestamp:
|
||||
* @is_vdev_restore_last_peer:
|
||||
* @update_last_real_peer:
|
||||
*/
|
||||
@@ -1160,14 +1158,6 @@ struct cdp_peer_ops {
|
||||
void (*update_last_real_peer)(struct cdp_pdev *pdev, void *peer,
|
||||
uint8_t *peer_id, bool restore_last_peer);
|
||||
void (*peer_detach_force_delete)(void *peer);
|
||||
bool (*get_last_mgmt_timestamp)(struct cdp_pdev *ppdev,
|
||||
u8 *peer_addr,
|
||||
u8 subtype,
|
||||
qdf_time_t *timestamp);
|
||||
bool (*update_last_mgmt_timestamp)(struct cdp_pdev *ppdev,
|
||||
u8 *peer_addr,
|
||||
qdf_time_t timestamp,
|
||||
u8 subtype);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -567,68 +567,6 @@ cdp_peer_add_last_real_peer(ol_txrx_soc_handle soc,
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* cdp_peer_get_last_mgmt_timestamp() - retrieve last timestamp for peer
|
||||
* @soc - data path soc handle
|
||||
* @pdev - data path device instance
|
||||
* @peer_addr - peer mac addr
|
||||
* @subtype - Management frame subtype
|
||||
*
|
||||
* Return: true/false
|
||||
*/
|
||||
static inline bool
|
||||
cdp_peer_get_last_mgmt_timestamp(ol_txrx_soc_handle soc,
|
||||
struct cdp_pdev *pdev,
|
||||
u8 *peer_addr,
|
||||
u8 subtype,
|
||||
qdf_time_t *timestamp)
|
||||
{
|
||||
if (!soc || !soc->ops || !soc->ops->peer_ops) {
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
|
||||
"%s invalid instance", __func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (soc->ops->peer_ops->get_last_mgmt_timestamp) {
|
||||
return soc->ops->peer_ops->
|
||||
get_last_mgmt_timestamp(pdev, peer_addr,
|
||||
subtype, timestamp);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* cdp_peer_update_last_mgmt_timestamp() - update timestamp for the peer
|
||||
* @soc - data path soc handle
|
||||
* @pdev - data path device instance
|
||||
* @peer_addr - peer mac addr
|
||||
* @subtype - Management frame subtype
|
||||
*
|
||||
* Return: true/false
|
||||
*/
|
||||
static inline bool
|
||||
cdp_peer_update_last_mgmt_timestamp(ol_txrx_soc_handle soc,
|
||||
struct cdp_pdev *pdev,
|
||||
u8 *peer_addr,
|
||||
qdf_time_t timestamp,
|
||||
u8 subtype)
|
||||
{
|
||||
if (!soc || !soc->ops || !soc->ops->peer_ops) {
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
|
||||
"%s invalid instance", __func__);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (soc->ops->peer_ops->update_last_mgmt_timestamp) {
|
||||
return soc->ops->peer_ops->
|
||||
update_last_mgmt_timestamp(pdev, peer_addr,
|
||||
timestamp, subtype);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* cdp_peer_is_vdev_restore_last_peer() - restore last peer
|
||||
* @soc - data path soc handle
|
||||
|
@@ -625,10 +625,6 @@ int dp_get_peer_state(void *peer_handle);
|
||||
void dp_local_peer_id_pool_init(struct dp_pdev *pdev);
|
||||
void dp_local_peer_id_alloc(struct dp_pdev *pdev, struct dp_peer *peer);
|
||||
void dp_local_peer_id_free(struct dp_pdev *pdev, struct dp_peer *peer);
|
||||
bool dp_get_last_mgmt_timestamp(struct cdp_pdev *ppdev, u8 *peer_addr,
|
||||
u8 subtype, qdf_time_t *timestamp);
|
||||
bool dp_update_last_mgmt_timestamp(struct cdp_pdev *ppdev, u8 *peer_addr,
|
||||
qdf_time_t timestamp, u8 subtype);
|
||||
#else
|
||||
static inline void dp_local_peer_id_pool_init(struct dp_pdev *pdev)
|
||||
{
|
||||
|
@@ -7949,8 +7949,6 @@ static struct cdp_peer_ops dp_ops_peer = {
|
||||
.peer_get_peer_mac_addr = dp_peer_get_peer_mac_addr,
|
||||
.get_vdev_for_peer = dp_get_vdev_for_peer,
|
||||
.get_peer_state = dp_get_peer_state,
|
||||
.get_last_mgmt_timestamp = dp_get_last_mgmt_timestamp,
|
||||
.update_last_mgmt_timestamp = dp_update_last_mgmt_timestamp,
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@@ -2354,128 +2354,6 @@ int dp_get_peer_state(void *peer_handle)
|
||||
return peer->state;
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_get_last_mgmt_timestamp() - get timestamp of last mgmt frame
|
||||
* @pdev: pdev handle
|
||||
* @ppeer_addr: peer mac addr
|
||||
* @subtype: management frame type
|
||||
* @timestamp: last timestamp
|
||||
*
|
||||
* Return: true if timestamp is retrieved for valid peer else false
|
||||
*/
|
||||
bool dp_get_last_mgmt_timestamp(struct cdp_pdev *ppdev, u8 *peer_addr,
|
||||
u8 subtype, qdf_time_t *timestamp)
|
||||
{
|
||||
union dp_align_mac_addr local_mac_addr_aligned, *mac_addr;
|
||||
unsigned int index;
|
||||
struct dp_peer *peer;
|
||||
struct dp_soc *soc;
|
||||
|
||||
bool ret = false;
|
||||
struct dp_pdev *pdev = (struct dp_pdev *)ppdev;
|
||||
|
||||
soc = pdev->soc;
|
||||
qdf_mem_copy(
|
||||
&local_mac_addr_aligned.raw[0],
|
||||
peer_addr, DP_MAC_ADDR_LEN);
|
||||
mac_addr = &local_mac_addr_aligned;
|
||||
|
||||
index = dp_peer_find_hash_index(soc, mac_addr);
|
||||
|
||||
qdf_spin_lock_bh(&soc->peer_ref_mutex);
|
||||
TAILQ_FOREACH(peer, &soc->peer_hash.bins[index], hash_list_elem) {
|
||||
#if ATH_SUPPORT_WRAP
|
||||
/* ProxySTA may have multiple BSS peer with same MAC address,
|
||||
* modified find will take care of finding the correct BSS peer.
|
||||
*/
|
||||
if (dp_peer_find_mac_addr_cmp(mac_addr, &peer->mac_addr) == 0 &&
|
||||
(peer->vdev->vdev_id == DP_VDEV_ALL)) {
|
||||
#else
|
||||
if (dp_peer_find_mac_addr_cmp(mac_addr, &peer->mac_addr) == 0) {
|
||||
#endif
|
||||
/* found it */
|
||||
switch (subtype) {
|
||||
case IEEE80211_FC0_SUBTYPE_ASSOC_REQ:
|
||||
*timestamp = peer->last_assoc_rcvd;
|
||||
ret = true;
|
||||
break;
|
||||
case IEEE80211_FC0_SUBTYPE_DISASSOC:
|
||||
case IEEE80211_FC0_SUBTYPE_DEAUTH:
|
||||
*timestamp = peer->last_disassoc_rcvd;
|
||||
ret = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
qdf_spin_unlock_bh(&soc->peer_ref_mutex);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
qdf_spin_unlock_bh(&soc->peer_ref_mutex);
|
||||
return false; /*failure*/
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_update_last_mgmt_timestamp() - set timestamp of last mgmt frame
|
||||
* @pdev: pdev handle
|
||||
* @ppeer_addr: peer mac addr
|
||||
* @timestamp: time to be set
|
||||
* @subtype: management frame type
|
||||
*
|
||||
* Return: true if timestamp is updated for valid peer else false
|
||||
*/
|
||||
|
||||
bool dp_update_last_mgmt_timestamp(struct cdp_pdev *ppdev, u8 *peer_addr,
|
||||
qdf_time_t timestamp, u8 subtype)
|
||||
{
|
||||
union dp_align_mac_addr local_mac_addr_aligned, *mac_addr;
|
||||
unsigned int index;
|
||||
struct dp_peer *peer;
|
||||
struct dp_soc *soc;
|
||||
|
||||
bool ret = false;
|
||||
struct dp_pdev *pdev = (struct dp_pdev *)ppdev;
|
||||
|
||||
soc = pdev->soc;
|
||||
qdf_mem_copy(&local_mac_addr_aligned.raw[0],
|
||||
peer_addr, DP_MAC_ADDR_LEN);
|
||||
mac_addr = &local_mac_addr_aligned;
|
||||
|
||||
index = dp_peer_find_hash_index(soc, mac_addr);
|
||||
|
||||
qdf_spin_lock_bh(&soc->peer_ref_mutex);
|
||||
TAILQ_FOREACH(peer, &soc->peer_hash.bins[index], hash_list_elem) {
|
||||
#if ATH_SUPPORT_WRAP
|
||||
/* ProxySTA may have multiple BSS peer with same MAC address,
|
||||
* modified find will take care of finding the correct BSS peer.
|
||||
*/
|
||||
if (dp_peer_find_mac_addr_cmp(mac_addr, &peer->mac_addr) == 0 &&
|
||||
(peer->vdev->vdev_id == DP_VDEV_ALL)) {
|
||||
#else
|
||||
if (dp_peer_find_mac_addr_cmp(mac_addr, &peer->mac_addr) == 0) {
|
||||
#endif
|
||||
/* found it */
|
||||
switch (subtype) {
|
||||
case IEEE80211_FC0_SUBTYPE_ASSOC_REQ:
|
||||
peer->last_assoc_rcvd = timestamp;
|
||||
ret = true;
|
||||
break;
|
||||
case IEEE80211_FC0_SUBTYPE_DISASSOC:
|
||||
case IEEE80211_FC0_SUBTYPE_DEAUTH:
|
||||
peer->last_disassoc_rcvd = timestamp;
|
||||
ret = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
qdf_spin_unlock_bh(&soc->peer_ref_mutex);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
qdf_spin_unlock_bh(&soc->peer_ref_mutex);
|
||||
return false; /*failure*/
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_local_peer_id_pool_init() - local peer id pool alloc for physical device
|
||||
* @pdev - data path device instance
|
||||
|
Reference in New Issue
Block a user