qcacld-3.0: Derive NDP peer multicast address from peer MAC address
Currently, driver is depending on NS frame to be received to configure peer multicast address for an NDP session. If there is a delay in NS frame reception, peer multicast address list will be configured to the FW without actual peer multicast address. Because of this, FW will drop the NS frame from NDP peer. To address this, derive peer multicast address from peer MAC address and include it in multicast address list that is configured to the FW. Change-Id: I92a575352d592b4001dc4f061e31eb7f592f8445 CRs-Fixed: 3066990
This commit is contained in:

committed by
Madan Koyyalamudi

parent
dbf9361d32
commit
5cf970b5c7
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. 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
|
||||
@@ -92,6 +93,39 @@ QDF_STATUS ucfg_nan_set_active_peers(struct wlan_objmgr_vdev *vdev,
|
||||
*/
|
||||
uint32_t ucfg_nan_get_active_peers(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_nan_set_peer_mc_list: API to derive peer multicast address and add it
|
||||
* to the list
|
||||
* @vdev: pointer to vdev object
|
||||
* @peer_mac_addr: Peer MAC address
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_nan_set_peer_mc_list(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr peer_mac_addr);
|
||||
|
||||
/**
|
||||
* ucfg_nan_get_peer_mc_list: API to get peer multicast address list
|
||||
* @vdev: pointer to vdev object
|
||||
* @peer_mc_addr_list: Out pointer to the peer multicast address list
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_nan_get_peer_mc_list(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr **peer_mc_addr_list);
|
||||
|
||||
/**
|
||||
* ucfg_nan_clear_peer_mc_list: Clear peer multicast address list
|
||||
* @psoc: pointer to psoc object
|
||||
* @vdev: pointer to vdev object
|
||||
* @peer_mac_addr: Pointer to peer MAC address
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_nan_clear_peer_mc_list(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *peer_mac_addr);
|
||||
|
||||
/**
|
||||
* ucfg_nan_set_ndp_create_transaction_id: set ndp create transaction id
|
||||
* @vdev: pointer to vdev object
|
||||
@@ -624,5 +658,11 @@ static inline bool ucfg_get_disable_6g_nan(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline void
|
||||
ucfg_nan_get_peer_mc_list(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr **peer_mc_addr_list)
|
||||
{
|
||||
}
|
||||
#endif /* WLAN_FEATURE_NAN */
|
||||
#endif /* _NAN_UCFG_API_H_ */
|
||||
|
Reference in New Issue
Block a user