qcacmn: Add mesh and QCN flags in peer assoc
Set flags in WMI peer assoc to inform FW if node is 1. QCN Supported 2. Operating in Multi-AP mode If node is 3rd party and operating in Multi-AP mode, FW and uCode will change crypto register for each Rx/Tx from/to such nodes Change-Id: If4cf9ec39fa11a90733df45fffa473a672643f8e CRs-Fixed: 3488865
This commit is contained in:

committed by
Madan Koyyalamudi

parent
1a7ce50c83
commit
c7a178e42f
@@ -98,6 +98,10 @@
|
|||||||
|
|
||||||
/* MLO enabled peer */
|
/* MLO enabled peer */
|
||||||
#define WLAN_PEER_FEXT_MLO 0x00000001
|
#define WLAN_PEER_FEXT_MLO 0x00000001
|
||||||
|
/* Peer is QCN Node */
|
||||||
|
#define WLAN_PEER_QCN_NODE 0x00000010
|
||||||
|
/* Peer is 4 Address node */
|
||||||
|
#define WLAN_PEER_MESH_NODE 0x00000020
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum wlan_peer_state - peer state
|
* enum wlan_peer_state - peer state
|
||||||
@@ -186,6 +190,7 @@ struct wlan_objmgr_peer_objmgr {
|
|||||||
* @peer_lock: Lock for access/update peer contents
|
* @peer_lock: Lock for access/update peer contents
|
||||||
* @mlo_peer_ctx: Reference to MLO Peer context
|
* @mlo_peer_ctx: Reference to MLO Peer context
|
||||||
* @mldaddr: Peer MLD MAC address
|
* @mldaddr: Peer MLD MAC address
|
||||||
|
* @peer_flags: QCN flag and 4 address mode flag
|
||||||
*/
|
*/
|
||||||
struct wlan_objmgr_peer {
|
struct wlan_objmgr_peer {
|
||||||
qdf_list_node_t psoc_peer;
|
qdf_list_node_t psoc_peer;
|
||||||
@@ -204,6 +209,7 @@ struct wlan_objmgr_peer {
|
|||||||
#ifdef WLAN_FEATURE_11BE_MLO
|
#ifdef WLAN_FEATURE_11BE_MLO
|
||||||
struct wlan_mlo_peer_context *mlo_peer_ctx;
|
struct wlan_mlo_peer_context *mlo_peer_ctx;
|
||||||
uint8_t mldaddr[QDF_MAC_ADDR_SIZE];
|
uint8_t mldaddr[QDF_MAC_ADDR_SIZE];
|
||||||
|
u_int32_t peer_flags;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -1370,6 +1370,8 @@ struct peer_assoc_ml_partner_links {
|
|||||||
* @akm: AKM info
|
* @akm: AKM info
|
||||||
* @mlo_params: MLO assoc params
|
* @mlo_params: MLO assoc params
|
||||||
* @ml_links: MLO partner links
|
* @ml_links: MLO partner links
|
||||||
|
* @qcn_node_flag: if node is QCN node
|
||||||
|
* @mesh_node_flag: if node is 4 addr node
|
||||||
* @peer_dms_capable: is peer DMS capable
|
* @peer_dms_capable: is peer DMS capable
|
||||||
* @reserved: spare bits
|
* @reserved: spare bits
|
||||||
* @t2lm_params: TID-to-link mapping params
|
* @t2lm_params: TID-to-link mapping params
|
||||||
@@ -1456,6 +1458,8 @@ struct peer_assoc_params {
|
|||||||
#ifdef WLAN_FEATURE_11BE_MLO
|
#ifdef WLAN_FEATURE_11BE_MLO
|
||||||
struct peer_assoc_mlo_params mlo_params;
|
struct peer_assoc_mlo_params mlo_params;
|
||||||
struct peer_assoc_ml_partner_links ml_links;
|
struct peer_assoc_ml_partner_links ml_links;
|
||||||
|
bool qcn_node_flag;
|
||||||
|
bool mesh_node_flag;
|
||||||
#endif
|
#endif
|
||||||
uint8_t peer_dms_capable:1,
|
uint8_t peer_dms_capable:1,
|
||||||
reserved:7;
|
reserved:7;
|
||||||
|
@@ -3349,6 +3349,27 @@ static inline void copy_peer_flags_tlv_11be(
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef WLAN_FEATURE_11BE_MLO
|
||||||
|
static inline void copy_peer_flags_tlv_vendor(
|
||||||
|
wmi_peer_assoc_complete_cmd_fixed_param * cmd,
|
||||||
|
struct peer_assoc_params *param)
|
||||||
|
{
|
||||||
|
if (!(param->mlo_params.mlo_enabled))
|
||||||
|
return;
|
||||||
|
if (param->qcn_node_flag)
|
||||||
|
cmd->peer_flags_ext |= WMI_PEER_EXT_IS_QUALCOMM_NODE;
|
||||||
|
if (param->mesh_node_flag)
|
||||||
|
cmd->peer_flags_ext |= WMI_PEER_EXT_IS_MESH_NODE;
|
||||||
|
|
||||||
|
wmi_debug("peer_flags_ext 0x%x", cmd->peer_flags_ext);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline void copy_peer_flags_tlv_vendor(
|
||||||
|
wmi_peer_assoc_complete_cmd_fixed_param * cmd,
|
||||||
|
struct peer_assoc_params *param)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static inline void copy_peer_flags_tlv(
|
static inline void copy_peer_flags_tlv(
|
||||||
wmi_peer_assoc_complete_cmd_fixed_param * cmd,
|
wmi_peer_assoc_complete_cmd_fixed_param * cmd,
|
||||||
@@ -3380,6 +3401,7 @@ static inline void copy_peer_flags_tlv(
|
|||||||
cmd->peer_flags |= WMI_PEER_160MHZ;
|
cmd->peer_flags |= WMI_PEER_160MHZ;
|
||||||
|
|
||||||
copy_peer_flags_tlv_11be(cmd, param);
|
copy_peer_flags_tlv_11be(cmd, param);
|
||||||
|
copy_peer_flags_tlv_vendor(cmd, param);
|
||||||
|
|
||||||
/* Typically if STBC is enabled for VHT it should be enabled
|
/* Typically if STBC is enabled for VHT it should be enabled
|
||||||
* for HT as well
|
* for HT as well
|
||||||
|
Reference in New Issue
Block a user