qcacmn: Return appropriate QDF error codes
Modify functions dp_peer_add_ast(),dp_peer_map_ast() and dp_rx_peer_map_handler() to return appropriate QDF error codes. Change-Id: I582a5e68219fe25df5f46ae6044afa3bed880d2c CRs-Fixed: 2728559
This commit is contained in:

committed by
snandini

parent
01c7242aca
commit
659ecbabda
@@ -630,6 +630,7 @@ static int dp_peer_add_ast_wifi3(struct cdp_soc_t *soc_hdl,
|
|||||||
uint32_t flags)
|
uint32_t flags)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||||
struct dp_peer *peer = dp_peer_find_hash_find((struct dp_soc *)soc_hdl,
|
struct dp_peer *peer = dp_peer_find_hash_find((struct dp_soc *)soc_hdl,
|
||||||
peer_mac, 0, vdev_id);
|
peer_mac, 0, vdev_id);
|
||||||
|
|
||||||
@@ -639,11 +640,15 @@ static int dp_peer_add_ast_wifi3(struct cdp_soc_t *soc_hdl,
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = dp_peer_add_ast((struct dp_soc *)soc_hdl,
|
status = dp_peer_add_ast((struct dp_soc *)soc_hdl,
|
||||||
peer,
|
peer,
|
||||||
mac_addr,
|
mac_addr,
|
||||||
type,
|
type,
|
||||||
flags);
|
flags);
|
||||||
|
if ((status == QDF_STATUS_SUCCESS) ||
|
||||||
|
(status == QDF_STATUS_E_ALREADY) ||
|
||||||
|
(status == QDF_STATUS_E_AGAIN))
|
||||||
|
ret = 0;
|
||||||
fail:
|
fail:
|
||||||
if (peer)
|
if (peer)
|
||||||
dp_peer_unref_delete(peer);
|
dp_peer_unref_delete(peer);
|
||||||
|
@@ -502,17 +502,21 @@ struct dp_ast_entry *dp_peer_ast_hash_find_soc(struct dp_soc *soc,
|
|||||||
* @vdev_id: vdev id for VAP to which the peer belongs to
|
* @vdev_id: vdev id for VAP to which the peer belongs to
|
||||||
* @ast_hash: ast hash value in HW
|
* @ast_hash: ast hash value in HW
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: QDF_STATUS code
|
||||||
*/
|
*/
|
||||||
static inline void dp_peer_map_ast(struct dp_soc *soc,
|
static inline QDF_STATUS dp_peer_map_ast(struct dp_soc *soc,
|
||||||
struct dp_peer *peer, uint8_t *mac_addr, uint16_t hw_peer_id,
|
struct dp_peer *peer,
|
||||||
uint8_t vdev_id, uint16_t ast_hash)
|
uint8_t *mac_addr,
|
||||||
|
uint16_t hw_peer_id,
|
||||||
|
uint8_t vdev_id,
|
||||||
|
uint16_t ast_hash)
|
||||||
{
|
{
|
||||||
struct dp_ast_entry *ast_entry = NULL;
|
struct dp_ast_entry *ast_entry = NULL;
|
||||||
enum cdp_txrx_ast_entry_type peer_type = CDP_TXRX_AST_TYPE_STATIC;
|
enum cdp_txrx_ast_entry_type peer_type = CDP_TXRX_AST_TYPE_STATIC;
|
||||||
|
QDF_STATUS err = QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
if (!peer) {
|
if (!peer) {
|
||||||
return;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
@@ -542,10 +546,11 @@ static inline void dp_peer_map_ast(struct dp_soc *soc,
|
|||||||
} else {
|
} else {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
"AST entry not found");
|
"AST entry not found");
|
||||||
|
err = QDF_STATUS_E_NOENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
return;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
void dp_peer_free_hmwds_cb(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
|
void dp_peer_free_hmwds_cb(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
|
||||||
@@ -585,20 +590,18 @@ void dp_peer_free_hmwds_cb(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
|
|||||||
* This API is used by WDS source port learning function to
|
* This API is used by WDS source port learning function to
|
||||||
* add a new AST entry into peer AST list
|
* add a new AST entry into peer AST list
|
||||||
*
|
*
|
||||||
* Return: 0 if new entry is allocated,
|
* Return: QDF_STATUS code
|
||||||
* -1 if entry add failed
|
|
||||||
*/
|
*/
|
||||||
int dp_peer_add_ast(struct dp_soc *soc,
|
QDF_STATUS dp_peer_add_ast(struct dp_soc *soc,
|
||||||
struct dp_peer *peer,
|
struct dp_peer *peer,
|
||||||
uint8_t *mac_addr,
|
uint8_t *mac_addr,
|
||||||
enum cdp_txrx_ast_entry_type type,
|
enum cdp_txrx_ast_entry_type type,
|
||||||
uint32_t flags)
|
uint32_t flags)
|
||||||
{
|
{
|
||||||
struct dp_ast_entry *ast_entry = NULL;
|
struct dp_ast_entry *ast_entry = NULL;
|
||||||
struct dp_vdev *vdev = NULL, *tmp_vdev = NULL;
|
struct dp_vdev *vdev = NULL, *tmp_vdev = NULL;
|
||||||
struct dp_pdev *pdev = NULL;
|
struct dp_pdev *pdev = NULL;
|
||||||
uint8_t next_node_mac[6];
|
uint8_t next_node_mac[6];
|
||||||
int ret = -1;
|
|
||||||
txrx_ast_free_cb cb = NULL;
|
txrx_ast_free_cb cb = NULL;
|
||||||
void *cookie = NULL;
|
void *cookie = NULL;
|
||||||
struct dp_peer *tmp_peer = NULL;
|
struct dp_peer *tmp_peer = NULL;
|
||||||
@@ -609,7 +612,7 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("Peers vdev is NULL"));
|
FL("Peers vdev is NULL"));
|
||||||
QDF_ASSERT(0);
|
QDF_ASSERT(0);
|
||||||
return ret;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
pdev = vdev->pdev;
|
pdev = vdev->pdev;
|
||||||
@@ -623,7 +626,7 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
FL("Peers vdev is NULL"));
|
FL("Peers vdev is NULL"));
|
||||||
QDF_ASSERT(0);
|
QDF_ASSERT(0);
|
||||||
dp_peer_unref_delete(tmp_peer);
|
dp_peer_unref_delete(tmp_peer);
|
||||||
return ret;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
if (tmp_vdev->pdev->pdev_id == pdev->pdev_id)
|
if (tmp_vdev->pdev->pdev_id == pdev->pdev_id)
|
||||||
is_peer_found = true;
|
is_peer_found = true;
|
||||||
@@ -634,7 +637,7 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
qdf_spin_lock_bh(&soc->ast_lock);
|
qdf_spin_lock_bh(&soc->ast_lock);
|
||||||
if (peer->delete_in_progress) {
|
if (peer->delete_in_progress) {
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
return ret;
|
return QDF_STATUS_E_BUSY;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
@@ -649,7 +652,7 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("Max ast entries reached"));
|
FL("Max ast entries reached"));
|
||||||
return ret;
|
return QDF_STATUS_E_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If AST entry already exists , just return from here
|
/* If AST entry already exists , just return from here
|
||||||
@@ -666,7 +669,7 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
ast_entry->is_active = TRUE;
|
ast_entry->is_active = TRUE;
|
||||||
|
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
return 0;
|
return QDF_STATUS_E_ALREADY;
|
||||||
}
|
}
|
||||||
if (is_peer_found) {
|
if (is_peer_found) {
|
||||||
/* During WDS to static roaming, peer is added
|
/* During WDS to static roaming, peer is added
|
||||||
@@ -676,7 +679,7 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
*/
|
*/
|
||||||
if (type != CDP_TXRX_AST_TYPE_STATIC) {
|
if (type != CDP_TXRX_AST_TYPE_STATIC) {
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
return 0;
|
return QDF_STATUS_E_ALREADY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -696,7 +699,7 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
if ((ast_entry->type == CDP_TXRX_AST_TYPE_WDS_HM) &&
|
if ((ast_entry->type == CDP_TXRX_AST_TYPE_WDS_HM) &&
|
||||||
!ast_entry->delete_in_progress) {
|
!ast_entry->delete_in_progress) {
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
return 0;
|
return QDF_STATUS_E_ALREADY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add for HMWDS entry we cannot be ignored if there
|
/* Add for HMWDS entry we cannot be ignored if there
|
||||||
@@ -726,7 +729,7 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE_LEVEL_ERROR,
|
||||||
"Allocation failed");
|
"Allocation failed");
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
return ret;
|
return QDF_STATUS_E_NOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
qdf_mem_copy(¶m->mac_addr.raw[0], mac_addr,
|
qdf_mem_copy(¶m->mac_addr.raw[0], mac_addr,
|
||||||
@@ -743,6 +746,17 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
ast_entry->cookie = (void *)param;
|
ast_entry->cookie = (void *)param;
|
||||||
if (!ast_entry->delete_in_progress)
|
if (!ast_entry->delete_in_progress)
|
||||||
dp_peer_del_ast(soc, ast_entry);
|
dp_peer_del_ast(soc, ast_entry);
|
||||||
|
|
||||||
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
|
|
||||||
|
/* Call the saved callback*/
|
||||||
|
if (cb) {
|
||||||
|
cb(soc->ctrl_psoc,
|
||||||
|
dp_soc_to_cdp_soc(soc),
|
||||||
|
cookie,
|
||||||
|
CDP_TXRX_AST_DELETE_IN_PROGRESS);
|
||||||
|
}
|
||||||
|
return QDF_STATUS_E_AGAIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Modify an already existing AST entry from type
|
/* Modify an already existing AST entry from type
|
||||||
@@ -762,15 +776,7 @@ int dp_peer_add_ast(struct dp_soc *soc,
|
|||||||
dp_peer_del_ast(soc, ast_entry);
|
dp_peer_del_ast(soc, ast_entry);
|
||||||
}
|
}
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
|
return QDF_STATUS_E_ALREADY;
|
||||||
/* Call the saved callback*/
|
|
||||||
if (cb) {
|
|
||||||
cb(soc->ctrl_psoc,
|
|
||||||
dp_soc_to_cdp_soc(soc),
|
|
||||||
cookie,
|
|
||||||
CDP_TXRX_AST_DELETE_IN_PROGRESS);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -783,7 +789,7 @@ add_ast_entry:
|
|||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("fail to allocate ast_entry"));
|
FL("fail to allocate ast_entry"));
|
||||||
QDF_ASSERT(0);
|
QDF_ASSERT(0);
|
||||||
return ret;
|
return QDF_STATUS_E_NOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
qdf_mem_copy(&ast_entry->mac_addr.raw[0], mac_addr, QDF_MAC_ADDR_SIZE);
|
qdf_mem_copy(&ast_entry->mac_addr.raw[0], mac_addr, QDF_MAC_ADDR_SIZE);
|
||||||
@@ -857,12 +863,12 @@ add_ast_entry:
|
|||||||
flags,
|
flags,
|
||||||
ast_entry->type)) {
|
ast_entry->type)) {
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
return 0;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||||
return ret;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1096,11 +1102,13 @@ void dp_peer_ast_set_type(struct dp_soc *soc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
int dp_peer_add_ast(struct dp_soc *soc, struct dp_peer *peer,
|
QDF_STATUS dp_peer_add_ast(struct dp_soc *soc,
|
||||||
uint8_t *mac_addr, enum cdp_txrx_ast_entry_type type,
|
struct dp_peer *peer,
|
||||||
uint32_t flags)
|
uint8_t *mac_addr,
|
||||||
|
enum cdp_txrx_ast_entry_type type,
|
||||||
|
uint32_t flags)
|
||||||
{
|
{
|
||||||
return 1;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void dp_peer_del_ast(struct dp_soc *soc, struct dp_ast_entry *ast_entry)
|
void dp_peer_del_ast(struct dp_soc *soc, struct dp_ast_entry *ast_entry)
|
||||||
@@ -1131,11 +1139,14 @@ static int dp_peer_ast_hash_attach(struct dp_soc *soc)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void dp_peer_map_ast(struct dp_soc *soc,
|
static inline QDF_STATUS dp_peer_map_ast(struct dp_soc *soc,
|
||||||
struct dp_peer *peer, uint8_t *mac_addr, uint16_t hw_peer_id,
|
struct dp_peer *peer,
|
||||||
uint8_t vdev_id, uint16_t ast_hash)
|
uint8_t *mac_addr,
|
||||||
|
uint16_t hw_peer_id,
|
||||||
|
uint8_t vdev_id,
|
||||||
|
uint16_t ast_hash)
|
||||||
{
|
{
|
||||||
return;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dp_peer_ast_hash_detach(struct dp_soc *soc)
|
static void dp_peer_ast_hash_detach(struct dp_soc *soc)
|
||||||
@@ -1631,10 +1642,10 @@ static inline struct dp_peer *dp_peer_find_add_id(struct dp_soc *soc,
|
|||||||
* associate the peer_id that firmware provided with peer entry
|
* associate the peer_id that firmware provided with peer entry
|
||||||
* and update the ast table in the host with the hw_peer_id.
|
* and update the ast table in the host with the hw_peer_id.
|
||||||
*
|
*
|
||||||
* Return: none
|
* Return: QDF_STATUS code
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void
|
QDF_STATUS
|
||||||
dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
|
dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
|
||||||
uint16_t hw_peer_id, uint8_t vdev_id,
|
uint16_t hw_peer_id, uint8_t vdev_id,
|
||||||
uint8_t *peer_mac_addr, uint16_t ast_hash,
|
uint8_t *peer_mac_addr, uint16_t ast_hash,
|
||||||
@@ -1642,6 +1653,7 @@ dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
|
|||||||
{
|
{
|
||||||
struct dp_peer *peer = NULL;
|
struct dp_peer *peer = NULL;
|
||||||
enum cdp_txrx_ast_entry_type type = CDP_TXRX_AST_TYPE_STATIC;
|
enum cdp_txrx_ast_entry_type type = CDP_TXRX_AST_TYPE_STATIC;
|
||||||
|
QDF_STATUS err = QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
dp_info("peer_map_event (soc:%pK): peer_id %d, hw_peer_id %d, peer_mac %pM, vdev_id %d",
|
dp_info("peer_map_event (soc:%pK): peer_id %d, hw_peer_id %d, peer_mac %pM, vdev_id %d",
|
||||||
soc, peer_id, hw_peer_id,
|
soc, peer_id, hw_peer_id,
|
||||||
@@ -1667,14 +1679,14 @@ dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
|
|||||||
if (!dp_peer_ast_free_entry_by_mac(soc,
|
if (!dp_peer_ast_free_entry_by_mac(soc,
|
||||||
peer,
|
peer,
|
||||||
peer_mac_addr))
|
peer_mac_addr))
|
||||||
return;
|
return QDF_STATUS_E_INVAL;
|
||||||
|
|
||||||
dp_alert("AST entry not found with peer %pK peer_id %u peer_mac %pM mac_addr %pM vdev_id %u next_hop %u",
|
dp_alert("AST entry not found with peer %pK peer_id %u peer_mac %pM mac_addr %pM vdev_id %u next_hop %u",
|
||||||
peer, peer->peer_id,
|
peer, peer->peer_id,
|
||||||
peer->mac_addr.raw, peer_mac_addr, vdev_id,
|
peer->mac_addr.raw, peer_mac_addr, vdev_id,
|
||||||
is_wds);
|
is_wds);
|
||||||
|
|
||||||
return;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@@ -1731,8 +1743,10 @@ dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dp_peer_map_ast(soc, peer, peer_mac_addr,
|
err = dp_peer_map_ast(soc, peer, peer_mac_addr,
|
||||||
hw_peer_id, vdev_id, ast_hash);
|
hw_peer_id, vdev_id, ast_hash);
|
||||||
|
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -115,10 +115,10 @@ dp_clear_peer_internal(struct dp_soc *soc, struct dp_peer *peer)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void dp_print_ast_stats(struct dp_soc *soc);
|
void dp_print_ast_stats(struct dp_soc *soc);
|
||||||
void dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
|
QDF_STATUS dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
|
||||||
uint16_t hw_peer_id, uint8_t vdev_id,
|
uint16_t hw_peer_id, uint8_t vdev_id,
|
||||||
uint8_t *peer_mac_addr, uint16_t ast_hash,
|
uint8_t *peer_mac_addr, uint16_t ast_hash,
|
||||||
uint8_t is_wds);
|
uint8_t is_wds);
|
||||||
void dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id,
|
void dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id,
|
||||||
uint8_t vdev_id, uint8_t *peer_mac_addr,
|
uint8_t vdev_id, uint8_t *peer_mac_addr,
|
||||||
uint8_t is_wds, uint32_t free_wds_count);
|
uint8_t is_wds, uint32_t free_wds_count);
|
||||||
@@ -132,9 +132,9 @@ QDF_STATUS dp_rx_delba_ind_handler(void *soc_handle, uint16_t peer_id,
|
|||||||
uint8_t dp_get_peer_mac_addr_frm_id(struct cdp_soc_t *soc_handle,
|
uint8_t dp_get_peer_mac_addr_frm_id(struct cdp_soc_t *soc_handle,
|
||||||
uint16_t peer_id, uint8_t *peer_mac);
|
uint16_t peer_id, uint8_t *peer_mac);
|
||||||
|
|
||||||
int dp_peer_add_ast(struct dp_soc *soc, struct dp_peer *peer,
|
QDF_STATUS dp_peer_add_ast(struct dp_soc *soc, struct dp_peer *peer,
|
||||||
uint8_t *mac_addr, enum cdp_txrx_ast_entry_type type,
|
uint8_t *mac_addr, enum cdp_txrx_ast_entry_type type,
|
||||||
uint32_t flags);
|
uint32_t flags);
|
||||||
|
|
||||||
void dp_peer_del_ast(struct dp_soc *soc, struct dp_ast_entry *ast_entry);
|
void dp_peer_del_ast(struct dp_soc *soc, struct dp_ast_entry *ast_entry);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user