Kaynağa Gözat

qcacld-3.0: Add non-inheritance IE for ML sta_profile

Add non-inheritance IE for ML sta_profile. It identifies
list of EIDs and Ext EIDs that are not inherited by the
reported STA from the reporting STA (primary link).

Change-Id: I796cee5a06bfd76b3428fc20e51493e1dab15493
CRs-Fixed: 2971815
Gururaj Pandurangi 3 yıl önce
ebeveyn
işleme
e45b9f2cfd

+ 6 - 0
core/mac/src/cfg/cfgUtil/dot11f.frms

@@ -3580,6 +3580,11 @@ IE vendor_vht_ie (EID_VENDOR_SPECIFIC) OUI (0x00, 0x90, 0x4c, 0x04)
    OPTIE IE VHTOperation;
 }
 
+IE non_inheritance (EID_EXTN_ID_ELEMENT) OUI (0x38)
+{
+    data[0..255];
+}
+
 IE mlo_capabilities (0)
 {
     {
@@ -3670,6 +3675,7 @@ IE sta_profile (0)
   OPTIE IE eht_cap;
   OPTIE IE eht_op;
   OPTIE IE max_chan_switch_time;
+  OPTIE IE non_inheritance;
 }
 
 IE mlo_ie (EID_EXTN_ID_ELEMENT) OUI (0x5e)

+ 44 - 3
core/mac/src/include/dot11f.h

@@ -26,7 +26,7 @@
  *
  *
  * This file was automatically generated by 'framesc'
- * Tue Jun 15 13:48:42 2021 from the following file(s):
+ * Thu Jun 17 16:13:35 2021 from the following file(s):
  *
  * dot11f.frms
  *
@@ -5859,6 +5859,46 @@ uint32_t dot11f_get_packed_ie_neighbor_rpt(
 }; /* End extern "C". */
 #endif /* C++ */
 
+/* EID 255 (0xff) Extended EID 56 (0x38) */
+typedef struct sDot11fIEnon_inheritance {
+	uint8_t             present;
+	uint8_t             num_data;
+	uint8_t             data[255];
+} tDot11fIEnon_inheritance;
+
+#define DOT11F_EID_NON_INHERITANCE (255)
+
+/* N.B. These #defines do *not* include the EID & length */
+#define DOT11F_IE_NON_INHERITANCE_MIN_LEN (0)
+
+#define DOT11F_IE_NON_INHERITANCE_MAX_LEN (255)
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+__must_check uint32_t dot11f_unpack_ie_non_inheritance(
+	tpAniSirGlobal,
+	uint8_t *,
+	uint8_t,
+	tDot11fIEnon_inheritance*,
+	bool);
+
+uint32_t dot11f_pack_ie_non_inheritance(
+	tpAniSirGlobal,
+	tDot11fIEnon_inheritance *,
+	uint8_t *,
+	uint32_t,
+	uint32_t*);
+
+uint32_t dot11f_get_packed_ie_non_inheritance(
+	tpAniSirGlobal,
+	tDot11fIEnon_inheritance *,
+	uint32_t*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+
 /* EID 221 (0xdd) {OUI 0x8c, 0xfd, 0xf0, 0x01} (Multi-IE) */
 typedef struct sDot11fIEqcn_ie {
 	uint8_t             present;
@@ -6004,6 +6044,7 @@ typedef struct sDot11fIEsta_profile {
 	tDot11fIEeht_cap                     eht_cap;
 	tDot11fIEeht_op                      eht_op;
 	tDot11fIEmax_chan_switch_time        max_chan_switch_time;
+	tDot11fIEnon_inheritance             non_inheritance;
 } tDot11fIEsta_profile;
 
 #define DOT11F_EID_STA_PROFILE (0)
@@ -6011,7 +6052,7 @@ typedef struct sDot11fIEsta_profile {
 /* N.B. These #defines do *not* include the EID & length */
 #define DOT11F_IE_STA_PROFILE_MIN_LEN (2)
 
-#define DOT11F_IE_STA_PROFILE_MAX_LEN (920)
+#define DOT11F_IE_STA_PROFILE_MAX_LEN (1177)
 
 #ifdef __cplusplus
 extern "C" {
@@ -10053,7 +10094,7 @@ typedef struct sDot11fIEmlo_ie {
 /* N.B. These #defines do *not* include the EID & length */
 #define DOT11F_IE_MLO_IE_MIN_LEN (2)
 
-#define DOT11F_IE_MLO_IE_MAX_LEN (939)
+#define DOT11F_IE_MLO_IE_MAX_LEN (1196)
 
 #ifdef __cplusplus
 extern "C" {

Dosya farkı çok büyük olduğundan ihmal edildi
+ 132 - 108
core/mac/src/sys/legacy/src/utils/src/dot11f.c


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor