Selaa lähdekoodia

qcacld-3.0: Update 11AX - HE IE's based on new draft - 1/4

Update HE Capabilities and HE Operation IE as per D1.3 spec.
Add new fields included in the new draft version.

Change-Id: I00e568c1889b001286abcbf4c653036b3b86ef3f
CRs-Fixed: 2092845
Naveen Rawat 7 vuotta sitten
vanhempi
sitoutus
25b76df53c

+ 33 - 19
core/mac/src/cfg/cfgUtil/dot11f.frms

@@ -2803,7 +2803,6 @@ IE MeasurementRequest (EID_MEAS_REQUEST)  // 7.3.2.21
 }
 
 const SUB_EID_PPET = 1;
-const SUB_EID_VHT_INFO = 2;
 
 IE vendor_he_cap (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x01)
 {
@@ -2836,7 +2835,10 @@ IE vendor_he_cap (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x01)
       bsrp_ampdu_aggr:1;
       qtp:1;
       a_bqr:1;
-      reserved1:5;
+      sr_responder:1;
+      ndp_feedback_supp:1;
+      ops_supp:1;
+      reserved1:2;
     }
     {
       dual_band:1;
@@ -2844,9 +2846,10 @@ IE vendor_he_cap (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x01)
       rx_pream_puncturing:4;
       device_class:1;
       ldpc_coding:1;
-      he_ltf_gi_ppdu:2;
-      he_ltf_gi_ndp:2;
-      stbc:2;
+      he_1x_ltf_800_gi_ppdu:1;
+      reserved:2;
+      he_4x_ltf_3200_gi_ndp:1;
+      stbc_lt_80mhz:2;
       doppler:2;
       ul_mu:2;
       dcm_enc_tx:3;
@@ -2858,9 +2861,7 @@ IE vendor_he_cap (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x01)
       su_beamformee:1;
       mu_beamformer:1;
       bfee_sts_lt_80:3;
-      nsts_tol_lt_80:3;
-      bfee_sta_gt_80:3;
-      nsts_tot_gt_80:3;
+      bfee_sts_gt_80:3;
       num_sounding_lt_80:3;
       num_sounding_gt_80:3;
       su_feedback_tone16:1;
@@ -2873,9 +2874,12 @@ IE vendor_he_cap (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x01)
       ppet_present:1;
       srp:1;
       power_boost:1;
+      he_ltf_800_gi_4x:1;
+      max_nc:3;
+      stbc_gt_80mhz:2;
     }
     {
-      he_ltf_gi_4x:1;
+      er_he_ltf_800_gi_4x:1;
       reserved2:7;
     }
     {
@@ -2895,13 +2899,6 @@ IE vendor_he_cap (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x01)
     }
 }
 
-IE vht_info(SUB_EID_VHT_INFO)
-{
-  chan_width, 1;
-  center_freq_seg0, 1;
-  center_freq_seg1, 1;
-}
-
 IE vendor_he_op (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x02)
 {
     {
@@ -2910,13 +2907,30 @@ IE vendor_he_op (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x02)
         twt_required: 1;
         rts_threshold: 10;
         partial_bss_col: 1;
-        maxbssid_ind: 8;
+        vht_oper_present: 1;
+        reserved1: 6;
+        mbssid_ap: 1;
         tx_bssid_ind: 1;
         bss_col_disabled: 1;
-        dual_beacon: 1;
+        reserved2: 1;
     }
     basic_mcs_nss[3];
-    MANDIE IE vht_info;
+    OPTIONAL UNION vht_oper (DISCRIMINATOR vht_oper_present)
+    {
+        info (vht_oper_present IS 1)
+        {
+            chan_width, 1;
+            center_freq_seg0, 1;
+            center_freq_seg1, 1;
+        }
+    };
+    OPTIONAL UNION maxbssid_ind (DISCRIMINATOR mbssid_ap)
+    {
+        info (mbssid_ap IS 1)
+        {
+            data, 1;
+        }
+    };
 }
 
 IE mu_edca_param_set (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x04)

+ 41 - 64
core/mac/src/include/dot11f.h

@@ -35,7 +35,7 @@
  *
  *
  * This file was automatically generated by 'framesc'
- * Tue Oct  10 16:54:18 2017 from the following file(s):
+ * Thu Oct 12 13:47:01 2017 from the following file(s):
  *
  * dot11f.frms
  *
@@ -4187,47 +4187,6 @@ uint32_t dot11f_get_packed_ie_tgt_mac_addr(
 }; /* End extern "C". */
 #endif /* C++ */
 
-/* EID 2 (0x02) */
-typedef struct sDot11fIEvht_info {
-	uint8_t             present;
-	uint8_t             chan_width;
-	uint8_t             center_freq_seg0;
-	uint8_t             center_freq_seg1;
-} tDot11fIEvht_info;
-
-#define DOT11F_EID_VHT_INFO (2)
-
-/* N.B. These #defines do *not* include the EID & length */
-#define DOT11F_IE_VHT_INFO_MIN_LEN (3)
-
-#define DOT11F_IE_VHT_INFO_MAX_LEN (3)
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* C++ */
-uint32_t dot11f_unpack_ie_vht_info(
-	tpAniSirGlobal,
-	uint8_t *,
-	uint32_t,
-	tDot11fIEvht_info*,
-	bool);
-
-uint32_t dot11f_pack_ie_vht_info(
-	tpAniSirGlobal,
-	tDot11fIEvht_info *,
-	uint8_t *,
-	uint32_t,
-	uint32_t*);
-
-uint32_t dot11f_get_packed_ie_vht_info(
-	tpAniSirGlobal,
-	tDot11fIEvht_info *,
-	uint32_t*);
-
-#ifdef __cplusplus
-}; /* End extern "C". */
-#endif /* C++ */
-
 /* EID 195 (0xc3) */
 typedef struct sDot11fIEvht_transmit_power_env {
 	uint8_t             present;
@@ -8694,7 +8653,7 @@ extern "C" {
 uint32_t dot11f_unpack_ie_fragment_ie(
 	tpAniSirGlobal,
 	uint8_t *,
-	uint8_t,
+	uint32_t,
 	tDot11fIEfragment_ie*,
 	bool);
 
@@ -9024,15 +8983,19 @@ typedef struct sDot11fIEvendor_he_cap {
 	uint8_t                bsrp_ampdu_aggr:1;
 	uint8_t                            qtp:1;
 	uint8_t                          a_bqr:1;
-	uint8_t                      reserved1:5;
+	uint8_t                   sr_responder:1;
+	uint8_t              ndp_feedback_supp:1;
+	uint8_t                       ops_supp:1;
+	uint8_t                      reserved1:2;
 	uint32_t                      dual_band:1;
 	uint32_t                     chan_width:7;
 	uint32_t            rx_pream_puncturing:4;
 	uint32_t                   device_class:1;
 	uint32_t                    ldpc_coding:1;
-	uint32_t                 he_ltf_gi_ppdu:2;
-	uint32_t                  he_ltf_gi_ndp:2;
-	uint32_t                           stbc:2;
+	uint32_t          he_1x_ltf_800_gi_ppdu:1;
+	uint32_t                       reserved:2;
+	uint32_t          he_4x_ltf_3200_gi_ndp:1;
+	uint32_t                  stbc_lt_80mhz:2;
 	uint32_t                        doppler:2;
 	uint32_t                          ul_mu:2;
 	uint32_t                     dcm_enc_tx:3;
@@ -9042,9 +9005,7 @@ typedef struct sDot11fIEvendor_he_cap {
 	uint32_t                  su_beamformee:1;
 	uint32_t                  mu_beamformer:1;
 	uint32_t                 bfee_sts_lt_80:3;
-	uint32_t                 nsts_tol_lt_80:3;
-	uint32_t                 bfee_sta_gt_80:3;
-	uint32_t                 nsts_tot_gt_80:3;
+	uint32_t                 bfee_sts_gt_80:3;
 	uint32_t             num_sounding_lt_80:3;
 	uint32_t             num_sounding_gt_80:3;
 	uint32_t             su_feedback_tone16:1;
@@ -9057,7 +9018,10 @@ typedef struct sDot11fIEvendor_he_cap {
 	uint32_t                   ppet_present:1;
 	uint32_t                            srp:1;
 	uint32_t                    power_boost:1;
-	uint8_t                   he_ltf_gi_4x:1;
+	uint32_t               he_ltf_800_gi_4x:1;
+	uint32_t                         max_nc:3;
+	uint32_t                  stbc_gt_80mhz:2;
+	uint8_t            er_he_ltf_800_gi_4x:1;
 	uint8_t                      reserved2:7;
 	uint16_t                  nss_supported:3;
 	uint16_t                  mcs_supported:3;
@@ -9101,18 +9065,31 @@ uint32_t dot11f_get_packed_ie_vendor_he_cap(
 
 /* EID 221 (0xdd) {OUI 0x00, 0x13, 0x74, 0x02} */
 typedef struct sDot11fIEvendor_he_op {
-	uint8_t                  present;
-	uint32_t                 bss_color:6;
-	uint32_t                default_pe:3;
-	uint32_t              twt_required:1;
-	uint32_t             rts_threshold:10;
-	uint32_t           partial_bss_col:1;
-	uint32_t              maxbssid_ind:8;
-	uint32_t              tx_bssid_ind:1;
-	uint32_t          bss_col_disabled:1;
-	uint32_t               dual_beacon:1;
-	uint8_t                  basic_mcs_nss[3];
-	tDot11fIEvht_info        vht_info;
+	uint8_t             present;
+	uint32_t            bss_color:6;
+	uint32_t           default_pe:3;
+	uint32_t         twt_required:1;
+	uint32_t        rts_threshold:10;
+	uint32_t      partial_bss_col:1;
+	uint32_t     vht_oper_present:1;
+	uint32_t            reserved1:6;
+	uint32_t            mbssid_ap:1;
+	uint32_t         tx_bssid_ind:1;
+	uint32_t     bss_col_disabled:1;
+	uint32_t            reserved2:1;
+	uint8_t             basic_mcs_nss[3];
+	union {
+		struct {
+			uint8_t chan_width;
+			uint8_t center_freq_seg0;
+			uint8_t center_freq_seg1;
+		} info; /* vht_oper_present = 1 */
+	} vht_oper;
+	union {
+		struct {
+			uint8_t data;
+		} info; /* mbssid_ap = 1 */
+	} maxbssid_ind;
 } tDot11fIEvendor_he_op;
 
 #define DOT11F_EID_VENDOR_HE_OP (221)
@@ -9120,7 +9097,7 @@ typedef struct sDot11fIEvendor_he_op {
 /* N.B. These #defines do *not* include the EID & length */
 #define DOT11F_IE_VENDOR_HE_OP_MIN_LEN (11)
 
-#define DOT11F_IE_VENDOR_HE_OP_MAX_LEN (16)
+#define DOT11F_IE_VENDOR_HE_OP_MAX_LEN (15)
 
 #ifdef __cplusplus
 extern "C" {

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 109 - 134
core/mac/src/sys/legacy/src/utils/src/dot11f.c


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä