qcacmn: Add CDP support for resolving RA from DA for ME6

Add support for parsing AST entries to resolve the RA for
multicast enhancement (mode 6) and enabling access of the API to
the higher layers through the use of the CDP framework.

Change-Id: I909bea86b90c22f311484c0b2653dd7623971c24
CRs-Fixed: 2333014
This commit is contained in:
Aditya Sathish
2018-10-31 15:52:14 +05:30
committed by nshrivas
parent f846d94d79
commit dc949c59be
3 changed files with 25 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2016-2017 The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -140,6 +140,25 @@ cdp_tx_me_convert_ucast(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
(vdev, wbuf, newmac, newmaccnt);
}
static inline uint16_t
cdp_tx_me_find_ast_entry(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
uint8_t *da_mac_addr, uint8_t *ra_mac_addr)
{
if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
"%s: Invalid Instance", __func__);
QDF_BUG(0);
return 0;
}
if (!soc->ops->me_ops ||
!soc->ops->me_ops->tx_me_find_ast_entry)
return 0;
return soc->ops->me_ops->tx_me_find_ast_entry(vdev, da_mac_addr,
ra_mac_addr);
}
/* Should be a function pointer in ol_txrx_osif_ops{} */
/**
* @brief notify mcast frame indication from FW.

View File

@@ -590,6 +590,10 @@ struct cdp_me_ops {
int (*mcast_notify)(struct cdp_pdev *pdev,
u_int8_t vdev_id, qdf_nbuf_t msdu);
uint16_t (*tx_me_find_ast_entry)(struct cdp_vdev *vdev,
uint8_t *da_mac_addr,
uint8_t *ra_mac_addr);
};
struct cdp_mon_ops {

View File

@@ -8335,6 +8335,7 @@ static struct cdp_me_ops dp_ops_me = {
.tx_me_free_descriptor = dp_tx_me_free_descriptor,
.tx_me_convert_ucast = dp_tx_me_send_convert_ucast,
#endif
.tx_me_find_ast_entry = NULL,
};
static struct cdp_mon_ops dp_ops_mon = {