qcacmn: Support same link/mld peer mac address

Currently, if mld and link peer has the same mac
address, the peer cannot distinguished with
just the mac address as the search argument.

Hence to support same mld/link peer mac address,
cdp_peer APIs that uses both link and mld peers,
are also given peer_type info. This helps
to perform the operations on the correct peer.

Change-Id: If646755facc8f9a4d9fed2f31c5cc6618fa9a952
CRs-Fixed: 3043428
This commit is contained in:
Namita Nair
2022-06-06 09:18:48 -07:00
committad av Madan Koyyalamudi
förälder 9738cd5a32
incheckning dc6a757028
7 ändrade filer med 338 tillägg och 208 borttagningar

Visa fil

@@ -403,11 +403,13 @@ enum htt_cmn_t2h_en_stats_status {
* @CDP_INVALID_PEER_TYPE: invalid peer type
* @CDP_LINK_PEER_TYPE: legacy peer or link peer for MLO connection
* @CDP_MLD_PEER_TYPE: MLD peer for MLO connection
* @CDP_WILD_PEER_TYPE: used to set peer type for same mld/link mac addr
*/
enum cdp_peer_type {
CDP_INVALID_PEER_TYPE,
CDP_LINK_PEER_TYPE,
CDP_MLD_PEER_TYPE,
CDP_WILD_PEER_TYPE,
};
/**
@@ -424,6 +426,21 @@ struct cdp_peer_setup_info {
uint8_t primary_umac_id;
};
/**
* struct cdp_peer_info: peer info for dp hash find
* @vdev_id: Vdev ID
* @mac_addr: peer mac address to search
* @mac_addr_is_aligned: true only if mac_addr type is
"union dp_align_mac_addr", otherwise set false always.
* @peer_type: link or MLD peer type
*/
struct cdp_peer_info {
uint8_t vdev_id;
uint8_t *mac_addr;
bool mac_addr_is_aligned;
enum cdp_peer_type peer_type;
};
/**
* struct ol_txrx_peer_state - Peer state information
*/