瀏覽代碼

qcacmn: Send bridge peer flag to target

Add and send bridge peer flag to fw.

Change-Id: I15ab04a8646975ad4cc85a66b632f85e359a9158
CRs-Fixed: 3554509
Shreedhar Parande 2 年之前
父節點
當前提交
86ee88bd0d

+ 2 - 0
umac/cmn_services/obj_mgr/inc/wlan_objmgr_peer_obj.h

@@ -190,6 +190,7 @@ struct wlan_objmgr_peer_objmgr {
  * @peer_lock:        Lock for access/update peer contents
  * @mlo_peer_ctx:     Reference to MLO Peer context
  * @mldaddr:          Peer MLD MAC address
+ * @mlo_bridge_peer:  Indicates bridge peer
  * @peer_flags:        QCN flag and 4 address mode flag
  */
 struct wlan_objmgr_peer {
@@ -210,6 +211,7 @@ struct wlan_objmgr_peer {
 	struct wlan_mlo_peer_context *mlo_peer_ctx;
 	uint8_t mldaddr[QDF_MAC_ADDR_SIZE];
 	u_int32_t peer_flags;
+	bool mlo_bridge_peer;
 #endif
 };
 

+ 3 - 1
umac/mlo_mgr/inc/wlan_mlo_mgr_public_structs.h

@@ -884,6 +884,7 @@ struct ml_rv_info {
  * @emlsr_support: indicate if eMLSR supported
  * @emlmr_support: indicate if eMLMR supported
  * @msd_cap_support: indicate if MSD supported
+ * @mlo_bridge_peer: indicate if it is bridge peer
  * @unused: spare bits
  * @logical_link_index: Unique index for links of the mlo. Starts with Zero
  */
@@ -899,7 +900,8 @@ struct mlo_tgt_link_info {
 		 emlsr_support:1,
 		 emlmr_support:1,
 		 msd_cap_support:1,
-		 unused:23;
+		 mlo_bridge_peer:1,
+		 unused:22;
 	uint32_t logical_link_index;
 
 };

+ 1 - 0
umac/mlo_mgr/src/wlan_mlo_mgr_peer.c

@@ -1869,6 +1869,7 @@ void wlan_mlo_peer_get_links_info(struct wlan_objmgr_peer *peer,
 		ml_links->link_info[ix].mlo_logical_link_index_valid = 1;
 		ml_links->link_info[ix].emlsr_support = ml_emlcap->emlsr_supp;
 		ml_links->link_info[ix].logical_link_index = idx - 1;
+		ml_links->link_info[ix].mlo_bridge_peer = link_peer->mlo_bridge_peer;
 		ml_links->num_partner_links++;
 	}
 	mlo_peer_lock_release(ml_peer);

+ 8 - 2
wmi/inc/wmi_unified_param.h

@@ -854,6 +854,7 @@ struct peer_set_params {
  * @peer_type: peer type
  * @vdev_id: vdev id
  * @mlo_enabled: Indicates MLO is enabled
+ * @mlo_bridge_peer: Indicates bridge peer
  */
 struct peer_create_params {
 	const uint8_t *peer_addr;
@@ -861,6 +862,7 @@ struct peer_create_params {
 	uint32_t vdev_id;
 #ifdef WLAN_FEATURE_11BE_MLO
 	bool mlo_enabled;
+	bool mlo_bridge_peer;
 #endif
 };
 
@@ -1221,6 +1223,7 @@ struct wmi_host_link_state_params {
  * @nstr_bitmap_present: indicate if NSTR bitmap is present
  * @nstr_bitmap_size: Indicates size of NSTR bitmap,
  *                    as per the 802.11be specification
+ * @mlo_bridge_peer: indicate if it is bridge peer
  * @unused: spare bits
  * @mld_mac: MLD mac address
  * @logical_link_index: Unique index for links of the mlo. Starts with Zero
@@ -1253,7 +1256,8 @@ struct peer_assoc_mlo_params {
 		 msd_cap_support:1,
 		 nstr_bitmap_present:1,
 		 nstr_bitmap_size:1,
-		 unused:21;
+		 mlo_bridge_peer:1,
+		 unused:20;
 	uint8_t mld_mac[QDF_MAC_ADDR_SIZE];
 	uint32_t logical_link_index;
 	uint32_t ml_peer_id;
@@ -1287,6 +1291,7 @@ struct peer_assoc_mlo_params {
  * @emlsr_support: indicate if eMLSR supported
  * @emlmr_support: indicate if eMLMR supported
  * @msd_cap_support: indicate if MSD supported
+ * @mlo_bridge_peer: indicate if peer is bridge peer
  * @unused: spare bits
  * @logical_link_index: Unique index for links of the mlo. Starts with Zero
  * @link_id: AP Link Id
@@ -1306,7 +1311,8 @@ struct ml_partner_info {
 		 emlsr_support:1,
 		 emlmr_support:1,
 		 msd_cap_support:1,
-		 unused:23;
+		 mlo_bridge_peer:1,
+		 unused:22;
 	uint32_t logical_link_index;
 	uint32_t link_id;
 	struct qdf_mac_addr bssid;

+ 6 - 0
wmi/src/wmi_unified_11be_tlv.c

@@ -234,6 +234,8 @@ uint8_t *peer_create_add_mlo_params(uint8_t *buf_ptr,
 	mlo_params->mlo_flags.mlo_flags = 0;
 	WMI_MLO_FLAGS_SET_ENABLED(mlo_params->mlo_flags.mlo_flags,
 				  req->mlo_enabled);
+	WMI_MLO_FLAGS_SET_BRIDGE_PEER(mlo_params->mlo_flags.mlo_flags,
+				      req->mlo_bridge_peer);
 
 	return buf_ptr + sizeof(wmi_peer_create_mlo_params);
 }
@@ -279,6 +281,8 @@ uint8_t *peer_assoc_add_mlo_params(uint8_t *buf_ptr,
 					   req->mlo_params.mlo_logical_link_index_valid);
 	WMI_MLO_FLAGS_SET_PEER_ID_VALID(mlo_params->mlo_flags.mlo_flags,
 					req->mlo_params.mlo_peer_id_valid);
+	WMI_MLO_FLAGS_SET_BRIDGE_PEER(mlo_params->mlo_flags.mlo_flags,
+				      req->mlo_params.mlo_bridge_peer);
 	mlo_params->mlo_flags.emlsr_support = req->mlo_params.emlsr_support;
 
 	mlo_params->mlo_flags.mlo_force_link_inactive =
@@ -385,6 +389,8 @@ uint8_t *peer_assoc_add_ml_partner_links(uint8_t *buf_ptr,
 					       partner_info[i].mlo_primary_umac);
 		WMI_MLO_FLAGS_SET_LINK_INDEX_VALID(ml_partner_link->mlo_flags.mlo_flags,
 						   partner_info[i].mlo_logical_link_index_valid);
+		WMI_MLO_FLAGS_SET_BRIDGE_PEER(ml_partner_link->mlo_flags.mlo_flags,
+					      partner_info[i].mlo_bridge_peer);
 		ml_partner_link->mlo_flags.emlsr_support = partner_info[i].emlsr_support;
 		ml_partner_link->logical_link_index = partner_info[i].logical_link_index;
 		ml_partner_link->ieee_link_id = partner_info[i].link_id;