Merge "Add WPA3 mixed modes support for Fuchsia tests" am: 08fe77a84a am: 3808ecce1c am: cc41733939

Original change: https://android-review.googlesource.com/c/platform/tools/test/connectivity/+/1549055

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I90ce453cf18561880ef2cf19995feae11d5da9d7
diff --git a/acts/framework/acts/controllers/ap_lib/hostapd_config.py b/acts/framework/acts/controllers/ap_lib/hostapd_config.py
index 7e12803..be990f7 100644
--- a/acts/framework/acts/controllers/ap_lib/hostapd_config.py
+++ b/acts/framework/acts/controllers/ap_lib/hostapd_config.py
@@ -443,15 +443,26 @@
                 self._wmm_enabled = 1
             else:
                 self._wmm_enabled = 0
+        # Default PMF Values
         if pmf_support is None:
-            if self.security and self.security.wpa3:
+            if (self.security and self.security.security_mode_string
+                    == hostapd_constants.WPA3_STRING):
+                # Set PMF required for WP3
                 self._pmf_support = hostapd_constants.PMF_SUPPORT_REQUIRED
+            elif (self.security and self.security.security_mode_string
+                  in hostapd_constants.WPA3_MODE_STRINGS):
+                # Default PMF to enabled for WPA3 mixed modes (can be
+                # overwritten by explicitly provided value)
+                self._pmf_support = hostapd_constants.PMF_SUPPORT_ENABLED
             else:
+                # Default PMD to disabled for all other modes (can be
+                # overwritten by explicitly provided value)
                 self._pmf_support = hostapd_constants.PMF_SUPPORT_DISABLED
         elif pmf_support not in hostapd_constants.PMF_SUPPORT_VALUES:
             raise ValueError('Invalid value for pmf_support: %r' % pmf_support)
         elif (pmf_support != hostapd_constants.PMF_SUPPORT_REQUIRED
-              and self.security and self.security.wpa3):
+              and self.security and self.security.security_mode_string
+              == hostapd_constants.WPA3_STRING):
             raise ValueError('PMF support must be required with wpa3.')
         else:
             self._pmf_support = pmf_support
diff --git a/acts/framework/acts/controllers/ap_lib/hostapd_constants.py b/acts/framework/acts/controllers/ap_lib/hostapd_constants.py
index 6a84f2d..652dd3c 100755
--- a/acts/framework/acts/controllers/ap_lib/hostapd_constants.py
+++ b/acts/framework/acts/controllers/ap_lib/hostapd_constants.py
@@ -25,8 +25,8 @@
 WEP = 0
 WPA1 = 1
 WPA2 = 2
-WPA3 = 2  # same as wpa2, distinguished by wpa_key_mgmt
-MIXED = 3
+WPA3 = 2  # same as wpa2 and wpa2/wpa3, distinguished by wpa_key_mgmt
+MIXED = 3  # applies to wpa/wpa2, and wpa/wpa2/wpa3, distinquished by wpa_key_mgmt
 ENT = 4  # get the correct constant
 MAX_WPA_PSK_LENGTH = 64
 MIN_WPA_PSK_LENGTH = 8
@@ -36,13 +36,39 @@
 WPA2_DEFAULT_CIPER = 'CCMP'
 WPA_GROUP_KEY_ROTATION_TIME = 600
 WPA_STRICT_REKEY_DEFAULT = True
+WEP_STRING = 'wep'
 WPA_STRING = 'wpa'
 WPA2_STRING = 'wpa2'
 WPA_MIXED_STRING = 'wpa/wpa2'
 WPA3_STRING = 'wpa3'
-WPA3_KEY_MGMT = 'SAE'
+WPA2_WPA3_MIXED_STRING = 'wpa2/wpa3'
+WPA_WPA2_WPA3_MIXED_STRING = 'wpa/wpa2/wpa3'
 ENT_STRING = 'ent'
 ENT_KEY_MGMT = 'WPA-EAP'
+WPA_PSK_KEY_MGMT = 'WPA-PSK'
+SAE_KEY_MGMT = 'SAE'
+DUAL_WPA_PSK_SAE_KEY_MGMT = 'WPA-PSK SAE'
+SECURITY_STRING_TO_SECURITY_MODE_INT = {
+    WPA_STRING: WPA1,
+    WPA2_STRING: WPA2,
+    WPA_MIXED_STRING: MIXED,
+    WPA3_STRING: WPA3,
+    WPA2_WPA3_MIXED_STRING: WPA3,
+    WPA_WPA2_WPA3_MIXED_STRING: MIXED,
+    WEP_STRING: WEP,
+    ENT_STRING: ENT
+}
+SECURITY_STRING_TO_WPA_KEY_MGMT = {
+    WPA_STRING: WPA_PSK_KEY_MGMT,
+    WPA2_STRING: WPA_PSK_KEY_MGMT,
+    WPA_MIXED_STRING: WPA_PSK_KEY_MGMT,
+    WPA3_STRING: SAE_KEY_MGMT,
+    WPA2_WPA3_MIXED_STRING: DUAL_WPA_PSK_SAE_KEY_MGMT,
+    WPA_WPA2_WPA3_MIXED_STRING: DUAL_WPA_PSK_SAE_KEY_MGMT
+}
+WPA3_MODE_STRINGS = {
+    WPA3_STRING, WPA2_WPA3_MIXED_STRING, WPA_WPA2_WPA3_MIXED_STRING
+}
 IEEE8021X = 1
 WLAN0_STRING = 'wlan0'
 WLAN1_STRING = 'wlan1'
@@ -50,7 +76,6 @@
 WLAN3_STRING = 'wlan3'
 WLAN0_GALE = 'wlan-2400mhz'
 WLAN1_GALE = 'wlan-5000mhz'
-WEP_STRING = 'wep'
 WEP_DEFAULT_KEY = 0
 WEP_HEX_LENGTH = [10, 26, 32, 58]
 WEP_STR_LENGTH = [5, 13, 16]
diff --git a/acts/framework/acts/controllers/ap_lib/hostapd_security.py b/acts/framework/acts/controllers/ap_lib/hostapd_security.py
index 968aadf..f692c9a 100644
--- a/acts/framework/acts/controllers/ap_lib/hostapd_security.py
+++ b/acts/framework/acts/controllers/ap_lib/hostapd_security.py
@@ -38,7 +38,8 @@
 
         Args:
             security_mode: Type of security modes.
-                           Options: wep, wpa, wpa2, wpa/wpa2, wpa3
+                        Options: wep, wpa, wpa2, wpa/wpa2, wpa3, wpa2/wpa3,
+                        wpa/wpa2/wpa3
             password: The PSK or passphrase for the security mode.
             wpa_cipher: The cipher to be used for wpa.
                         Options: TKIP, CCMP, TKIP CCMP
@@ -59,33 +60,19 @@
             radius_server_port: Radius server port for Enterprise auth.
             radius_server_secret: Radius server secret for Enterprise auth.
         """
+        self.security_mode_string = security_mode
         self.wpa_cipher = wpa_cipher
         self.wpa2_cipher = wpa2_cipher
-        self.wpa3 = security_mode == hostapd_constants.WPA3_STRING
         self.wpa_group_rekey = wpa_group_rekey
         self.wpa_strict_rekey = wpa_strict_rekey
         self.wep_default_key = wep_default_key
         self.radius_server_ip = radius_server_ip
         self.radius_server_port = radius_server_port
         self.radius_server_secret = radius_server_secret
-        if security_mode == hostapd_constants.WPA_STRING:
-            security_mode = hostapd_constants.WPA1
-        # Both wpa2 and wpa3 use hostapd security mode 2, and are distinguished
-        # by their key management field (WPA-PSK and SAE, respectively)
-        elif (security_mode == hostapd_constants.WPA2_STRING
-              or security_mode == hostapd_constants.WPA3_STRING):
-            security_mode = hostapd_constants.WPA2
-        elif security_mode == hostapd_constants.WPA_MIXED_STRING:
-            security_mode = hostapd_constants.MIXED
-        elif security_mode == hostapd_constants.WEP_STRING:
-            security_mode = hostapd_constants.WEP
-        elif security_mode == hostapd_constants.ENT_STRING:
-            security_mode = hostapd_constants.ENT
-        else:
-            security_mode = None
-        self.security_mode = security_mode
+        self.security_mode = hostapd_constants.SECURITY_STRING_TO_SECURITY_MODE_INT.get(
+            security_mode, None)
         if password:
-            if security_mode == hostapd_constants.WEP:
+            if self.security_mode == hostapd_constants.WEP:
                 if len(password) in hostapd_constants.WEP_STR_LENGTH:
                     self.password = '"%s"' % password
                 elif len(password) in hostapd_constants.WEP_HEX_LENGTH and all(
@@ -126,15 +113,17 @@
                     settings['wpa_psk'] = self.password
                 else:
                     settings['wpa_passphrase'] = self.password
-                if self.security_mode == hostapd_constants.MIXED:
+                # For wpa, wpa/wpa2, and wpa/wpa2/wpa3, add wpa_pairwise
+                if self.security_mode == hostapd_constants.WPA1 or self.security_mode == hostapd_constants.MIXED:
                     settings['wpa_pairwise'] = self.wpa_cipher
+                # For wpa/wpa2, wpa2, wpa3, and wpa2/wpa3, and wpa/wpa2, wpa3, add rsn_pairwise
+                if self.security_mode == hostapd_constants.WPA2 or self.security_mode == hostapd_constants.MIXED:
                     settings['rsn_pairwise'] = self.wpa2_cipher
-                elif self.security_mode == hostapd_constants.WPA1:
-                    settings['wpa_pairwise'] = self.wpa_cipher
-                elif self.security_mode == hostapd_constants.WPA2:
-                    settings['rsn_pairwise'] = self.wpa2_cipher
-                if self.wpa3:
-                    settings['wpa_key_mgmt'] = 'SAE'
+                # Add wpa_key_mgmt based on security mode string
+                if self.security_mode_string in hostapd_constants.SECURITY_STRING_TO_WPA_KEY_MGMT:
+                    settings[
+                        'wpa_key_mgmt'] = hostapd_constants.SECURITY_STRING_TO_WPA_KEY_MGMT[
+                            self.security_mode_string]
                 if self.wpa_group_rekey:
                     settings['wpa_group_rekey'] = self.wpa_group_rekey
                 if self.wpa_strict_rekey:
diff --git a/acts_tests/acts_contrib/test_utils/wifi/WifiBaseTest.py b/acts_tests/acts_contrib/test_utils/wifi/WifiBaseTest.py
index a56e794..9f3ba7e 100644
--- a/acts_tests/acts_contrib/test_utils/wifi/WifiBaseTest.py
+++ b/acts_tests/acts_contrib/test_utils/wifi/WifiBaseTest.py
@@ -482,10 +482,12 @@
                 owe_dict[hostapd_constants.BAND_5G]["security"] = "owe"
                 network_list.append(owe_dict)
             if sae_network:
-                sae_dict = self.get_psk_network(
-                    mirror_ap, self.sae_networks, hidden, same_ssid,
-                    hostapd_constants.WPA3_KEY_MGMT, ssid_length_2g,
-                    ssid_length_5g, passphrase_length_2g, passphrase_length_5g)
+                sae_dict = self.get_psk_network(mirror_ap, self.sae_networks,
+                                                hidden, same_ssid,
+                                                hostapd_constants.SAE_KEY_MGMT,
+                                                ssid_length_2g, ssid_length_5g,
+                                                passphrase_length_2g,
+                                                passphrase_length_5g)
                 sae_dict[hostapd_constants.BAND_2G]["security"] = "sae"
                 sae_dict[hostapd_constants.BAND_5G]["security"] = "sae"
                 network_list.append(sae_dict)
diff --git a/acts_tests/tests/google/fuchsia/wlan/compliance/WlanSecurityComplianceABGTest.py b/acts_tests/tests/google/fuchsia/wlan/compliance/WlanSecurityComplianceABGTest.py
index f3e47b5..8bcb5e8 100644
--- a/acts_tests/tests/google/fuchsia/wlan/compliance/WlanSecurityComplianceABGTest.py
+++ b/acts_tests/tests/google/fuchsia/wlan/compliance/WlanSecurityComplianceABGTest.py
@@ -74,16 +74,20 @@
         ptk_type = security.group(2)
         wpa_cipher = None
         wpa2_cipher = None
-        if '_wpa_' in security_mode and '_wpa2_' in security_mode:
-            security_mode = 'wpa/wpa2'
+        if '_wpa_wpa2_wpa3_' in security_mode:
+            security_mode = hostapd_constants.WPA_WPA2_WPA3_MIXED_STRING
+        elif '_wpa_wpa2_' in security_mode:
+            security_mode = hostapd_constants.WPA_MIXED_STRING
+        elif '_wpa2_wpa3_' in security_mode:
+            security_mode = hostapd_constants.WPA2_WPA3_MIXED_STRING
         elif '_wep_' in security_mode:
-            security_mode = 'wep'
+            security_mode = hostapd_constants.WEP_STRING
         elif '_wpa_' in security_mode:
-            security_mode = 'wpa'
+            security_mode = hostapd_constants.WPA_STRING
         elif '_wpa2_' in security_mode:
-            security_mode = 'wpa2'
+            security_mode = hostapd_constants.WPA2_STRING
         elif '_wpa3_' in security_mode:
-            security_mode = 'wpa3'
+            security_mode = hostapd_constants.WPA3_STRING
         if 'tkip' in ptk_type and 'ccmp' in ptk_type:
             wpa_cipher = 'TKIP CCMP'
             wpa2_cipher = 'TKIP CCMP'
@@ -132,7 +136,9 @@
                 password = utf8_password_2g
         else:
             password = rand_ascii_str(hostapd_constants.MIN_WPA_PSK_LENGTH)
-        if security_mode == 'wpa/wpa2':
+        if security_mode in hostapd_constants.WPA3_MODE_STRINGS:
+            target_security = 'wpa3'
+        elif security_mode == 'wpa/wpa2':
             target_security = 'wpa2'
         else:
             target_security = security_mode
@@ -170,6 +176,8 @@
             self.dut = create_wlan_device(self.android_devices[0])
 
         self.access_point = self.access_points[0]
+        # TODO(fxb/67582): Remove this function logic, since its only used to
+        # generate random SSIDs, not the network security itself.
         secure_network = self.get_psk_network(False, [],
                                               ssid_length_2g=15,
                                               ssid_length_5g=15)
@@ -2132,6 +2140,1103 @@
             'Failed to associate.')
 
     @create_security_profile
+    def test_associate_11a_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_max_length_password_sec_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_max_length_password_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_frag_430_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_frag_430_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_rts_256_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_rts_256_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_rts_256_frag_430_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_high_dtim_low_beacon_int_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 dtim_period=hostapd_constants.HIGH_DTIM,
+                 beacon_interval=hostapd_constants.LOW_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_low_dtim_high_beacon_int_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 dtim_period=hostapd_constants.LOW_DTIM,
+                 beacon_interval=hostapd_constants.HIGH_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_with_WMM_with_default_values_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 force_wmm=True,
+                 additional_ap_parameters=hostapd_constants.
+                 WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_with_vendor_ie_in_beacon_correct_length_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['correct_length_beacon'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_with_vendor_ie_in_beacon_zero_length_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['zero_length_beacon_without_data'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_with_vendor_ie_in_beacon_similar_to_wpa_ie_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['simliar_to_wpa'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_max_length_password_sec_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_max_length_password_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_frag_430_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_frag_430_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_rts_256_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_rts_256_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_rts_256_frag_430_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_high_dtim_low_beacon_int_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 dtim_period=hostapd_constants.HIGH_DTIM,
+                 beacon_interval=hostapd_constants.LOW_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_low_dtim_high_beacon_int_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 dtim_period=hostapd_constants.LOW_DTIM,
+                 beacon_interval=hostapd_constants.HIGH_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_with_WMM_with_default_values_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 force_wmm=True,
+                 additional_ap_parameters=hostapd_constants.
+                 WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_with_vendor_ie_in_beacon_correct_length_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['correct_length_beacon'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_with_vendor_ie_in_beacon_zero_length_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['zero_length_beacon_without_data'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_with_vendor_ie_in_beacon_similar_to_wpa_ie_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['simliar_to_wpa'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_max_length_password_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_max_length_password_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_rts_256_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_rts_256_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_rts_256_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_high_dtim_low_beacon_int_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 dtim_period=hostapd_constants.HIGH_DTIM,
+                 beacon_interval=hostapd_constants.LOW_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_low_dtim_high_beacon_int_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 dtim_period=hostapd_constants.LOW_DTIM,
+                 beacon_interval=hostapd_constants.HIGH_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_with_WMM_with_default_values_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 force_wmm=True,
+                 additional_ap_parameters=hostapd_constants.
+                 WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_with_vendor_ie_in_beacon_correct_length_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['correct_length_beacon'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_with_vendor_ie_in_beacon_zero_length_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['zero_length_beacon_without_data'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_with_vendor_ie_in_beacon_similar_to_wpa_ie_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['simliar_to_wpa'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_max_length_password_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_max_length_password_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_rts_256_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_rts_256_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_rts_256_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_high_dtim_low_beacon_int_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 dtim_period=hostapd_constants.HIGH_DTIM,
+                 beacon_interval=hostapd_constants.LOW_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_low_dtim_high_beacon_int_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 dtim_period=hostapd_constants.LOW_DTIM,
+                 beacon_interval=hostapd_constants.HIGH_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_with_WMM_with_default_values_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 force_wmm=True,
+                 additional_ap_parameters=hostapd_constants.
+                 WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_with_vendor_ie_in_beacon_correct_length_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['correct_length_beacon'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_with_vendor_ie_in_beacon_zero_length_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['zero_length_beacon_without_data'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11a_pmf_with_vendor_ie_in_beacon_similar_to_wpa_ie_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
+                 ssid=self.secure_network_5g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['simliar_to_wpa'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_5g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
     def test_associate_11bg_sec_open_wep_5_chars_ptk_none(self):
         setup_ap(access_point=self.access_point,
                  profile_name=AP_11ABG_PROFILE_NAME,
@@ -4067,6 +5172,1103 @@
             'Failed to associate.')
 
     @create_security_profile
+    def test_associate_11bg_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_max_length_password_sec_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_max_length_password_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_frag_430_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_frag_430_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_rts_256_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_rts_256_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_rts_256_frag_430_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_high_dtim_low_beacon_int_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 dtim_period=hostapd_constants.HIGH_DTIM,
+                 beacon_interval=hostapd_constants.LOW_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_low_dtim_high_beacon_int_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 dtim_period=hostapd_constants.LOW_DTIM,
+                 beacon_interval=hostapd_constants.HIGH_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_with_WMM_with_default_values_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(
+            access_point=self.access_point,
+            profile_name=AP_11ABG_PROFILE_NAME,
+            channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+            ssid=self.secure_network_2g['SSID'],
+            force_wmm=True,
+            additional_ap_parameters=hostapd_constants.WMM_11B_DEFAULT_PARAMS,
+            security=self.security_profile,
+            password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_with_vendor_ie_in_beacon_correct_length_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['correct_length_beacon'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_with_vendor_ie_in_beacon_zero_length_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['zero_length_beacon_without_data'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_with_vendor_ie_in_beacon_similar_to_wpa_ie_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['simliar_to_wpa'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_max_length_password_sec_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_max_length_password_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_frag_430_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_frag_430_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_rts_256_sec_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_rts_256_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_rts_256_frag_430_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_high_dtim_low_beacon_int_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 dtim_period=hostapd_constants.HIGH_DTIM,
+                 beacon_interval=hostapd_constants.LOW_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_low_dtim_high_beacon_int_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 dtim_period=hostapd_constants.LOW_DTIM,
+                 beacon_interval=hostapd_constants.HIGH_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_with_WMM_with_default_values_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(
+            access_point=self.access_point,
+            profile_name=AP_11ABG_PROFILE_NAME,
+            channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+            ssid=self.secure_network_2g['SSID'],
+            force_wmm=True,
+            additional_ap_parameters=hostapd_constants.WMM_11B_DEFAULT_PARAMS,
+            security=self.security_profile,
+            pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+            password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_with_vendor_ie_in_beacon_correct_length_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['correct_length_beacon'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_with_vendor_ie_in_beacon_zero_length_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['zero_length_beacon_without_data'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_with_vendor_ie_in_beacon_similar_to_wpa_ie_sec_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['simliar_to_wpa'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_max_length_password_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_max_length_password_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_rts_256_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_rts_256_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_rts_256_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_high_dtim_low_beacon_int_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 dtim_period=hostapd_constants.HIGH_DTIM,
+                 beacon_interval=hostapd_constants.LOW_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_low_dtim_high_beacon_int_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 dtim_period=hostapd_constants.LOW_DTIM,
+                 beacon_interval=hostapd_constants.HIGH_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_with_WMM_with_default_values_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(
+            access_point=self.access_point,
+            profile_name=AP_11ABG_PROFILE_NAME,
+            channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+            ssid=self.secure_network_2g['SSID'],
+            force_wmm=True,
+            additional_ap_parameters=hostapd_constants.WMM_11B_DEFAULT_PARAMS,
+            security=self.security_profile,
+            password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_with_vendor_ie_in_beacon_correct_length_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['correct_length_beacon'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_with_vendor_ie_in_beacon_zero_length_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['zero_length_beacon_without_data'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_with_vendor_ie_in_beacon_similar_to_wpa_ie_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['simliar_to_wpa'],
+                 security=self.security_profile,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_max_length_password_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_max_length_password_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_rts_256_sec_wpa_wpa2_wpa3_psk_sae_ptk_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_rts_256_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_rts_256_frag_430_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 rts_threshold=256,
+                 frag_threshold=430,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_high_dtim_low_beacon_int_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 dtim_period=hostapd_constants.HIGH_DTIM,
+                 beacon_interval=hostapd_constants.LOW_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_low_dtim_high_beacon_int_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 dtim_period=hostapd_constants.LOW_DTIM,
+                 beacon_interval=hostapd_constants.HIGH_BEACON_INTERVAL,
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password,
+                 force_wmm=False)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_with_WMM_with_default_values_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(
+            access_point=self.access_point,
+            profile_name=AP_11ABG_PROFILE_NAME,
+            channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+            ssid=self.secure_network_2g['SSID'],
+            force_wmm=True,
+            additional_ap_parameters=hostapd_constants.WMM_11B_DEFAULT_PARAMS,
+            security=self.security_profile,
+            pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+            password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_with_vendor_ie_in_beacon_correct_length_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['correct_length_beacon'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_with_vendor_ie_in_beacon_zero_length_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['zero_length_beacon_without_data'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
+    def test_associate_11bg_pmf_with_vendor_ie_in_beacon_similar_to_wpa_ie_sec_wpa_wpa2_wpa3_psk_sae_ptk_tkip_or_ccmp(
+            self):
+        setup_ap(access_point=self.access_point,
+                 profile_name=AP_11ABG_PROFILE_NAME,
+                 channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
+                 ssid=self.secure_network_2g['SSID'],
+                 additional_ap_parameters=hostapd_constants.
+                 VENDOR_IE['simliar_to_wpa'],
+                 security=self.security_profile,
+                 pmf_support=hostapd_constants.PMF_SUPPORT_REQUIRED,
+                 password=self.client_password)
+
+        asserts.assert_true(
+            self.dut.associate(self.secure_network_2g['SSID'],
+                               target_security=self.target_security,
+                               target_pwd=self.client_password),
+            'Failed to associate.')
+
+    @create_security_profile
     def test_associate_utf8_password_11bg_sec_wpa2_psk_ptk_ccmp(self):
         setup_ap(access_point=self.access_point,
                  profile_name=AP_11ABG_PROFILE_NAME,