]> granicus.if.org Git - esp-idf/commitdiff
test: update ci test case
authorhuchaoru <huchaoru@espressif.com>
Mon, 18 Dec 2017 11:24:09 +0000 (19:24 +0800)
committerbot <bot@espressif.com>
Tue, 10 Apr 2018 14:08:10 +0000 (14:08 +0000)
57 files changed:
.gitlab-ci.yml
components/idf_test/integration_test/INIT_COND_SSC.yml [new file with mode: 0644]
components/idf_test/integration_test/IT_BTSTK_COEXIST.yml [deleted file]
components/idf_test/integration_test/IT_BTSTK_GAP.yml [deleted file]
components/idf_test/integration_test/IT_BTSTK_MISC.yml [deleted file]
components/idf_test/integration_test/InitialConditionAll.yml [deleted file]
components/idf_test/integration_test/KnownIssues
components/idf_test/integration_test/TC_IT_BTSTK_GAP.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_BTSTK_GATT.yml [moved from components/idf_test/integration_test/IT_BTSTK_GATT.yml with 55% similarity]
components/idf_test/integration_test/TC_IT_BTSTK_MISC.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_BTSTK_SMP.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_SYS_MISC.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_SYS_NVS.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_TCPIP_DHCP.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_TCPIP_DNS.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_TCPIP_ICMP.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_TCPIP_IGMP.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_TCPIP_IP.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_TCPIP_TCP.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_TCPIP_UDP.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_WIFI_ADDR.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_WIFI_AMSDU.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_WIFI_CONN.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_WIFI_MODE.yml [new file with mode: 0644]
components/idf_test/integration_test/TC_IT_WIFI_SCAN.yml [new file with mode: 0644]
components/idf_test/integration_test/TEST_ENV_SSC.yml [new file with mode: 0644]
components/idf_test/integration_test/TestCaseAll.yml [deleted file]
components/idf_test/integration_test/TestCaseScript/BLEFunction/AdvInterval.py [deleted file]
components/idf_test/integration_test/TestCaseScript/BLEFunction/__init__.py [deleted file]
components/idf_test/integration_test/TestCaseScript/NVSTest/NVSCompatibleWiFi.py [deleted file]
components/idf_test/integration_test/TestCaseScript/NVSTest/__init__.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPAPNSTA.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPConnection.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPConnectionUtility.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPDataValidation.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPMultiSTASendRecv.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPRandomSend.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSTAMuitiSockSendRecv.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSTAsendrecv.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSendRecv.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/TCPThroughput.py [deleted file]
components/idf_test/integration_test/TestCaseScript/TCPStress/__init__.py [deleted file]
components/idf_test/integration_test/TestCaseScript/UDPStress/UDPBroadcast.py [deleted file]
components/idf_test/integration_test/TestCaseScript/UDPStress/UDPMultiSTASendRecv.py [deleted file]
components/idf_test/integration_test/TestCaseScript/UDPStress/UDPPacketLose.py [deleted file]
components/idf_test/integration_test/TestCaseScript/UDPStress/UDPSTAMuitiSocketSendRecv.py [deleted file]
components/idf_test/integration_test/TestCaseScript/UDPStress/UDPSendRecv.py [deleted file]
components/idf_test/integration_test/TestCaseScript/UDPStress/UDPThroughput.py [deleted file]
components/idf_test/integration_test/TestCaseScript/UDPStress/__init__.py [deleted file]
components/idf_test/integration_test/TestCaseScript/WiFiStress/SoftAPNSTA.py [deleted file]
components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiConnUtility.py [deleted file]
components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiJAP.py [deleted file]
components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiJAPAtt.py [deleted file]
components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiSmartConfig.py [deleted file]
components/idf_test/integration_test/TestCaseScript/WiFiStress/__init__.py [deleted file]
components/idf_test/integration_test/TestEnvAll.yml [deleted file]

index 8b771bbe01353d694dbf54e3eccbd9a8960f8ebf..1f1b560d76c4c93d59bee0dbba2c6da0452d3f56 100644 (file)
@@ -296,6 +296,7 @@ test_report:
   only:
     - master
     - triggers
+    - schedules
     - /^release\/v/
     - /^v\d+\.\d+(\.\d+)?($|-)/
   variables:
@@ -514,6 +515,7 @@ assign_test:
     - /^release\/v/
     - /^v\d+\.\d+(\.\d+)?($|-)/
     - triggers
+    - schedules
   # gitlab ci do not support match job with RegEx or wildcard now in dependencies.
   # we have a lot build example jobs and the binaries them exceed the limitation of artifacts.
   # we can't artifact them in one job. For example test jobs, download all artifacts from previous stages.
@@ -553,6 +555,7 @@ assign_test:
     - /^release\/v/
     - /^v\d+\.\d+(\.\d+)?($|-)/
     - triggers
+    - schedules
   allow_failure: true
   dependencies:
     - assign_test
@@ -970,35 +973,59 @@ IT_003_07:
     - ESP32_IDF
     - SSC_T2_1
 
-IT_004_01:
+IT_003_08:
   <<: *test_template
   tags:
     - ESP32_IDF
-    - SSC_T1_APC
+    - SSC_T2_1
 
-IT_005_01:
+IT_003_09:
   <<: *test_template
   tags:
     - ESP32_IDF
-    - SSC_T1_WEP
+    - SSC_T2_1
+
+IT_003_10:
+  <<: *test_template
+  tags:
+    - ESP32_IDF
+    - SSC_T2_1
+
+IT_003_11:
+  <<: *test_template
+  tags:
+    - ESP32_IDF
+    - SSC_T2_1
+
+IT_003_12:
+  <<: *test_template
+  tags:
+    - ESP32_IDF
+    - SSC_T2_1
 
-IT_006_01:
+IT_003_13:
   <<: *test_template
   tags:
     - ESP32_IDF
-    - SSC_T3_PhyMode
+    - SSC_T2_1
+
+IT_003_14:
+  <<: *test_template
+  tags:
+    - ESP32_IDF
+    - SSC_T2_1
 
-IT_007_01:
+IT_004_01:
   <<: *test_template
   tags:
     - ESP32_IDF
-    - SSC_T2_PhyMode
+    - SSC_T1_APC
 
-IT_008_01:
+IT_005_01:
   <<: *test_template
   tags:
     - ESP32_IDF
-    - SSC_T2_PhyMode
+    - SSC_T1_WEP
 
 IT_009_01:
   <<: *test_template
@@ -1006,6 +1033,12 @@ IT_009_01:
     - ESP32_IDF
     - SSC_T1_3
 
+IT_010_01:
+  <<: *test_template
+  tags:
+    - ESP32_IDF
+    - SSC_T5_1
+
 IT_501_01:
   <<: *test_template
   tags:
diff --git a/components/idf_test/integration_test/INIT_COND_SSC.yml b/components/idf_test/integration_test/INIT_COND_SSC.yml
new file mode 100644 (file)
index 0000000..d143bf0
--- /dev/null
@@ -0,0 +1,2028 @@
+.SSC_INIT_COND: &SSC_INIT_COND
+  test script: InitCondBase
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 soc -T
+    - - R SSC1 C +CLOSEALL
+  - - SSC SSC1 ram
+    - - 'R SSC1 C +FREEHEAP:'
+
+initial condition:
+- tag: APM1
+  <<: *SSC_INIT_COND
+  initial condition detail: AP mode, DHCP on, will autogen a TC with initial condition
+    APSTA1
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:2
+  - - SSC SSC1 ap -Q
+    - - R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)
+  - - SSC SSC1 dhcp -Q -o 2
+    - - R SSC1 C +DHCP:AP,STARTED
+  - - SSC SSC1 mac -Q -o 2
+    - - R SSC1 P <target_ap_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+- tag: APM2
+  <<: *SSC_INIT_COND
+  initial condition detail: AP mode, PC join AP, DHCP on, will autogen a TC with initial
+    condition APSTA2
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:2
+  - - SSC SSC1 ap -Q
+    - - R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)
+  - - SSC SSC1 ap -L
+    - - R SSC1 RE "\+LSTA:.+,%%s"%%(<pc_ip_wifi>)
+  - - SSC SSC1 dhcp -Q -o 2
+    - - R SSC1 C +DHCP:AP,STARTED
+  - - SSC SSC1 mac -Q -o 2
+    - - R SSC1 P <target_ap_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
+      <target_encryption>
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
+      <target_encryption>
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+- tag: APO1
+  <<: *SSC_INIT_COND
+  initial condition detail: AP mode, will NOT autogen a TC with initial condition
+    APSTA1
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:2
+  - - SSC SSC1 ap -Q
+    - - R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)
+  - - SSC SSC1 dhcp -Q -o 2
+    - - R SSC1 C +DHCP:AP,STARTED
+  - - SSC SSC1 mac -Q -o 2
+    - - R SSC1 P <target_ap_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+- tag: APO2
+  <<: *SSC_INIT_COND
+  initial condition detail: AP mode, will NOT autogen a TC with initial condition
+    APSTA2
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:2
+  - - SSC SSC1 ap -Q
+    - - R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)
+  - - SSC SSC1 ap -L
+    - - R SSC1 RE "\+LSTA:.+,%%s"%%(<pc_ip_wifi>)
+  - - SSC SSC1 dhcp -Q -o 2
+    - - R SSC1 C +DHCP:AP,STARTED
+  - - SSC SSC1 mac -Q -o 2
+    - - R SSC1 P <target_ap_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
+      <target_encryption>
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
+      <target_encryption>
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+- <<: *SSC_INIT_COND
+  check cmd set:
+  - ''
+  - - SSC SSC1 upgrade -Q -t 1
+    - - R SSC1 C BIN_ID,0
+  - - SSC SSC1 upgrade -Q -t 2 -b 0
+    - - R SSC1 C BIN_INFO,0
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 upgrade -R -r 1 -s <ota_bin_size>
+    - - R SSC1 NC ERROR C !!!ready!!!
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  - - SOC SOC1 ULISTEN <test_tcp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SOC SOC1 SETOPT REPLY BIN
+    - - R SOC_COM C OK
+  - - SSC SSC1 upgrade -I -b 0 -f 0
+    - - P SSC1 C +UPGRADE:OK
+  - - SSC SSC1 upgrade -U -i <pc_ip> -p <test_tcp_port1> -u <ota_bin>
+    - - P SSC1 C +UPGRADE:SUCCEED
+  - - SSC SSC1 upgrade -R -b 0
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  initial condition detail: AP only mode, running BIN0 (located on flash id 0)
+  restore cmd set:
+  - ''
+  - - SSC SSC1 upgrade -Q -t 2 -b 0
+    - - R SSC1 C BIN_INFO,0
+  - - SSC SSC1 upgrade -R -b 0
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  tag: APOBIN0
+- tag: APSTA1
+  <<: *SSC_INIT_COND
+  initial condition detail: testing ap on sta + ap mode (autogen by APM1)
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:3
+  - - SSC SSC1 ap -Q
+    - - R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)
+  - - SSC SSC1 dhcp -Q -o 2
+    - - R SSC1 C +DHCP:AP,STARTED
+  - - SSC SSC1 mac -Q -o 2
+    - - R SSC1 P <target_ap_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+- tag: APSTA2
+  <<: *SSC_INIT_COND
+  initial condition detail: testing ap on sta + ap mode,  PC join AP (autogen by APM2)
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:3
+  - - SSC SSC1 ap -Q
+    - - R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)
+  - - SSC SSC1 ap -L
+    - - R SSC1 RE "\+LSTA:.+,%%s"%%(<pc_ip_wifi>)
+  - - SSC SSC1 dhcp -Q -o 2
+    - - R SSC1 C +DHCP:AP,STARTED
+  - - SSC SSC1 mac -Q -o 2
+    - - R SSC1 P <target_ap_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
+      <target_encryption>
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
+      <target_encryption>
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+- tag: APWIFISTO
+  <<: *SSC_INIT_COND
+  initial condition detail: AP mode, wifi will stop with initial condition APWIFISTO
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:2
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 c +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+- tag: BLE_CONN2
+  <<: *SSC_INIT_COND
+  initial condition detail: 2 DUT which BLE is enabled, DUT1 connected with DUT2,
+    DUT2 created GATT service 0xA000
+  check cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  restore cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-2] sta -D
+    - []
+  - - SSC SSC[1-2] bt -D -z init
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] bt -D -z enable
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - - R SSC2 C +GATTS:StartService,OK,A000
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - - R SSC1 C +BLE:GattcConnect,OK
+      - P SSC2 C +BLE:GattsConnect
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - - R SSC1 C +GATTC:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-2] reboot
+    - - R SSC[1-2] C !!!ready!!!
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-2] sta -D
+    - []
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - - R SSC2 C +GATTS:StartService,OK,A000
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - - R SSC1 C +BLE:GattcConnect,OK
+      - P SSC2 C +BLE:GattsConnect
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - - R SSC1 C +GATTC:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_CONN3
+  <<: *SSC_INIT_COND
+  initial condition detail: 2 DUT which BLE is enabled, DUT1 connected with DUT2,
+    DUT2 created GATT service 0xA002
+  check cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  restore cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-2] sta -D
+    - []
+  - - SSC SSC[1-2] bt -D -z init
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] bt -D -z enable
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC2 gatts -S -z load -p 0xA2
+    - - R SSC2 C +GATTS:StartService,OK,A002
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - - R SSC1 C +BLE:GattcConnect,OK
+      - P SSC2 C +BLE:GattsConnect
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - - R SSC1 C +GATTC:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-2] reboot
+    - - R SSC[1-2] C !!!ready!!!
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-2] sta -D
+    - []
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC2 gatts -S -z load -p 0xA2
+    - - R SSC2 C +GATTS:StartService,OK,A002
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - - R SSC1 C +BLE:GattcConnect,OK
+      - P SSC2 C +BLE:GattsConnect
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - - R SSC1 C +GATTC:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_CONN4
+  <<: *SSC_INIT_COND
+  initial condition detail: 2 DUT which BLE is enabled, create both GATTC and GATTS
+    app on DUT1 and DUT2. DUT1 connected with DUT2. use GATT service A002.
+  check cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  restore cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-2] sta -D
+    - []
+  - - SSC SSC[1-2] bt -D -z init
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] bt -D -z enable
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC[1-2] gatts -S -z load -p 0xA2
+    - - R SSC[1-2] C +GATTS:StartService,OK,A002
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - - R SSC1 C +BLE:GattcConnect,OK
+      - P SSC2 C +BLE:GattsConnect
+  - - SSC SSC2 bleconn -C -p 0x10 -a <dut1_bt_mac>
+    - - R SSC2 C +BLE:GattcOpen,OK
+  - - SSC SSC[1-2] gattc -F -r <dut[2-1]_bt_mac>
+    - - R SSC[1-2] C +GATTC:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-2] reboot
+    - - R SSC[1-2] C !!!ready!!!
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-2] sta -D
+    - []
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC[1-2] gatts -S -z load -p 0xA2
+    - - R SSC[1-2] C +GATTS:StartService,OK,A002
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - - R SSC1 C +BLE:GattcConnect,OK
+      - P SSC2 C +BLE:GattsConnect
+  - - SSC SSC2 bleconn -C -p 0x10 -a <dut1_bt_mac>
+    - - R SSC2 C +BLE:GattcOpen,OK
+  - - SSC SSC[1-2] gattc -F -r <dut[2-1]_bt_mac>
+    - - R SSC[1-2] C +GATTC:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_CONN5
+  <<: *SSC_INIT_COND
+  initial condition detail: 5 DUT which BLE is enabled, DUT1 connected with DUT2-5
+    as master, DUT2-5 created GATT service 0xA002
+  check cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-5] reboot
+    - - R SSC[1-5] C !!!ready!!!
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-5] sta -D
+    - []
+  - - SSC SSC[1-5] ble -R
+    - - 'R SSC[1-5] C +BLE:'
+  - - SSC SSC[1-5] bleconn -D -z all
+    - - 'R SSC[1-5] C +BLECONN:'
+  - - SSC SSC[1-5] gatts -S -z delete
+    - - 'R SSC[1-5] C +GATTS:'
+  - - SSC SSC[1-5] gattc -U -z all
+    - - R SSC[1-5] C +GATTC:OK
+  - - SSC SSC[1-5] bleadv -D -z stop
+    - - R SSC[1-5] C +BLEADV:OK
+  - - SSC SSC[2-5] bleadv -D -z start
+    - - P SSC[2-5] C +BLEADV:Start,OK
+  - - SSC SSC[2-5] gatts -S -z load -p 0xA2
+    - - P SSC[2-5] C +GATTS:StartService,OK,A002
+  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
+    - ''
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>
+    - - R SSC1 RE "\+BLE:GattcConnect,OK,0010,%%s"%%(<dut{%d}_bt_mac>)
+      - P SSC{%d} C +BLE:GattsConnect
+  restore cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-5] sta -D
+    - []
+  - - SSC SSC[1-5] bt -D -z init
+    - - 'R SSC[1-5] C +BT:'
+  - - SSC SSC[1-5] bt -D -z enable
+    - - 'R SSC[1-5] C +BT:'
+  - - SSC SSC[1-5] ble -R
+    - - 'R SSC[1-5] C +BLE:'
+  - - SSC SSC[1-5] bleconn -D -z all
+    - - 'R SSC[1-5] C +BLECONN:'
+  - - SSC SSC[1-5] gatts -S -z delete
+    - - 'R SSC[1-5] C +GATTS:'
+  - - SSC SSC[1-5] gattc -U -z all
+    - - R SSC[1-5] C +GATTC:OK
+  - - SSC SSC[1-5] bleadv -D -z stop
+    - - R SSC[1-5] C +BLEADV:OK
+  - - SSC SSC[2-5] bleadv -D -z start
+    - - P SSC[2-5] C +BLEADV:Start,OK
+  - - SSC SSC[2-5] gatts -S -z load -p 0xA2
+    - - P SSC[2-5] C +GATTS:StartService,OK,A002
+  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
+    - ''
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>
+    - - R SSC1 RE "\+BLE:GattcConnect,OK,0010,%%s"%%(<dut{%d}_bt_mac>)
+      - P SSC{%d} C +BLE:GattsConnect
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - - R SSC1 C +GATTC:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_CONN6
+  <<: *SSC_INIT_COND
+  initial condition detail: 5 DUT which BLE is enabled, DUT1 is slave, connected by
+    DUT2-5, DUT1 created GATT service 0xA002
+  check cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  restore cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-5] sta -D
+    - []
+  - - SSC SSC[1-5] bt -D -z init
+    - - 'R SSC[1-5] C +BT:'
+  - - SSC SSC[1-5] bt -D -z enable
+    - - 'R SSC[1-5] C +BT:'
+  - - SSC SSC[1-5] ble -R
+    - - 'R SSC[1-5] C +BLE:'
+  - - SSC SSC[1-5] bleconn -D -z all
+    - - 'R SSC[1-5] C +BLECONN:'
+  - - SSC SSC[1-5] gatts -S -z delete
+    - - 'R SSC[1-5] C +GATTS:'
+  - - SSC SSC[1-5] gattc -U -z all
+    - - R SSC[1-5] C +GATTC:OK
+  - - SSC SSC[1-5] bleadv -D -z stop
+    - - R SSC[1-5] C +BLEADV:OK
+  - - SSC SSC1 gatts -S -z load -p 0xA2
+    - - R SSC1 C +GATTS:StartService,OK,A002
+  - - LOOP 4 2 "[2,3,4,5]" "[2,3,4,5]"
+    - ''
+  - - SSC SSC1 bleadv -D -z start
+    - - P SSC1 C +BLEADV:Start,OK
+  - - SSC SSC{%d} bleconn -C -p 0x10 -a <dut1_bt_mac>
+    - - R SSC{%d} RE "\+BLE:GattcConnect,OK,0010,%%s"%%(<dut1_bt_mac>)
+      - P SSC1 C +BLE:GattsConnect
+  - - SSC SSC[2-5] gattc -F -r <dut1_bt_mac>
+    - - R SSC[2-5] C +GATTC:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-5] reboot
+    - - R SSC[1-5] C !!!ready!!!
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-5] sta -D
+    - []
+  - - SSC SSC[1-5] ble -R
+    - - 'R SSC[1-5] C +BLE:'
+  - - SSC SSC[1-5] bleconn -D -z all
+    - - 'R SSC[1-5] C +BLECONN:'
+  - - SSC SSC[1-5] gatts -S -z delete
+    - - 'R SSC[1-5] C +GATTS:'
+  - - SSC SSC[1-5] gattc -U -z all
+    - - R SSC[1-5] C +GATTC:OK
+  - - SSC SSC[1-5] bleadv -D -z stop
+    - - R SSC[1-5] C +BLEADV:OK
+  - - SSC SSC1 gatts -S -z load -p 0xA2
+    - - R SSC1 C +GATTS:StartService,OK,A002
+  - - LOOP 4 2 "[2,3,4,5]" "[2,3,4,5]"
+    - ''
+  - - SSC SSC1 bleadv -D -z start
+    - - P SSC1 C +BLEADV:Start,OK
+  - - SSC SSC{%d} bleconn -C -p 0x10 -a <dut1_bt_mac>
+    - - R SSC{%d} RE "\+BLE:GattcConnect,OK,0010,%%s"%%(<dut1_bt_mac>)
+      - P SSC1 C +BLE:GattsConnect
+  - - SSC SSC[2-5] gattc -F -r <dut1_bt_mac>
+    - - R SSC[2-5] C +GATTC:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_CONN7
+  <<: *SSC_INIT_COND
+  initial condition detail: 5 DUT which BLE is enabled, DUT1 connected with DUT2-3
+    as master, connected with DUT4-5 as slave, GATTS created service 0xA002
+  check cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  restore cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-5] sta -D
+    - []
+  - - SSC SSC[1-5] bt -D -z init
+    - - 'R SSC[1-5] C +BT:'
+  - - SSC SSC[1-5] bt -D -z enable
+    - - 'R SSC[1-5] C +BT:'
+  - - SSC SSC[1-5] ble -R
+    - - 'R SSC[1-5] C +BLE:'
+  - - SSC SSC[1-5] bleconn -D -z all
+    - - 'R SSC[1-5] C +BLECONN:'
+  - - SSC SSC[1-5] gatts -S -z delete
+    - - 'R SSC[1-5] C +GATTS:'
+  - - SSC SSC[1-5] gattc -U -z all
+    - - R SSC[1-5] C +GATTC:OK
+  - - SSC SSC[1-5] bleadv -D -z stop
+    - - R SSC[1-5] C +BLEADV:OK
+  - - SSC SSC[1-3] gatts -S -z load -p 0xA2
+    - - R SSC[1-3] C +GATTS:StartService,OK,A002
+  - - LOOP 2 2 "[4,5]" "[4,5]"
+    - ''
+  - - SSC SSC1 bleadv -D -z start
+    - - P SSC1 C +BLEADV:Start,OK
+  - - SSC SSC{%d} bleconn -C -p 0x10 -a <dut1_bt_mac>
+    - - R SSC{%d} RE "\+BLE:GattcConnect,OK,0010,%%s"%%(<dut1_bt_mac>)
+      - P SSC1 C +BLE:GattsConnect
+  - - SSC SSC[2-3] bleadv -D -z start
+    - - P SSC[2-3] C +BLEADV:Start,OK
+  - - LOOP 2 1 "[2,3]" "[2,3]" "[2,3]"
+    - ''
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>
+    - - R SSC1 RE "\+BLE:GattcConnect,OK,0010,%%s"%%(<dut{%d}_bt_mac>)
+      - P SSC{%d} C +BLE:GattsConnect
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-5] reboot
+    - - R SSC[1-5] C !!!ready!!!
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-5] sta -D
+    - []
+  - - SSC SSC[1-5] ble -R
+    - - 'R SSC[1-5] C +BLE:'
+  - - SSC SSC[1-5] bleconn -D -z all
+    - - 'R SSC[1-5] C +BLECONN:'
+  - - SSC SSC[1-5] gatts -S -z delete
+    - - 'R SSC[1-5] C +GATTS:'
+  - - SSC SSC[1-5] gattc -U -z all
+    - - R SSC[1-5] C +GATTC:OK
+  - - SSC SSC[1-5] bleadv -D -z stop
+    - - R SSC[1-5] C +BLEADV:OK
+  - - SSC SSC[1-3] gatts -S -z load -p 0xA2
+    - - R SSC[1-3] C +GATTS:StartService,OK,A002
+  - - LOOP 2 2 "[4,5]" "[4,5]"
+    - ''
+  - - SSC SSC1 bleadv -D -z start
+    - - P SSC1 C +BLEADV:Start,OK
+  - - SSC SSC{%d} bleconn -C -p 0x10 -a <dut1_bt_mac>
+    - - R SSC{%d} RE "\+BLE:GattcConnect,OK,0010,%%s"%%(<dut1_bt_mac>)
+      - P SSC1 C +BLE:GattsConnect
+  - - SSC SSC[2-3] bleadv -D -z start
+    - - P SSC[2-3] C +BLEADV:Start,OK
+  - - LOOP 2 1 "[2,3]" "[2,3]" "[2,3]"
+    - ''
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>
+    - - R SSC1 RE "\+BLE:GattcConnect,OK,0010,%%s"%%(<dut{%d}_bt_mac>)
+      - P SSC{%d} C +BLE:GattsConnect
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_CONN_SMP
+  <<: *SSC_INIT_COND
+  initial condition detail: 2 DUT which BLE is enabled, DUT1 connected with DUT2,
+    DUT2 created GATT service 0xA000,DUT2 and DUT1 pairing
+  check cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  restore cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-2] sta -D
+    - []
+  - - SSC SSC[1-2] bt -D -z init
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] bt -D -z enable
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] blesmp -B -z clear
+    - - R SSC[1-2] C +BLESMP:ClearBond,Succes
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - - R SSC2 C +GATTS:StartService,OK,A000
+  - - SSC SSC2 blesmp -S -z AuthReqMode -v 0x01
+    - - P SSC2 C +BLESMP:OK
+  - - SSC SSC2 blesmp -S -z IOCAP -v 0x03
+    - - P SSC2 C +BLESMP:OK
+  - - SSC SSC2 blesmp -S -z RspKey -v 0x03
+    - - P SSC2 C +BLESMP:OK
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - - P SSC1 C +BLE:GattcConnect,OK
+      - P SSC2 C +BLE:GattsConnect
+  - - SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc
+    - - P SSC1 C +BLESMP:SecReq
+  - - SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>
+    - - P SSC[1-2] C +BLESMP:AuthComplete,Success,0
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - - R SSC1 C +GATTC:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-2] reboot
+    - - R SSC[1-2] C !!!ready!!!
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-2] sta -D
+    - []
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] blesmp -B -z clear
+    - - R SSC[1-2] C +BLESMP:ClearBond,Succes
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - - R SSC2 C +GATTS:StartService,OK,A000
+  - - SSC SSC2 blesmp -S -z AuthReqMode -v 0x01
+    - - P SSC2 C +BLESMP:OK
+  - - SSC SSC2 blesmp -S -z IOCAP -v 0x03
+    - - P SSC2 C +BLESMP:OK
+  - - SSC SSC2 blesmp -S -z RspKey -v 0x03
+    - - P SSC2 C +BLESMP:OK
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - - P SSC1 C +BLE:GattcConnect,OK
+      - P SSC2 C +BLE:GattsConnect
+  - - SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc
+    - - P SSC1 C +BLESMP:SecReq
+  - - SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>
+    - - P SSC[1-2] C +BLESMP:AuthComplete,Success,0
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - - R SSC1 C +GATTC:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_DEINIT1
+  <<: *SSC_INIT_COND
+  initial condition detail: 1 DUT which BLE is not enabled
+  check cmd set:
+  - ''
+  - - SSC SSC1 bt -Q
+    - - R SSC1 C +BT:status,DEINIT
+  restore cmd set:
+  - ''
+  - - SSC SSC1 bt -D -z disable
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z deinit
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -Q
+    - - R SSC1 C +BT:status,DEINIT
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 bt -D -z stop
+    - - R SSC1 C +BT:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BTC_DEINIT1
+  <<: *SSC_INIT_COND
+  initial condition detail: 1 DUT which BLE is not enabled
+  check cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - "SSC SSC1 btc -D -z disable"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z deinit"
+    - ["R SSC1 C +BTC:OK"]
+  - - SSC SSC1 btc -Q
+    - - R SSC1 C +BTC:status,IDLE
+  - - SSC SSC1 bt -D -z disable
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z deinit
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -Q
+    - - R SSC1 C +BT:status,DEINIT
+  restore cmd set:
+  - ''
+  - - "SSC SSC1 btc -D -z disable"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z deinit"
+    - ["R SSC1 C +BTC:OK"]
+  - - SSC SSC1 btc -Q
+    - - R SSC1 C +BTC:status,IDLE
+  - - SSC SSC1 bt -D -z disable
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z deinit
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -Q
+    - - R SSC1 C +BT:status,DEINIT
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 btc -D -z stop
+    - - R SSC1 C +BTC:OK
+  - - SSC SSC1 bt -D -z stop
+    - - R SSC1 C +BT:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_INIT1
+  <<: *SSC_INIT_COND
+  initial condition detail: 1 DUT which BLE is enabled, no active connection
+  check cmd set:
+  - ''
+  - - SSC SSC1 bt -Q
+    - - R SSC1 C +BT:status,ENABLE
+  - - SSC SSC1 ble -R
+    - - 'R SSC1 C +BLE:'
+  - - SSC SSC1 bleconn -Q
+    - - R SSC1 C +BLECONN:ConnCount,0
+  restore cmd set:
+  - ''
+  - - SSC SSC1 bt -D -z init
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z enable
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 ble -R
+    - - 'R SSC1 C +BLE:'
+  - - SSC SSC1 bleconn -D -z all
+    - - 'R SSC1 C +BLECONN:'
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 bt -D -z init
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z enable
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 ble -R
+    - - 'R SSC1 C +BLE:'
+  restore post cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC1 sta -D
+    - []
+  - - SSC SSC1 bleconn -D -z all
+    - - 'R SSC1 C +BLECONN:'
+  - - SSC SSC1 gatts -S -z delete
+    - - 'R SSC1 C +GATTS:'
+  - - SSC SSC1 gattc -U -z all
+    - - R SSC1 C +GATTC:OK
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_INIT2
+  <<: *SSC_INIT_COND
+  initial condition detail: 2 DUT which BLE is enabled, no active connection, DUT2
+    start adv
+  check cmd set:
+  - ''
+  - - SSC SSC[1-2] bt -Q
+    - - R SSC[1-2] C +BT:status,ENABLE
+  restore cmd set:
+  - ''
+  - - SSC SSC[1-2] bt -D -z init
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] bt -D -z enable
+    - - 'R SSC[1-2] C +BT:'
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-2] reboot
+    - - R SSC[1-2] C !!!ready!!!
+  - - SSC SSC[1-2] bt -D -z init
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] bt -D -z enable
+    - - 'R SSC[1-2] C +BT:'
+  restore post cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-2] sta -D
+    - []
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - - R SSC2 C +GATTS:StartService,OK,A000
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_INIT5
+  <<: *SSC_INIT_COND
+  initial condition detail: 5 DUT which BLE is enabled, no active connection
+  check cmd set:
+  - ''
+  - - SSC SSC[1-5] bt -Q
+    - - R SSC[1-5] C +BT:status,ENABLE
+  restore cmd set:
+  - ''
+  - - SSC SSC[1-5] bt -D -z init
+    - - 'R SSC[1-5] C +BT:'
+  - - SSC SSC[1-5] bt -D -z enable
+    - - 'R SSC[1-5] C +BT:'
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-5] reboot
+    - - R SSC[1-5] C !!!ready!!!
+  - - SSC SSC[1-5] bt -D -z init
+    - - 'R SSC[1-5] C +BT:'
+  - - SSC SSC[1-5] bt -D -z enable
+    - - 'R SSC[1-5] C +BT:'
+  restore post cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-5] sta -D
+    - []
+  - - SSC SSC[1-5] ble -R
+    - - 'R SSC[1-5] C +BLE:'
+  - - SSC SSC[1-5] bleconn -D -z all
+    - - 'R SSC[1-5] C +BLECONN:'
+  - - SSC SSC[1-5] gatts -S -z delete
+    - - 'R SSC[1-5] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - "SSC SSC[2-5] gatts -S -z load -p 0xA0"
+    - ["P SSC[2-5] C +GATTS:StartService,OK,A000"]
+  - - SSC SSC[1-5] bleadv -D -z stop
+    - - R SSC[1-5] C +BLEADV:OK
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_INIT_SMP
+  <<: *SSC_INIT_COND
+  initial condition detail: 2 DUT which BLE is enabled, no active connection, DUT2
+    create GATT service 0xA000, DUT2 start adv, SMP enabled on both DUT and DUT1 load
+    default initiator param, DUT2 load default responder param
+  check cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  restore cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-2] reboot
+    - - R SSC[1-2] C !!!ready!!!
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] blesmp -B -z clear
+    - - R SSC[1-2] C +BLESMP:ClearBond,Succes
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - - R SSC2 C +GATTS:StartService,OK,A000
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC[1-2] blesmp -L -c [1,0]
+    - - R SSC[1-2] C +BLESMP:OK
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+  restore post cmd set:
+  - ''
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-2] sta -D
+    - []
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] blesmp -B -z clear
+    - - R SSC[1-2] C +BLESMP:ClearBond,Succes
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - - R SSC2 C +GATTS:StartService,OK,A000
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - - R SSC2 C +BLEADV:SetAdv,OK
+  - - SSC SSC2 bleadv -D -z start
+    - - R SSC2 C +BLEADV:OK
+  - - SSC SSC[1-2] blesmp -L -c [1,0]
+    - - R SSC[1-2] C +BLESMP:OK
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: BLE_INIT_SMP5
+  <<: *SSC_INIT_COND
+  initial condition detail: 5 DUT which BLE is enabled, no active connection, DUT5
+    create GATT service 0xA000, DUT5 start adv, SMP enabled on both DUT and DUT5 load
+    default initiator param, DUT5 load default responder param
+  check cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  restore cmd set:
+  - ''
+  - - ASSERT
+    - - ''
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-5] reboot
+    - - R SSC[1-5] C !!!ready!!!
+  - - SSC SSC[1-5] ble -R
+    - - 'R SSC[1-5] C +BLE:'
+  - - SSC SSC[1-5] bleconn -D -z all
+    - - 'R SSC[1-5] C +BLECONN:'
+  - - SSC SSC[1-5] blesmp -B -z clear
+    - - R SSC[1-5] C +BLESMP:ClearBond,Succes
+  - - SSC SSC[1-5] gatts -S -z delete
+    - - 'R SSC[1-5] C +GATTS:'
+  - - SSC SSC[1-5] gattc -U -z all
+    - - R SSC[1-5] C +GATTC:OK
+  - - SSC SSC[1-5] bleadv -D -z stop
+    - - R SSC[1-5] C +BLEADV:OK
+  - - SSC SSC[2-5] gatts -S -z load -p 0xA0
+    - - R SSC[2-5] C +GATTS:StartService,OK,A000
+  - - SSC SSC[2-5] bleadv -L -c 0 -t 3
+    - - R SSC[2-5] C +BLEADV:SetAdv,OK
+  - - SSC SSC[2-5] bleadv -D -z start
+    - - R SSC[2-5] C +BLEADV:OK
+  - - SSC SSC[1-5] blesmp -L -c [1,0]
+    - - R SSC[1-5] C +BLESMP:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC[1-5] ble -R
+    - - 'R SSC[1-5] C +BLE:'
+  - - SSC SSC[1-5] bleconn -D -z all
+    - - 'R SSC[1-5] C +BLECONN:'
+  - - SSC SSC[1-5] blesmp -B -z clear
+    - - R SSC[1-5] C +BLESMP:ClearBond,Succes
+  - - SSC SSC[1-5] gatts -S -z delete
+    - - 'R SSC[1-5] C +GATTS:'
+  - - SSC SSC[1-5] gattc -U -z all
+    - - R SSC[1-5] C +GATTC:OK
+  - - SSC SSC[1-5] bleadv -D -z stop
+    - - R SSC[1-5] C +BLEADV:OK
+  - - SSC SSC[2-5] gatts -S -z load -p 0xA0
+    - - R SSC[2-5] C +GATTS:StartService,OK,A000
+  - - SSC SSC[2-5] bleadv -L -c 0 -t 3
+    - - R SSC[2-5] C +BLEADV:SetAdv,OK
+  - - SSC SSC[2-5] bleadv -D -z start
+    - - R SSC[2-5] C +BLEADV:OK
+  - - SSC SSC[1-5] blesmp -L -c [1,0]
+    - - R SSC[1-5] C +BLESMP:OK
+  # do wifi disconnect, to prevent wifi reconnect cause bad BLE performance
+  - - SSC SSC[1-5] sta -D
+    - []
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: NOW1
+  <<: *SSC_INIT_COND
+  initial condition detail: one target in AP mode and espnow is de-initialized
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:2
+  - - SSC SSC1 mac -Q -o 2
+    - - R SSC1 P <target_ap_mac>
+  - - SSC SSC1 espnow -D
+    - - 'R SSC1 C +ESPNOW:'
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -m <target_ap_mac> -o 2
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 espnow -D
+    - - 'R SSC1 C +ESPNOW:'
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-<dev_num>] reboot
+    - - R SSC[1-<dev_num>] C !!!ready!!!
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -m <target_ap_mac> -o 2
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 espnow -D
+    - - 'R SSC1 C +ESPNOW:'
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: NOW2
+  <<: *SSC_INIT_COND
+  initial condition detail: multiple (<dev_num>) targets in AP mode, espnow is initialized
+    with self role slave
+  check cmd set:
+  - ''
+  - - SSC SSC[1-<dev_num>] op -Q
+    - - R SSC[1-<dev_num>] C +CURMODE:2
+  - - SSC SSC[1-<dev_num>] mac -Q -o 3
+    - - R SSC[1-<dev_num>] P <target[1-<dev_num>]_ap_mac> P <target[1-<dev_num>]_mac>
+  - - SSC SSC[1-<dev_num>] espnow -D
+    - - 'R SSC[1-<dev_num>] C +ESPNOW:'
+  - - SSC SSC[1-<dev_num>] espnow -I
+    - - R SSC[1-<dev_num>] C +ESPNOW:OK
+  - - SSC SSC[1-<dev_num>] espnow -R -t Set -r 2
+    - - R SSC[1-<dev_num>] C +ESPNOW:OK
+  restore cmd set:
+  - ''
+  - - SSC SSC[1-<dev_num>] op -S -o 3
+    - - R SSC[1-<dev_num>] C +MODE:OK
+  - - SSC SSC[1-<dev_num>] mac -S -m <target[1-<dev_num>]_ap_mac> -o 2
+    - - R SSC[1-<dev_num>] C +MAC:AP,OK
+  - - SSC SSC[1-<dev_num>] mac -S -m <target[1-<dev_num>]_mac> -o 1
+    - - R SSC[1-<dev_num>] C +MAC:STA,OK
+  - - SSC SSC[1-<dev_num>] op -S -o 2
+    - - R SSC[1-<dev_num>] C +MODE:OK
+  - - SSC SSC[1-<dev_num>] espnow -D
+    - - 'R SSC[1-<dev_num>] C +ESPNOW:'
+  - - SSC SSC[1-<dev_num>] espnow -I
+    - - R SSC[1-<dev_num>] C +ESPNOW:OK
+  - - SSC SSC[1-<dev_num>] espnow -R -t Set -r 2
+    - - R SSC[1-<dev_num>] C +ESPNOW:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-<dev_num>] reboot
+    - - R SSC[1-<dev_num>] C !!!ready!!!
+  - - SSC SSC[1-<dev_num>] op -S -o 3
+    - - R SSC[1-<dev_num>] C +MODE:OK
+  - - SSC SSC[1-<dev_num>] mac -S -m <target[1-<dev_num>]_ap_mac> -o 2
+    - - R SSC[1-<dev_num>] C +MAC:AP,OK
+  - - SSC SSC[1-<dev_num>] mac -S -m <target[1-<dev_num>]_mac> -o 1
+    - - R SSC[1-<dev_num>] C +MAC:STA,OK
+  - - SSC SSC[1-<dev_num>] op -S -o 2
+    - - R SSC[1-<dev_num>] C +MODE:OK
+  - - SSC SSC[1-<dev_num>] espnow -D
+    - - 'R SSC[1-<dev_num>] C +ESPNOW:'
+  - - SSC SSC[1-<dev_num>] espnow -I
+    - - R SSC[1-<dev_num>] C +ESPNOW:OK
+  - - SSC SSC[1-<dev_num>] espnow -R -t Set -r 2
+    - - R SSC[1-<dev_num>] C +ESPNOW:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: None
+  <<: *SSC_INIT_COND
+  initial condition detail: none
+  check cmd set:
+  - ''
+  - - DELAY 0.1
+    - - dummy
+  restore cmd set:
+  - ''
+  - - DELAY 0.1
+    - - dummy
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  restore post cmd set:
+  - ''
+  - - DELAY 0.1
+    - - dummy
+- tag: PAIR1
+  <<: *SSC_INIT_COND
+  initial condition detail: one target and simple is de-inited
+  check cmd set:
+  - ''
+  - - SSC SSC1 sp -D
+    - - R SSC1 C +SP:OK
+  restore cmd set:
+  - ''
+  - - SSC SSC1 sp -D
+    - - R SSC1 C +SP:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 sp -D
+    - - R SSC1 C +SP:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: PAIR2
+  <<: *SSC_INIT_COND
+  initial condition detail: target1 in AP mode, target2 in STA mode, two targets de-init
+    and init simple pair
+  check cmd set:
+  - ''
+  - - SSC SSC[1,2] op -Q
+    - - R SSC[1,2] C +MODE:[2,1]
+  - - SSC SSC[1,2] mac -Q -o 3
+    - - R SSC[1,2] P <target[1,2]_ap_mac> P <target[1,2]_mac>
+  - - SSC SSC[1,2] sp -D
+    - - R SSC[1,2] C +SP:OK
+  - - SSC SSC[1,2] sp -I
+    - - R SSC[1,2] C +SP:OK
+  restore cmd set:
+  - ''
+  - - SSC SSC[1,2] op -S -o 3
+    - - R SSC[1,2] C +MODE:OK
+  - - SSC SSC[1,2] mac -S -m <target[1,2]_ap_mac> -o 2
+    - - R SSC[1,2] C +MAC:AP,OK
+  - - SSC SSC[1,2] mac -S -m <target[1,2]_mac> -o 1
+    - - R SSC[1,2] C +MAC:STA,OK
+  - - SSC SSC[1,2] op -S -o [2,1]
+    - - R SSC[1,2] C +MODE:OK
+  - - SSC SSC[1,2] sp -D
+    - - R SSC[1,2] C +SP:OK
+  - - SSC SSC[1,2] sp -I
+    - - R SSC[1,2] C +SP:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1,2] reboot
+    - - R SSC[1,2] C !!!ready!!!
+  - - SSC SSC[1,2] op -S -o 3
+    - - R SSC[1,2] C +MODE:OK
+  - - SSC SSC[1,2] mac -S -m <target[1,2]_ap_mac> -o 2
+    - - R SSC[1,2] C +MAC:AP,OK
+  - - SSC SSC[1,2] mac -S -m <target[1,2]_mac> -o 1
+    - - R SSC[1,2] C +MAC:STA,OK
+  - - SSC SSC[1,2] op -S -o [2,1]
+    - - R SSC[1,2] C +MODE:OK
+  - - SSC SSC[1,2] sp -D
+    - - R SSC[1,2] C +SP:OK
+  - - SSC SSC[1,2] sp -I
+    - - R SSC[1,2] C +SP:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: PAIR3
+  <<: *SSC_INIT_COND
+  initial condition detail: target1 and target2 in STA+AP mode, two targets de-init
+    and init simple pair
+  check cmd set:
+  - ''
+  - - SSC SSC[1,2] op -Q
+    - - R SSC[1,2] C +MODE:[3,3]
+  - - SSC SSC[1,2] mac -Q -o 3
+    - - R SSC[1,2] P <target[1,2]_ap_mac> P <target[1,2]_mac>
+  - - SSC SSC[1,2] sp -D
+    - - R SSC[1,2] C +SP:OK
+  - - SSC SSC[1,2] sp -I
+    - - R SSC[1,2] C +SP:OK
+  restore cmd set:
+  - ''
+  - - SSC SSC[1,2] op -S -o [3,3]
+    - - R SSC[1,2] C +MODE:OK
+  - - SSC SSC[1,2] mac -S -m <target[1,2]_ap_mac> -o 2
+    - - R SSC[1,2] C +MAC:AP,OK
+  - - SSC SSC[1,2] mac -S -m <target[1,2]_mac> -o 1
+    - - R SSC[1,2] C +MAC:STA,OK
+  - - SSC SSC[1,2] sp -D
+    - - R SSC[1,2] C +SP:OK
+  - - SSC SSC[1,2] sp -I
+    - - R SSC[1,2] C +SP:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1,2] reboot
+    - - R SSC[1,2] C !!!ready!!!
+  - - SSC SSC[1,2] op -S -o [3,3]
+    - - R SSC[1,2] C +MODE:OK
+  - - SSC SSC[1,2] mac -S -m <target[1,2]_ap_mac> -o 2
+    - - R SSC[1,2] C +MAC:AP,OK
+  - - SSC SSC[1,2] mac -S -m <target[1,2]_mac> -o 1
+    - - R SSC[1,2] C +MAC:STA,OK
+  - - SSC SSC[1,2] sp -D
+    - - R SSC[1,2] C +SP:OK
+  - - SSC SSC[1,2] sp -I
+    - - R SSC[1,2] C +SP:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: STAAP1
+  <<: *SSC_INIT_COND
+  initial condition detail: testing sta on sta + ap mode, quit AP (autogen by STAM1)
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:3
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 dhcp -Q -o 1
+    - - R SSC1 C +DHCP:STA,STARTED
+  - - SSC SSC1 mac -Q -o 1
+    - - R SSC1 P <target_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+- tag: STAAP2
+  <<: *SSC_INIT_COND
+  initial condition detail: testing sta on sta + ap mode,  join AP, DHCP on (autogen
+    by STAM2)
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:3
+  - - SSC SSC1 sta -Q
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  - - SSC SSC1 dhcp -Q -o 1
+    - - R SSC1 C +DHCP:STA,STARTED
+  - - SSC SSC1 mac -Q -o 1
+    - - R SSC1 P <target_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+- tag: STAM1
+  <<: *SSC_INIT_COND
+  initial condition detail: sta mode, quit AP, DHCP on, will autogen a TC with initial
+    condition STAAP1
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:1
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 dhcp -Q -o 1
+    - - R SSC1 C +DHCP:STA,STARTED
+  - - SSC SSC1 mac -Q -o 1
+    - - R SSC1 P <target_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+- tag: STAM2
+  <<: *SSC_INIT_COND
+  initial condition detail: sta mode, join AP, DHCP on, will autogen a TC with initial
+    condition STAAP2
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:1
+  - - SSC SSC1 sta -Q
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  - - SSC SSC1 dhcp -Q -o 1
+    - - R SSC1 C +DHCP:STA,STARTED
+  - - SSC SSC1 mac -Q -o 1
+    - - R SSC1 P <target_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+- tag: STAO1
+  <<: *SSC_INIT_COND
+  initial condition detail: sta mode, quit AP, will NOT autogen a TC with initial
+    condition STAAP1
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:1
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 dhcp -Q -o 1
+    - - R SSC1 C +DHCP:STA,STARTED
+  - - SSC SSC1 mac -Q -o 1
+    - - R SSC1 P <target_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+- tag: STAO2
+  <<: *SSC_INIT_COND
+  initial condition detail: sta mode, join AP, DHCP on, will NOT autogen a TC with
+    initial condition STAAP2
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:1
+  - - SSC SSC1 sta -Q
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  - - SSC SSC1 dhcp -Q -o 1
+    - - R SSC1 C +DHCP:STA,STARTED
+  - - SSC SSC1 mac -Q -o 1
+    - - R SSC1 P <target_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+- tag: STAWIFISTO
+  <<: *SSC_INIT_COND
+  initial condition detail: STA mode,  wifi will stop with initial condition STAWIFISTO
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:1
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+- tag: T1_ETH
+  <<: *SSC_INIT_COND
+  initial condition detail: ethernet is enabled and got IP from AP
+  check cmd set:
+  - ''
+  - - SSC SSC1 eth -N
+    - - R SSC1 C +ETHNET:OK
+  - - SSC SSC1 eth -E
+    - - R SSC1 C +ETHNET:IP
+  - - SSC SSC1 ip -I
+    - - R SSC1 C +ETHIP:192.168
+  restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 eth -N
+    - - R SSC1 C +ETHNET:OK
+  - - SSC SSC1 eth -E
+    - - R SSC1 C +ETHNET:IP
+  - - SSC SSC1 ip -I
+    - - R SSC1 C +ETHIP:192.168
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 restore
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 eth -N
+    - - R SSC1 C +ETHNET:OK
+  - - SSC SSC1 eth -E
+    - - R SSC1 C +ETHNET:IP
+  - - SSC SSC1 ip -I
+    - - R SSC1 C +ETHIP:192.168
+- tag: T2O_1
+  <<: *SSC_INIT_COND
+  initial condition detail: same as T2_1 but will NOT autogen a TC with initial condition
+    T2_2
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:2
+  - - SSC SSC2 op -Q
+    - - R SSC2 C +CURMODE:1
+  - - SSC SSC2 sta -D
+    - - 'R SSC2 C +QAP:'
+  - - SSC SSC2 soc -T
+    - - ''
+  - - SSC SSC1 dhcp -Q -o 2
+    - - R SSC1 C +DHCP:AP,STARTED
+  - - SSC SSC2 dhcp -Q -o 1
+    - - R SSC2 C +DHCP:STA,STARTED
+  - - SSC SSC1 mac -Q -o 2
+    - - R SSC1 P <target_ap_mac>
+  - - SSC SSC2 mac -Q -o 1
+    - - R SSC2 P <target2_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC2 op -S -o 1
+    - - R SSC2 C +MODE:OK
+  - - SSC SSC2 sta -D
+    - - 'R SSC2 C +QAP:'
+  - - SSC SSC2 soc -T
+    - - ''
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC2 dhcp -S -o 1
+    - - R SSC2 C +DHCP
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
+    - - R SSC2 C +MAC:STA,OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC2 reboot
+    - - R SSC2 C !!!ready!!!
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC2 op -S -o 1
+    - - R SSC2 C +MODE:OK
+  - - SSC SSC2 sta -D
+    - - 'R SSC2 C +QAP:'
+  - - SSC SSC2 soc -T
+    - - ''
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC2 dhcp -S -o 1
+    - - R SSC2 C +DHCP
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
+    - - R SSC2 C +MAC:STA,OK
+- tag: T2_1
+  <<: *SSC_INIT_COND
+  initial condition detail: target 1 as SoftAP, target 2 as STA, will autogen a TC
+    with initial condition T2_2
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:2
+  - - SSC SSC2 op -Q
+    - - R SSC2 C +CURMODE:1
+  - - SSC SSC2 sta -D
+    - - 'R SSC2 C +QAP:'
+  - - SSC SSC2 soc -T
+    - - ''
+  - - SSC SSC1 dhcp -Q -o 2
+    - - R SSC1 C +DHCP:AP,STARTED
+  - - SSC SSC2 dhcp -Q -o 1
+    - - R SSC2 C +DHCP:STA,STARTED
+  - - SSC SSC1 mac -Q -o 2
+    - - R SSC1 P <target_ap_mac>
+  - - SSC SSC2 mac -Q -o 1
+    - - R SSC2 P <target2_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC2 op -S -o 1
+    - - R SSC2 C +MODE:OK
+  - - SSC SSC2 sta -D
+    - - 'R SSC2 C +QAP:'
+  - - SSC SSC2 soc -T
+    - - ''
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC2 dhcp -S -o 1
+    - - R SSC2 C +DHCP
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
+    - - R SSC2 C +MAC:STA,OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC2 reboot
+    - - R SSC2 C !!!ready!!!
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC2 op -S -o 1
+    - - R SSC2 C +MODE:OK
+  - - SSC SSC2 sta -D
+    - - 'R SSC2 C +QAP:'
+  - - SSC SSC2 soc -T
+    - - ''
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC2 dhcp -S -o 1
+    - - R SSC2 C +DHCP
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
+    - - R SSC2 C +MAC:STA,OK
+- tag: T2_2
+  <<: *SSC_INIT_COND
+  initial condition detail: target 1 as AP+STA, target 2 as AP+STA (autogen)
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:3
+  - - SSC SSC2 op -Q
+    - - R SSC2 C +CURMODE:3
+  - - SSC SSC2 sta -D
+    - - 'R SSC2 C +QAP:'
+  - - SSC SSC2 soc -T
+    - - R SSC2 C +CLOSEALL
+  - - SSC SSC1 dhcp -Q -o 2
+    - - R SSC1 C +DHCP:AP,STARTED
+  - - SSC SSC2 dhcp -Q -o 1
+    - - R SSC2 C +DHCP:STA,STARTED
+  - - SSC SSC1 mac -Q -o 2
+    - - R SSC1 P <target_ap_mac>
+  - - SSC SSC2 mac -Q -o 1
+    - - R SSC2 P <target2_mac>
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC2 op -S -o 3
+    - - R SSC2 C +MODE:OK
+  - - SSC SSC2 sta -D
+    - - 'R SSC2 C +QAP:'
+  - - SSC SSC2 soc -T
+    - - R SSC2 C +CLOSEALL
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC2 dhcp -S -o 1
+    - - R SSC2 C +DHCP
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
+    - - R SSC2 C +MAC:STA,OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC2 reboot
+    - - R SSC2 C !!!ready!!!
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC2 op -S -o 3
+    - - R SSC2 C +MODE:OK
+  - - SSC SSC2 sta -D
+    - - 'R SSC2 C +QAP:'
+  - - SSC SSC2 soc -T
+    - - R SSC2 C +CLOSEALL
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP
+  - - SSC SSC2 dhcp -S -o 1
+    - - R SSC2 C +DHCP
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
+    - - R SSC2 C +MAC:STA,OK
+- tag: T3_PHY1
+  <<: *SSC_INIT_COND
+  initial condition detail: |-
+    1. target 1 and target 2 set to AP+STA mode, target 3 set to STA mode
+    2. all interface of target 2,3 set to 11n ht40
+    3. config softAP of target 1 and target 2
+  check cmd set:
+  - ''
+  - - SSC SSC[1-3] op -Q
+    - - R SSC[1-3] C +CURMODE:3
+  - - SSC SSC[1-3] phy -Q -o 3
+    - - R SSC[1-3] C STA,n,40 C AP,n,40
+  restore cmd set:
+  - ''
+  - - SSC SSC[1-3] op -S -o 3
+    - - R SSC[1-3] C +MODE:OK
+  - - SSC SSC[1-3] phy -S -o 3 -m n -b 40
+    - - R SSC[1-3] C +PHY:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-3] reboot
+    - - R SSC[1-3] C !!!ready!!!
+  - - SSC SSC[1-3] op -S -o 3
+    - - R SSC[1-3] C +MODE:OK
+  - - SSC SSC[1-3] phy -S -o 3 -m n -b 40
+    - - R SSC[1-3] C +PHY:OK
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 soc -T
+    - - R SSC1 C +CLOSEALL
+  - - SSC SSC1 sta -R -r 1
+    - - R SSC1 C OK
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
+- tag: WIFIBTSTOP
+  <<: *SSC_INIT_COND
+  initial condition detail: bt controller and host will be disabled and deinit with
+    initial condition wifibtstop
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +CURMODE:3
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a deinit
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 btc -D -z stop
+    - - 'R SSC1 C +BTC:'
+  - - SSC SSC1 bt -D -z stop
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z disable
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z deinit
+    - - 'R SSC1 C +BT:'
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a deinit
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 btc -D -z stop
+    - - 'R SSC1 C +BTC:'
+  - - SSC SSC1 bt -D -z stop
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z disable
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z deinit
+    - - 'R SSC1 C +BT:'
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a deinit
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 btc -D -z stop
+    - - 'R SSC1 C +BTC:'
+  - - SSC SSC1 bt -D -z stop
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z disable
+    - - 'R SSC1 C +BT:'
+  - - SSC SSC1 bt -D -z deinit
+    - - 'R SSC1 C +BT:'
+- tag: WIFISTO
+  <<: *SSC_INIT_COND
+  initial condition detail: wifi will stop with initial condition WIFISTO
+  check cmd set:
+  - ''
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  restore cmd set:
+  - ''
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+- tag: BLE_INIT_REBOOT2
+  <<: *SSC_INIT_COND
+  initial condition detail: 2 DUT should reboot at first and BLE is enabled, no active connection
+  check cmd set:
+  - ''
+  - - SSC SSC[1-2] reboot
+    - - R SSC[1-2] C !!!ready!!!
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  restore cmd set:
+  - ''
+  - - SSC SSC[1-2] bt -D -z init
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] bt -D -z enable
+    - - 'R SSC[1-2] C +BT:'
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-2] reboot
+    - - R SSC[1-2] C !!!ready!!!
+  - - SSC SSC[1-2] bt -D -z init
+    - - 'R SSC[1-2] C +BT:'
+  - - SSC SSC[1-2] bt -D -z enable
+    - - 'R SSC[1-2] C +BT:'
+  restore post cmd set:
+  - ''
+  - - SSC SSC[1-2] ble -R
+    - - 'R SSC[1-2] C +BLE:'
+  - - SSC SSC[1-2] bleconn -D -z all
+    - - 'R SSC[1-2] C +BLECONN:'
+  - - SSC SSC[1-2] gatts -S -z delete
+    - - 'R SSC[1-2] C +GATTS:'
+  - - SSC SSC[1-2] gattc -U -z all
+    - - R SSC[1-2] C +GATTC:OK
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - - R SSC[1-2] C +BLEADV:OK
+  - - SSC SSC1 ram
+    - - R SSC1 A <heap_size>:(\d+)
diff --git a/components/idf_test/integration_test/IT_BTSTK_COEXIST.yml b/components/idf_test/integration_test/IT_BTSTK_COEXIST.yml
deleted file mode 100644 (file)
index 79afba2..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-test cases:
-- ID: BTSTK_COEXIST_0101
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE advertise co-exist with WIFI
-  summary: BLE advertise co-exist with wifi scan
-  steps: '1. DUT2 BLE do advertise in range (0x20 - 0x40)
-    2. DUT2 do wifi scan and DUT1 do BLE scan
-    3. DUT2 BLE do advertise in range (0x400 - 0x800)
-    4. DUT2 do wifi scan and DUT1 do BLE scan'
-  expected result: '1. succeed
-    2. external AP in wifi scan result,  and DUT2 in BLE scan result
-    3. succeed
-    4. external AP in wifi scan result,  and DUT2 in BLE scan result'
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: Coexist
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -L -c 0 -t 3"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z start -c 0 -i 0x20-0x40"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 op -S -o 1"
-    - ["R SSC2 C +MODE:OK"]
-  - - "SSC SSC1 blescan -L -c 0"
-    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC1 blescan -D -z start -t 2"
-    - [""]
-  - - "SSC SSC2 sta -S"
-    - ["P SSC2 P <ap_ssid>", "P SSC1 P <dut2_bt_mac> C Complete"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z start -c 0 -i 0x400-0x800"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC1 blescan -D -z start -t 2"
-    - [""]
-  - - "SSC SSC2 sta -S"
-    - ["P SSC2 P <ap_ssid>", "P SSC1 P <dut2_bt_mac>"]
-- ID: BTSTK_COEXIST_0102
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE advertise co-exist with WIFI
-  summary: BLE advertise co-exist with wifi join AP
-  steps: '1. DUT2 BLE do advertise in range (0x20 - 0x40)
-    2. DUT2 do wifi JAP and DUT1 do BLE scan
-    3. DUT2 BLE do advertise in range (0x400 - 0x800)
-    4. DUT2 do wifi JAP and DUT1 do BLE scan'
-  expected result: '1. succeed
-    2. JAP succeed,  and DUT2 in BLE scan result
-    3. succeed
-    4. JAP succeed,  and DUT2 in BLE scan result'
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: Coexist
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC2 bleadv -L -c 0 -t 3"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z start -c 0"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 op -S -o 1"
-    - ["R SSC2 C +MODE:OK"]
-  - - "SSC SSC1 blescan -L -c 0"
-    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>"
-    - [""]
-  - - "SSC SSC1 blescan -D -z start -t 5"
-    - ["P SSC2 C +JAP:CONNECTED", "P SSC1 P <dut2_bt_mac> C Complete"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z start -c 0 -i 0x400-0x800"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>"
-    - [""]
-  - - "SSC SSC1 blescan -D -z start -t 5"
-    - ["P SSC2 C +JAP:CONNECTED", "P SSC1 P <dut2_bt_mac> C Complete"]
-- ID: BTSTK_COEXIST_0103
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE advertise co-exist with WIFI
-  summary: BLE advertise co-exist with wifi connected with AP
-  steps: '1. DUT2 BLE do advertise in range (0x20 - 0x40)
-    2. DUT2 do wifi JAP
-    3. DUT1 do BLE scan
-    4. DUT2 BLE do advertise in range (0x400 - 0x800)
-    5. DUT2 do wifi JAP
-    6. DUT1 do BLE scan'
-  expected result: '1. succeed
-    2. JAP succeed
-    3. STA not disconnected with AP and DUT2 in BLE scan result
-    4. succeed
-    5. JAP succeed
-    6. STA not disconnected with AP and DUT2 in BLE scan result'
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: Coexist
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC2 bleadv -L -c 0 -t 3"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z start -c 0"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 op -S -o 1"
-    - ["R SSC2 C +MODE:OK"]
-  - - "SSC SSC1 blescan -L -c 0"
-    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>"
-    - ["P SSC2 C +JAP:CONNECTED"]
-  - - "SSC SSC1 blescan -D -z start -t 10"
-    - ["P SSC2 NC DISCONNECT", "P SSC1 P <dut2_bt_mac> C Complete"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z start -c 0 -i 0x400-0x800"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>"
-    - ["P SSC2 C +JAP:CONNECTED"]
-  - - "SSC SSC1 blescan -D -z start -t 10"
-    - ["P SSC2 NC DISCONNECT", "P SSC1 P <dut2_bt_mac> C Complete"]
-- ID: BTSTK_COEXIST_0201
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE send recv co-exist with WIFI
-  summary: BLE send recv co-exist with wifi scan
-  steps: '1. DUT1 BLE read long with interval 50 ms
-    2. DUT1 do wifi scan
-    3. DUT1 BLE read long with interval 5 ms
-    4. DUT1 do wifi scan'
-  expected result: '1. succeed
-    2. external AP in wifi scan result, read succeed
-    3. succeed
-    4. external AP in wifi scan result, read succeed'
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: Coexist
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "SSC SSC1 op -S -o 1"
-    - ["R SSC1 C +MODE:OK"]
-  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20 -j 50"
-    - ["P SSC1 C +GATTC:OK"]
-  - - "SSC SSC1 sta -S"
-    - ["P SSC1 P <ap_ssid>", "P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
-  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20 -j 5"
-    - ["P SSC1 C +GATTC:OK"]
-  - - "SSC SSC1 sta -S"
-    - ["P SSC1 P <ap_ssid>", "P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
-- ID: BTSTK_COEXIST_0202
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE send recv co-exist with WIFI
-  summary: BLE send recv co-exist with wifi join AP
-  steps: '1. DUT1 BLE read long with interval 50 ms
-    2. DUT1 do wifi JAP
-    3. DUT1 BLE read long with interval 5 ms
-    4. DUT1 do wifi JAP'
-  expected result: '1. succeed
-    2. JAP succeed, read succeed
-    3. succeed
-    4. JAP succeed, read succeed'
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: Coexist
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "SSC SSC1 op -S -o 1"
-    - ["R SSC1 C +MODE:OK"]
-  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20"
-    - ["P SSC1 C +GATTC:OK"]
-  - - "SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>"
-    - ["P SSC1 C +JAP:CONNECTED", "P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
-  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20"
-    - ["P SSC1 C +GATTC:OK"]
-  - - "SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>"
-    - ["P SSC1 C +JAP:CONNECTED", "P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
-- ID: BTSTK_COEXIST_0203
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE send recv co-exist with WIFI
-  summary: BLE send recv co-exist with wifi join AP
-  steps: '1. DUT1 do wifi JAP
-    2. DUT1 BLE read long with interval 50 ms
-    3. DUT1 do wifi JAP
-    4. DUT1 BLE read long with interval 5 ms'
-  expected result: '1. succeed
-    2. JAP succeed, read succeed
-    3. succeed
-    4. JAP succeed, read succeed'
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: Coexist
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "SSC SSC1 op -S -o 1"
-    - ["R SSC1 C +MODE:OK"]
-  - - "SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>"
-    - ["P SSC1 C +JAP:CONNECTED", ""]
-  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20"
-    - ["P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
-  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20"
-    - ["P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
-- ID: BTSTK_COEXIST_0301
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE co-exist with WIFI on all channels
-  summary: BLE co-exist with wifi when join AP on different channels
-  steps: '1. DUT1 set to AP mode, DUT2 set to STA mode, config AP on a specific channel
-    2. DUT1 starts read long char
-    3. DUT2 join DUT1 soft AP
-    4. Loop step 1-3 for all 13 channels'
-  expected result: '1. succeed
-    2. succeed
-    3. succeed
-    4. succeed'
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0.3
-  module: BT Stack
-  sub module: Coexist
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "SSC SSC[1-2] op -S -o [2,1]"
-    - ["P SSC[1-2] C +MODE:OK"]
-  - - 'LOOP 13 3 "range(1,14)"'
-    - [""]
-  - - "SSC SSC1 ap -S -s <target_ssid> -p <target_password> -n {%d}"
-    - ["P SSC1 C +SAP:OK"]
-  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20"
-    - [""]
-  - - "SSC SSC2 sta -C -s <target_ssid> -c <target_password>"
-    - ["P SSC1 C +GATTC:Read,OK,0010,A000,C101", "P SSC2 C +JAP:CONNECTED"]
diff --git a/components/idf_test/integration_test/IT_BTSTK_GAP.yml b/components/idf_test/integration_test/IT_BTSTK_GAP.yml
deleted file mode 100644 (file)
index 8071b04..0000000
+++ /dev/null
@@ -1,1780 +0,0 @@
-test cases:
-- ID: BTSTK_GAP_01001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP param device name test
-  summary: ble set ascii device name
-  steps: |
-    1. DUT1 set ascii device name
-    2. stop advertising
-    3. config scan response and start advertising
-    4. DUT2 do active scan
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. device name in scan result
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -L -c 0"
-    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 blescan -D -z start -t 3"
-    - ["R SSC2 P <dut1_ble_name>"]
-- ID: BTSTK_GAP_01002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP param device name test
-  summary: ble set non-ascii device name
-  steps: |
-    1. DUT1 set non-ascii device name
-    2. stop advertising
-    3. config scan response and start advertising
-    4. DUT2 do active scan
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. device name in scan result
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name_hex>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -L -c 0"
-    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 blescan -D -z start -t 3"
-    - ["R SSC2 P <dut1_ble_name_hex>"]
-- ID: BTSTK_GAP_01003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP param device name test
-  summary: ble set long device name
-  steps: |
-    1. DUT1 set 32 byte device name A
-    2. stop advertising
-    3. config scan response and start advertising
-    4. DUT2 do active scan
-    5. DUT1 set 33 bytes device name
-    6. stop advertising
-    7. config scan response and start advertising
-    8. DUT2 do active scan
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. DUT1 mac in scan result (device name is too long)
-    5. failed
-    6. succeed
-    7. succeed
-    8. DUT1 mac in scan result (device name is too long)
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name_32>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -L -c 0 -s 1"
-    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 blescan -D -z start -t 3"
-    - ["R SSC2 P <dut1_bt_mac>"]
-  - - "SSC SSC1 ble -S -z name -n 123456789012345678901234567890123"
-    - ["R SSC1 C +BLE:ERROR"]
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -L -c 0 -s 1"
-    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 blescan -D -z start -t 3"
-    - ["R SSC2 P <dut1_bt_mac>"]
-- ID: BTSTK_GAP_02001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP config advertising data
-  summary: ble set advertising data / scan response include name
-  steps: |
-    1. DUT1 stop advertise and set short device name
-    2. DUT1 set include device name for adv data and scan response
-    3. DUT1 start advertising
-    4. PC do active scan and capture advertising report
-    5. DUT1 stop advertising
-    6. DUT1 set not include device name for adv data and scan response
-    7. DUT1 start advertising
-    8. PC do active scan and capture advertising report
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. get complete device name in ADV_IND and SCAN_RSP
-    5. succeed
-    6. succeed
-    7. succeed
-    8. do not have complete device name in ADV_IND and SCAN_RSP
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v2 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -n 1 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.NameComplete=<dut1_ble_name>)'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.NameComplete=<dut1_ble_name>)'
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -n 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.NameComplete)'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.NameComplete)'
-- ID: BTSTK_GAP_02002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP config advertising data
-  summary: ble set advertising data / scan response include Tx power
-  steps: |
-    1. DUT1 stop advertise and set short device name
-    2. DUT1 set include Tx power for adv data and scan response
-    3. DUT1 start advertising
-    4. PC do active scan and capture advertising report
-    5. DUT1 stop advertising
-    6. DUT1 set not include Tx power for adv data and scan response
-    7. DUT1 start advertising
-    8. PC do active scan and capture advertising report
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. get Tx power in ADV_IND and SCAN_RSP
-    5. succeed
-    6. succeed
-    7. succeed
-    8. do not have Tx power in ADV_IND and SCAN_RSP
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v2 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -x 1 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.TxPower="")'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.TxPower="")'
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -x 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.TxPower)'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.TxPower)'
-- ID: BTSTK_GAP_02003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP config advertising data
-  summary: ble set advertising data / scan response adv interval
-  steps: |
-    1. DUT1 stop advertise and set short device name
-    2. DUT1 set max interval 0x40 min interval 0x20 for adv data and scan response
-    3. DUT1 start advertising
-    4. PC do active scan and capture advertising report
-    5. DUT1 stop advertising
-    6. DUT1 set max interval 0x400 min interval 0x200 for adv data and scan response
-    7. DUT1 start advertising
-    8. PC do active scan and capture advertising report
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. get interval 0x40 0x20 in ADV_IND and SCAN_RSP
-    5. succeed
-    6. succeed
-    7. succeed
-    8. get interval 0x400 0x200 in ADV_IND and SCAN_RSP
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v2 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -i 0x20-0x40 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0020-0x0040")'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0020-0x0040")'
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -i 0x200-0x400 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0200-0x0400")'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0200-0x0400")'
-- ID: BTSTK_GAP_02004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP config advertising data
-  summary: ble set advertising data / scan response appearance
-  steps: |
-    1. DUT1 stop advertise and set short device name
-    2. DUT1 set appearance to 0 for adv data and scan response
-    3. DUT1 start advertising
-    4. PC do active scan and capture advertising report
-    5. DUT1 stop advertising
-    6. DUT1 set appearance to 1 for adv data and scan response
-    7. DUT1 start advertising
-    8. PC do active scan and capture advertising report
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. do not have appearance in ADV_IND and SCAN_RSP
-    5. succeed
-    6. succeed
-    7. succeed
-    8. get appearance 1 in ADV_IND and SCAN_RSP
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v2 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -a 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.Appearance)'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.Appearance)'
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -a 1 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Appearance="0x01")'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Appearance="0x01")'
-- ID: BTSTK_GAP_02005
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP config advertising data
-  summary: ble set advertising data / scan response manufacturer data
-  steps: |
-    1. DUT1 stop advertise and set short device name
-    2. DUT1 set manufacturer to 0x12345678 for adv data and scan response
-    3. DUT1 start advertising
-    4. PC do active scan and capture advertising report
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. get manufacturer data 0x12345678 in ADV_IND and SCAN_RSP
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v2 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -m 0x12345678 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ManufacturerSpecificData="0x12345678")'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ManufacturerSpecificData="0x12345678")'
-- ID: BTSTK_GAP_02006
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP config advertising data
-  summary: ble set advertising data / scan response service data
-  steps: |
-    1. DUT1 stop advertise
-    2. DUT1 set advertising data and scan response service data 0x1234123456 and not include device name
-    3. DUT1 start advertising
-    4. PC do active scan and capture advertising report
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. get ServiceData16BitUUID 0x1234123456 in ADV_IND and SCAN_RSP
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v2 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -n 0 -d 0x1234123456 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ServiceData16BitUUID="1234123456")'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ServiceData16BitUUID="1234123456")'
-- ID: BTSTK_GAP_02007
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP config advertising data
-  summary: ble set advertising data / scan response service uuid list
-  steps: |
-    1. DUT1 stop advertise
-    2. DUT1 set advertising data and scan response not include name, service uuid list 0xABCD,ABCDDCBA,12349B5F8000008000100000ABCD0000
-    3. DUT1 start advertising
-    4. PC do active scan and capture advertising report
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. get Complete16BitServiceUUID 0xABCD Complete32BitServiceUUID 0xABCDDCBA
-    and Complete128BitServiceUUID 0x12349B5F8000008000100000ABCD0000 in ADV_IND and SCAN_RSP
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v2 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -n 0 -x 0 -i 0x00-0x00 -s ABCD,ABCDDCBA,12349B5F8000008000100000ABCD0000 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Complete16BitServiceUUID="ABCD")(HCIEvent.data_0.Complete32BitServiceUUID="ABCDDCBA")(HCIEvent.data_0.Complete128BitServiceUUID="12349B5F8000008000100000ABCD0000")'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Complete16BitServiceUUID="ABCD")(HCIEvent.data_0.Complete32BitServiceUUID="ABCDDCBA")(HCIEvent.data_0.Complete128BitServiceUUID="12349B5F8000008000100000ABCD0000")'
-- ID: BTSTK_GAP_03001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set advertise param
-  summary: ble set adv parameter adv_type
-  steps: |
-    1. DUT1 stop advertise and set short device name
-    2. DUT1 start adv with adv_type ADV_IND
-    3. PC do active scan and capture advertising report
-    4. repeat step 1-3 with adv_type ADV_TYPE_DIRECT_IND_HIGH
-    5. repeat step 1-3 with adv_type ADV_TYPE_SCAN_IND
-    6. repeat step 1-3 with adv_type ADV_TYPE_NONCONN_IND
-    7. repeat step 1-3 with adv_type ADV_TYPE_DIRECT_IND_LOW
-  expected result: |
-    1. succeed
-    2. succeed
-    3. get ADV_IND with DUT1 BT MAC
-    4. get ADV_DIRECT_IND with DUT1 BT MAC
-    5. get ADV_SCAN_IND with DUT1 BT MAC
-    6. get ADV_NONCONN_IND with DUT1 BT MAC
-    7. can not get ADV_DIRECT_IND with DUT1 BT MAC
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -D -z start -t 0"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
-  - - "SSC SSC1 bleadv -D -z start -t 1 -y 0 -b <hci_nic_mac>"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_DIRECT_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
-  - - "SSC SSC1 bleadv -L -c 0 -i 0x00B0-0x0200 -t 3"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -D -z start -t 2 -i 0x00B0-0x0200"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_SCAN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
-  - - "SSC SSC1 bleadv -D -z start -t 3 -i 0x00B0-0x0200"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_NONCONN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -i 0x0640-0x0780 -t 3"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -D -z start -t 4 -i 0x0640-0x0780 -y 0 -b <hci_nic_mac>"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 3 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.address_0!=<dut1_bt_mac>)'
-- ID: BTSTK_GAP_03002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set advertise param
-  summary: ble set adv parameter channel map
-  steps: |
-    1. DUT1 stop advertise
-    2. DUT1 start adv on channel 37
-    3. PC do active scan and capture advertising report
-    4. repeat step 1-3 with channel map 38, 39, all
-    4. repeat step 1-3 with channel map not valid
-  expected result: |
-    1. succeed
-    2. succeed
-    3. get ADV_IND with DUT1 BT MAC
-    4. get ADV_IND with DUT1 BT MAC
-    5. can not get ADV_IND with DUT1 BT MAC
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - LOOP 6 3 "[1,2,4,7,8,9]" "['=']*4+['!=']*2"
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -D -z start -t 0 -h {%d}"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0{%s}<dut1_bt_mac>)'
-- ID: BTSTK_GAP_03003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set advertise param
-  summary: ble set adv parameter own address type
-  steps: |
-    1. DUT1 stop advertise
-    2. DUT1 start adv with own address type public
-    3. PC do active scan and capture advertising report
-    4. repeat step 1-3 with own address type random, rpa_public, rpa_random
-    5. repeat step 1-3 with channel map not valid
-  expected result: |
-    1. succeed
-    2. succeed
-    3. get ADV_IND with DUT1 BT MAC
-    4. get ADV_IND with DUT1 BT MAC
-    5. can not get ADV_IND with DUT1 BT MAC
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - LOOP 4 3 "[0,2,1,3]" "['PDU','PDU','NPDU','NPDU']"
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -D -z start -t 0 -o {%d}"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC {%s} (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.data_0.NameComplete=<dut1_ble_name>)(HCIEvent.address_0=<dut1_bt_mac>)'
-- ID: BTSTK_GAP_03004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set advertise param
-  summary: ble set adv parameter peer address and peer address type
-  steps: |
-    1. DUT1 stop advertise
-    2. DUT1 start adv with adv type DIRECT_IND_HIGH, peer address type public and peer address as <hci_nic_mac>
-    3. PC do active scan and capture advertising report
-    4. repeat step 1-3 with adv type DIRECT_IND_HIGH, peer address type random and peer address as <hci_nic_mac>
-  expected result: |
-    1. succeed
-    2. succeed
-    3. get ADV_IND with DUT1 name DUT1 BT MAC
-    4. get ADV_IND with DUT1 name and DUT1 BT MAC
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - LOOP 2 2 "[0,1]" "['=','!=']"
-    - [""]
-  - - "SSC SSC1 bleadv -D -z start -t 1 -y {%d} -b <hci_nic_mac>"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.address_0{%s}<dut1_bt_mac>)'
-- ID: BTSTK_GAP_03005
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set advertise param
-  summary: ble set adv parameter adv interval
-  steps: |
-    1. DUT1 stop advertise
-    2. DUT1 start adv with adv interval 0x20-0x20 on channel 1
-    3. PC do active scan and capture advertising report
-    4. repeat step 1-3 with adv interval 0x40-0x40, 0x60-0x60
-  expected result: |
-    1. succeed
-    2. succeed
-    3. calculate adv intervals, within the interval range in adv param
-    4. calculate adv intervals, within the interval range in adv param
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - "BLEFunction/AdvInterval"
-  - - interval_list = ["0x0020-0x0020", "0x0040-0x0040", "0x0060-0x0060"]
-    - ['']
-  - - deviation = 0.3
-    - ['']
-- ID: BTSTK_GAP_03006
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set advertise param
-  summary: ble set paramters for SCAN_IND
-  steps: |
-    1. DUT1 stop advertise
-    2. DUT1 set incorrect adv interval for SCAN_IND
-    3. PC do active scan and capture advertising report
-    4. repeat step 1-3 with correct adv interval
-  expected result: |
-    1. succeed
-    2. succeed
-    3. can not get SCAN_IND with DUT1 BT MAC
-    4. get SCAN_IND with DUT1 BT MAC
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - LOOP 2 2 "['0x20-0x40','0xA0-0xB0']" "['NPDU','PDU']"
-    - [""]
-  - - "SSC SSC1 bleadv -D -z start -t 2 -i {%s}"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC {%s} (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
-- ID: BTSTK_GAP_03007
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set advertise param
-  summary: ble set paramters for NONCONN_IND
-  steps: |
-    1. DUT1 stop advertise
-    2. DUT1 set incorrect adv interval for NONCONN_IND
-    3. PC do active scan and capture advertising report
-    4. repeat step 1-3 with correct adv interval
-  expected result: |
-    1. succeed
-    2. succeed
-    3. can not get SCAN_IND with DUT1 BT MAC
-    4. get SCAN_IND with DUT1 BT MAC
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_3
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-03-01)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
-    - ['R PC_COM C +NIC_START:OK']
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - LOOP 2 2 "['0x20-0x40','0xA0-0xB0']" "['NPDU','PDU']"
-    - [""]
-  - - "SSC SSC1 bleadv -D -z start -t 3 -i {%s}"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "HCITOOL 2 -i <hci_nic> lescan"
-    - - 'P PC_COM C +HCITOOL:OK'
-      - 'P BLENIC {%s} (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="NONCONN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
-- ID: BTSTK_GAP_04001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set scan param
-  summary: ble set scan type
-  steps: |
-    1. stop advertise and set short device name
-    2. DUT1 set adv data with manufacturer data A
-    3. DUT1 set scan response data with manufacturer data B
-    4. DUT2 do passive scan
-    5. DUT2 do active scan
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. get manufacturer data A
-    5. get manufacturer data B
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -R -t 1 -r 0x15FF1011121314151617181910111213141516171819"
-    - ["R SSC1 C +BLEADV:SetAdv,OK"]
-  - - "SSC SSC1 bleadv -R -t 2 -r 0x020AEB"
-    - ["R SSC1 C +BLEADV:SetScanRes,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -L -c 0 -s 0"
-    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 blescan -D -z start -t 3 -e 2"
-    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1011121314151617181910111213141516171819"%%(<dut1_bt_mac>)'
-      - 'R SSC2 NRE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>) C Complete'
-  - - "SSC SSC2 blescan -D -z stop"
-    - ['R SSC2 C +BLESCAN']
-  - - "SSC SSC2 blescan -L -c 0 -s 1"
-    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 blescan -D -z start -t 3 -e 1"
-    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1011121314151617181910111213141516171819"%%(<dut1_bt_mac>)'
-      - 'P SSC2 RE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)'
-      - 'R SSC2 C Complete'
-- ID: BTSTK_GAP_04002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set scan param
-  summary: ble set scan own address type (not test if own address work as expected)
-  steps: |
-    1. DUT1 start advertising
-    2. DUT2 set own addr type (public, random, rpa_public, rpa_random)
-    3. DUT2 do active scan
-    4. DUT2 set invalid own addr type
-  expected result: |
-    1. succeed
-    2. succeed
-    3. able to scan DUT1
-    4. error
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetScanRes,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - LOOP 4 2 "[0,1,2,3]"
-    - ['']
-  - - "SSC SSC2 blescan -L -c 0 -s 1 -o {%d}"
-    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 blescan -D -z start -t 1"
-    - ['R SSC2 P <dut1_bt_mac> C Complete']
-  - - "SSC SSC2 blescan -L -c 0 -o 4"
-    - ["R SSC2 C +BLESCAN:SetScanParam,ERROR"]
-- ID: BTSTK_GAP_04003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set scan param
-  summary: ble set scan interval (will not test if scan interval work as expected)
-  steps: |
-    1. DUT2 start advertising
-    2. DUT1 set scan interval 0x0004
-    3. DUT1 set scan interval 0x4000
-    4. DUT1 set invalid scan interval
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. error
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC2 bleadv -D -z start"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x0004"
-    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x4000"
-    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x0003"
-    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
-  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x4001"
-    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
-- ID: BTSTK_GAP_04004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP set scan param
-  summary: ble set scan window (will not test if scan window work as excepted)
-  steps: |
-    1. DUT2 set scan interval 0x0004
-    2. DUT2 set scan interval 0x4000
-    3. DUT2 set scan interval 0x0003
-    4. DUT2 set scan interval 0x4001
-  expected result: |
-    1. succeed
-    2. succeed
-    3. fail
-    4. fail
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 blescan -L -c 0 -w 0x0004"
-    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC1 blescan -L -c 0 -w 0x4000"
-    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC1 blescan -L -c 0 -w 0x0003"
-    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
-  - - "SSC SSC1 blescan -L -c 0 -w 0x4001"
-    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
-- ID: BTSTK_GAP_05001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP start stop adv / scan
-  summary: stop and start adv in wrong state
-  steps: |
-    1. DUT1 stop adv
-    2. DUT1 stop adv
-    3. DUT2 do passive scan
-    4. DUT1 start adv
-    5. DUT1 start adv
-    6. DUT2 do passive scan
-  expected result: |
-    1. succeed
-    2. succeed
-    3. DUT1 not in scan result
-    4. succeed
-    5. succeed
-    6. DUT1 in scan result
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -L -c 0"
-    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 blescan -D -z start -t 1"
-    - ["R SSC2 NP <dut1_bt_mac> C Complete"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -L -c 0"
-    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 blescan -D -z start -t 1"
-    - ["R SSC2 P <dut1_bt_mac> C Complete"]
-- ID: BTSTK_GAP_05002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP start stop adv / scan
-  summary: cancel scan when scanning or not scanning
-  steps: |
-    1. DUT1 start scanning for 3 seconds
-    2. DUT1 stop scanning
-    3. DUT1 stop scanning
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-  initial condition: BLE_INIT1
-  test environment: SSC_T1_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 blescan -L -c 0"
-    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC1 blescan -D -z start -t 3"
-    - ["R SSC1 C +BLESCAN:OK"]
-  - - "SSC SSC1 blescan -D -z stop"
-    - ["R SSC1 C +BLESCAN:OK"]
-  - - "SSC SSC1 blescan -D -z stop"
-    - ["R SSC1 C +BLESCAN:OK"]
-- ID: BTSTK_GAP_06001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP connect / disconnect
-  summary: ble connect as "client" and "server"
-  steps: |
-    1. DUT1 connect to DUT2 as "client"
-    2. DUT1 disconnected with DUT2
-    3. DUT1 start gatt server app
-    4. DUT1 connect to DUT2 as "server"
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. succeed
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-  - - "SSC SSC1 bleconn -D -p 0x10"
-    - ['R SSC1 C +BLE:CLOSE,OK']
-  - - "SSC SSC1 gatts -S -z load -p 0xA0"
-    - ['R SSC1 C +GATTS:LoadProfile,OK']
-  - - "SSC SSC2 bleadv -D -z start"
-    - ['R SSC2 C +BLEADV:OK']
-  - - "SSC SSC1 bleconn -C -p 0xA0 -a <dut2_bt_mac> -z server"
-    - ['R SSC1 C +BLE:GattsConnect']
-- ID: BTSTK_GAP_06002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP connect / disconnect
-  summary: ble disconnect as "client" and "server"
-  steps: |
-    1. DUT1 connect to DUT2 as "client"
-    2. DUT1 disconnected with DUT2 as "client"
-    3. DUT1 start gatt server app
-    4. DUT1 connect to DUT2 as client
-    5. DUT1 disconnect with DUT2 as "server"
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. succeed
-    5. succeed
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-  - - "SSC SSC1 bleconn -D -p 0x10"
-    - ['R SSC1 C +BLE:CLOSE,OK']
-  - - "SSC SSC2 bleadv -D -z start"
-    - ['R SSC2 C +BLEADV:OK']
-  - - "SSC SSC1 gatts -S -z load -p 0xA0"
-    - ['R SSC1 C +GATTS:LoadProfile,OK']
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-  - - "SSC SSC1 bleconn -D -p 0x10"
-    - ['R SSC1 C +BLE:CLOSE,OK']
-- ID: BTSTK_GAP_06003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP connect / disconnect
-  summary: ble connect/disconnect to same connection multiple times
-  steps: |
-    1. DUT1 connect to DUT2 as "client"
-    2. DUT1 start gatt server app
-    3. DUT1 connect to DUT2 as "client" again
-    4. DUT1 connect to DUT2 as "server"
-    5. DUT1 disconnected with DUT2 as "client"
-    6. DUT1 disconnected with DUT2 as "server"
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. succeed
-    5. succeed
-    6. succeed
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-  - - "SSC SSC1 gatts -S -z load -p 0xA0"
-    - ['R SSC1 C +GATTS:LoadProfile,OK']
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['R SSC1 C +BLE:GattcOpen,OK']
-  - - "SSC SSC1 bleconn -C -p 0xA0 -a <dut2_bt_mac> -z server"
-    - ['R SSC1 C +BLE:GattsConnect']
-  - - "SSC SSC1 bleconn -D -p 0x10"
-    - ['R SSC1 C +BLE:CLOSE,OK']
-  - - "SSC SSC1 bleconn -D -p 0xA0 -z server"
-    - ['R SSC1 RE +BLE:GattsClose,OK']
-- ID: BTSTK_GAP_06004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP connect / disconnect
-  summary: ble connect to invalid address
-  steps: |
-    1. DUT1 connect to invalid address
-    2. DUT1 connect to DUT2
-  expected result: |
-    1. failed
-    2. succeed
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleconn -C -p 0x10 -a 24:0a:c4:04:26:50"
-    - ['R SSC1 C +BLECONN:OK']
-  - - DELAY 30
-    - ['R SSC1 C +BLE:GattcOpen,ERROR']
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-- ID: BTSTK_GAP_06005
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP connect / disconnect
-  summary: ble connect/disconnect event to active app
-  steps: |
-    1. DUT1, DUT2 create gatts app
-    2. DUT1 connect to DUT2 as "client"
-    3. DUT1 do disconnect as "server"
-  expected result: |
-    1. succeed
-    2. succeed, DUT1 and DUT2 gatts get connect event
-    3. DUT1 and DUT2 gatts get disconnect event
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC[1-2] gatts -S -z load -p 0xA0"
-    - ['R SSC[1-2] C +GATTS:LoadProfile,OK']
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect C +BLE:GattsConnect', 'P SSC2 C +BLE:GattsConnect']
-  - - "SSC SSC1 bleconn -D -p 0xA0 -z server"
-    - ['P SSC1 C +BLE:GattsClose']
-- ID: BTSTK_GAP_07001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP update connect parameters
-  summary: update connect parameters by master
-  steps: |
-    1. DUT1 update connection parameters
-  expected result: |
-    1. succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac>"
-    - ['R SSC1 C +BLECONN:OK']
-- ID: BTSTK_GAP_07002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP update connect parameters
-  summary: update connect parameters by slave
-  steps: |
-    1. DUT2 update connection parameters
-  expected result: |
-    1. succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC2 bleconn -S -z ConnParam -a <dut1_bt_mac>"
-    - ['R SSC2 C +BLECONN:OK']
-- ID: BTSTK_GAP_07003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP update connect parameters
-  summary: update invalid connect parameters
-  steps: |
-    1. DUT1 update invalid interval
-    2. DUT1 update invalid latency
-    3. DUT1 update invalid timeout
-  expected result: |
-    1. fail
-    2. fail
-    3. fail
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -i 0-0xFFFF"
-    - ['R SSC1 C +BLECONN:ERROR']
-  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -l 0x1F4"
-    - ['R SSC1 C +BLECONN:ERROR']
-  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -t 0x08"
-    - ['R SSC1 C +BLECONN:ERROR']
-  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -t 0xC81"
-    - ['R SSC1 C +BLECONN:ERROR']
-- ID: BTSTK_GAP_08001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP operation without init/enable BT or register callback
-  summary: do adv, scan, set name when BT is deinit
-  steps: |
-    1. DUT1 do adv
-    2. DUT1 do scan
-    3. DUT2 do set name
-  expected result: |
-    1. fail
-    2. fail
-    3. fail
-  initial condition: BLE_DEINIT1
-  test environment: SSC_T1_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -L -c 0"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 blescan -L -c 0"
-    - ["R SSC1 C +BLESCAN"]
-  - - "SSC SSC1 blescan -D -z start"
-    - ["R SSC1 C +BLESCAN"]
-  - - "SSC SSC1 ble -S -z name -n abcde"
-    - ["R SSC1 C +BLE"]
-- ID: BTSTK_GAP_08002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP operation without init/enable BT or register callback
-  summary: do adv, scan, set name, conn when BT is disable
-  steps: |
-    1. DUT1 do init
-    2. DUT1 do adv
-    3. DUT1 do scan
-    4. DUT2 do set name
-  expected result: |
-    1. succeed
-    2. fail
-    3. fail
-    4. fail
-  initial condition: BLE_DEINIT1
-  test environment: SSC_T1_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bt -D -z init"
-    - ["R SSC1 C +BT:OK"]
-  - - "SSC SSC1 bleadv -L -c 0"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 blescan -L -c 0"
-    - ["R SSC1 C +BLESCAN"]
-  - - "SSC SSC1 blescan -D -z start"
-    - ["R SSC1 C +BLESCAN"]
-  - - "SSC SSC1 ble -S -z name -n abcde"
-    - ["R SSC1 C +BLE"]
-- ID: BTSTK_GAP_08003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP operation without init/enable BT or register callback
-  summary: do adv, scan, set name, conn when BT is enable but no callback registered
-  steps: |
-    1. DUT1 do init and enable
-    2. DUT1 do adv
-    3. DUT1 do scan
-    4. DUT2 do set name
-  expected result: |
-    1. succeed
-    2. fail
-    3. fail
-    4. fail
-  initial condition: BLE_DEINIT1
-  test environment: SSC_T1_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bt -D -z start"
-    - ["R SSC1 C +BT:OK"]
-  - - "SSC SSC1 bleadv -L -c 0"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 blescan -L -c 0"
-    - ["R SSC1 C +BLESCAN"]
-  - - "SSC SSC1 blescan -D -z start"
-    - ["R SSC1 C +BLESCAN"]
-  - - "SSC SSC1 ble -S -z name -n abcde"
-    - ["R SSC1 C +BLE"]
-- ID: BTSTK_GAP_09001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP processing scan data
-  summary: process scan data txp, manufacturer data, interval range, appearence, flag
-  steps: |
-    1. DUT1 set raw adv data tx power, manufacturer data, interval range, apperaence, flag
-    2. DUT1 start adv
-    3. DUT2 do active scan with extended scan data 19
-  expected result: |
-    1. succeed
-    2. succeed
-    3. scan with the correct adv data
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -R -t 1 -r 0x020AEB06FF1112131415051220004000021901020106"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
-    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1112131415"%%(<dut1_bt_mac>)'
-      - 'P SSC2 RE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)'
-      - 'P SSC2 RE "\+BTSCANEXT:%%s,intrange,0x20004000"%%(<dut1_bt_mac>)'
-      - 'P SSC2 RE "\+BTSCANEXT:%%s,app,0x01"%%(<dut1_bt_mac>)'
-      - 'P SSC2 RE "\+BTSCANEXT:%%s,flag,0x06"%%(<dut1_bt_mac>)'
-      - 'R SSC2 C Complete'
-- ID: BTSTK_GAP_09002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP processing scan data
-  summary: process scan data service UUIDs
-  steps: |
-    1. DUT1 set raw adv 16 bit Complete UUID list
-    2. DUT1 start adv
-    3. DUT2 do active scan with extended scan data
-    4. repeat step 1-3 with 16 bit incomplete UUID, 32 bit complete/incomplete UUID, 128 bit complete/incomplete UUID
-  expected result: |
-    1. succeed
-    2. succeed
-    3. scan with the correct adv data
-    4. scan with the correct adv data
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - LOOP 4 3 "['0302ABCD','0303ABCD','0504ABCDABCD','0505ABCDABCD',]" "['insrv16,0xABCD','srv16,0xABCD','insrv32,0xABCDABCD','srv32,0xABCDABCD']"
-  - - "SSC SSC1 bleadv -R -t 1 -r 0x{%s}"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
-    - - 'P SSC2 RE "\+BTSCANEXT:%%s,{%s}"%%(<dut1_bt_mac>)'
-      - 'R SSC2 C Complete'
-  - - LOOP 2 3 "['1106ABCDABCDABCDABCDABCDABCDABCDABCD','1107ABCDABCDABCDABCDABCDABCDABCDABCD']" "['insrv128,0xABCDABCDABCDABCDABCDABCDABCDABCD','srv128,0xABCDABCDABCDABCDABCDABCDABCDABCD']"
-  - - "SSC SSC1 bleadv -R -t 1 -r 0x{%s}"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
-    - - 'P SSC2 RE "\+BTSCANEXT:%%s,{%s}"%%(<dut1_bt_mac>)'
-      - 'R SSC2 C Complete'
-- ID: BTSTK_GAP_09003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP processing scan data
-  summary: process scan data service data
-  steps: |
-    1. DUT1 set raw adv 16 bit service data
-    2. DUT1 start adv
-    3. DUT2 do active scan with extended scan data
-    4. repeat step 1-3 with 32 bit service data, 128 bit service data
-  expected result: |
-    1. succeed
-    2. succeed
-    3. scan with the correct adv data
-    4. scan with the correct adv data
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - LOOP 3 3 "['0416ABCDEF','0620ABCDABCDEF','1221ABCDABCDABCDABCDABCDABCDABCDABCDEF',]" "['srvdata,0xABCDEF','srvdata32,0xABCDABCDEF','srvdata128,0xABCDABCDABCDABCDABCDABCDABCDABCDEF']"
-  - - "SSC SSC1 bleadv -R -t 1 -r 0x{%s}"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
-    - - 'P SSC2 RE "\+BTSCANEXT:%%s,{%s}"%%(<dut1_bt_mac>)'
-      - 'R SSC2 C Complete'
-- ID: BTSTK_GAP_09004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GAP processing scan data
-  summary: process combined adv data and scan response data
-  steps: |
-    1. DUT1 set raw adv data manufacturer data
-    2. DUT1 set scan response data tx power, interval range, apperaence, flag
-    2. DUT1 start adv
-    3. DUT2 do active scan with extended scan data 19
-  expected result: |
-    1. succeed
-    2. succeed
-    3. scan with the correct adv data
-  initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -R -t 1 -r 0x15FF1011121314151617181910111213141516171819"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -R -t 2 -r 0x020AEB051220004000021901020106"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
-    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1011121314151617181910111213141516171819"%%(<dut1_bt_mac>)'
-      - 'P SSC2 RE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)'
-      - 'P SSC2 RE "\+BTSCANEXT:%%s,intrange,0x20004000"%%(<dut1_bt_mac>)'
-      - 'P SSC2 RE "\+BTSCANEXT:%%s,app,0x01"%%(<dut1_bt_mac>)'
-      - 'P SSC2 RE "\+BTSCANEXT:%%s,flag,0x06"%%(<dut1_bt_mac>)'
-      - 'R SSC2 C Complete'
-- ID: BTSTK_GAP_40001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'No'
-  category: Function
-  test point 1: function
-  test point 2: test if BLE work after switch off some sub modules
-  summary: GAP only test
-  steps: |
-    1. download GAP only SSC bin on both DUT
-    2. DUT1 set ascii device name
-    3. stop advertising
-    4. config scan response and start advertising
-    5. DUT2 do active scan
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. succeed
-    5. device name in scan result
-  initial condition: None
-  test environment: SSC_T2_1
-  execution time: 5
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2017-05-19)
-  CI ready: 'No'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC[1-2] reboot"
-    - ['R SSC[1-2] C !!!ready!!!']
-  - - "SSC SSC[1-2] ble -R"
-    - ["R SSC[1-2] C +BLE:OK"]
-  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
-    - ["R SSC1 C +BLE:OK"]
-  - - "SSC SSC1 bleadv -D -z stop"
-    - ["R SSC1 C +BLEADV"]
-  - - "SSC SSC1 bleadv -L -c 0 -t 3"
-    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
-  - - "SSC SSC1 bleadv -D -z start"
-    - ["R SSC1 C +BLEADV:OK"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ["R SSC2 C +BLEADV:OK"]
-  - - "SSC SSC2 blescan -L -c 0"
-    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
-  - - "SSC SSC2 blescan -D -z start -t 3"
-    - ["R SSC2 P <dut1_ble_name>"]
-- ID: BTSTK_GAP_50001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'No'
-  category: Stress
-  test point 1: stress
-  test point 2: BLE GAP stress test
-  summary: BLE Connect and disconnect stress test
-  steps: |
-    1. DUT1 disconnect with DUT2
-    2. DUT2 start advertising
-    3. DUT1 connect to DUT2
-    4. do service discovery
-    5. loop step 1-4
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. succeed
-    5. succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 5
-  module: BT Stack
-  sub module: GAP
-  version: v1 (2017-05-19)
-  CI ready: 'No'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "LOOP 1000 5"
-    - ['']
-  - - "SSC SSC1 ram"
-    - ['R SSC1 A <heap_size>:(\d+)']
-  - - "SSC SSC1 bleconn -D -z all"
-    - ['P SSC1 C +BLE:CLOSE', 'P SSC2 C +BLE:GattsDisconnect']
-  - - "SSC SSC2 bleadv -D -z start"
-    - ['R SSC2 C +BLEADV:OK']
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:DiscoverService,A000"]
diff --git a/components/idf_test/integration_test/IT_BTSTK_MISC.yml b/components/idf_test/integration_test/IT_BTSTK_MISC.yml
deleted file mode 100644 (file)
index 704a37b..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-test cases:
-- ID: BTSTK_MISC_0101
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: bt init and enable
-  summary: correct init and deinit flow
-  steps: '1. disable and deinit bt
-    2. init bt
-    3. deinit bt
-    4. init and enable bt
-    5. disable and deinit bt'
-  expected result: '1. succeed
-    2. succeed
-    3. succeed
-    4. succeed
-    5. succeed'
-  initial condition: BLE_DEINIT1
-  test environment: SSC_T1_1
-  execution time: 0
-  module: BT Stack
-  sub module: Misc
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bt -D -z stop"
-    - ["R SSC1 C +BT"]
-  - - "SSC SSC1 bt -D -z init"
-    - ["R SSC1 C +BT:OK"]
-  - - "SSC SSC1 bt -D -z deinit"
-    - ["R SSC1 C +BT:OK"]
-  - - "SSC SSC1 bt -D -z start"
-    - ["R SSC1 C +BT:OK"]
-  - - "SSC SSC1 bt -D -z stop"
-    - ["R SSC1 C +BT:OK"]
-- ID: BTSTK_MISC_0102
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: bt init and enable
-  summary: incorrect deinit disable flow
-  steps: '1. disable and deinit bt
-    2. init and enable bt
-    3. deinit bt
-    4. disable bt
-    5. disable bt
-    6. deinit bt
-    7. deinit bt
-    8. disable bt'
-  expected result: '1. succeed
-    2. succeed
-    3. fail
-    4. succeed
-    5. fail
-    6. succeed
-    7. fail
-    8. fail'
-  initial condition: BLE_DEINIT1
-  test environment: SSC_T1_1
-  execution time: 0
-  module: BT Stack
-  sub module: Misc
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bt -D -z stop"
-    - ["R SSC1 C +BT"]
-  - - "SSC SSC1 bt -D -z start"
-    - ["R SSC1 C +BT:OK"]
-  - - "SSC SSC1 bt -D -z deinit"
-    - ["R SSC1 C +BT:ERROR"]
-  - - "SSC SSC1 bt -D -z disable"
-    - ["R SSC1 C +BT:OK"]
-  - - "SSC SSC1 bt -D -z disable"
-    - ["R SSC1 C +BT:ERROR"]
-  - - "SSC SSC1 bt -D -z deinit"
-    - ["R SSC1 C +BT:OK"]
-  - - "SSC SSC1 bt -D -z deinit"
-    - ["R SSC1 C +BT:ERROR"]
-  - - "SSC SSC1 bt -D -z disable"
-    - ["R SSC1 C +BT:ERROR"]
-- ID: BTSTK_MISC_0103
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: bt init and enable
-  summary: incorrect init enable flow
-  steps: '1. disable and deinit bt
-    2. enable bt
-    3. init bt
-    4. init bt
-    5. enable bt
-    6. enable bt
-    7. init bt'
-  expected result: '1. succeed
-    2. fail
-    3. succeed
-    4. fail
-    5. succeed
-    6. fail
-    7. fail'
-  initial condition: BLE_DEINIT1
-  test environment: SSC_T1_1
-  execution time: 0
-  module: BT Stack
-  sub module: Misc
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 bt -D -z stop"
-    - ["R SSC1 C +BT"]
-  - - "SSC SSC1 bt -D -z enable"
-    - ["R SSC1 C +BT:ERROR"]
-  - - "SSC SSC1 bt -D -z init"
-    - ["R SSC1 C +BT:OK"]
-  - - "SSC SSC1 bt -D -z init"
-    - ["R SSC1 C +BT:ERROR"]
-  - - "SSC SSC1 bt -D -z enable"
-    - ["R SSC1 C +BT:OK"]
-  - - "SSC SSC1 bt -D -z enable"
-    - ["R SSC1 C +BT:ERROR"]
-  - - "SSC SSC1 bt -D -z init"
-    - ["R SSC1 C +BT:ERROR"]
diff --git a/components/idf_test/integration_test/InitialConditionAll.yml b/components/idf_test/integration_test/InitialConditionAll.yml
deleted file mode 100644 (file)
index d3bca8d..0000000
+++ /dev/null
@@ -1,3197 +0,0 @@
-initial condition:
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:2']
-  - - SSC SSC1 ap -Q
-    - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)']
-  - - SSC SSC1 dhcp -Q -o 2
-    - ['R SSC1 C +DHCP:AP,STARTED']
-  - - SSC SSC1 mac -Q -o 2
-    - [R SSC1 P <target_ap_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  initial condition detail: AP mode, DHCP on, will autogen a TC with initial condition
-    APSTA1
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 31.0
-  tag: APM1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:2']
-  - - SSC SSC1 ap -Q
-    - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)']
-  - - SSC SSC1 ap -L
-    - ['R SSC1 RE "\+LSTA:.+,%%s"%%(<pc_ip_wifi>)']
-  - - SSC SSC1 dhcp -Q -o 2
-    - ['R SSC1 C +DHCP:AP,STARTED']
-  - - SSC SSC1 mac -Q -o 2
-    - [R SSC1 P <target_ap_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  initial condition detail: AP mode, PC join AP, DHCP on, will autogen a TC with initial
-    condition APSTA2
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 38.0
-  tag: APM2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:2']
-  - - SSC SSC1 ap -Q
-    - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)']
-  - - SSC SSC1 dhcp -Q -o 2
-    - ['R SSC1 C +DHCP:AP,STARTED']
-  - - SSC SSC1 mac -Q -o 2
-    - [R SSC1 P <target_ap_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  initial condition detail: AP mode, will NOT autogen a TC with initial condition
-    APSTA1
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 31.0
-  tag: APO1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:2']
-  - - SSC SSC1 ap -Q
-    - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)']
-  - - SSC SSC1 ap -L
-    - ['R SSC1 RE "\+LSTA:.+,%%s"%%(<pc_ip_wifi>)']
-  - - SSC SSC1 dhcp -Q -o 2
-    - ['R SSC1 C +DHCP:AP,STARTED']
-  - - SSC SSC1 mac -Q -o 2
-    - [R SSC1 P <target_ap_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  initial condition detail: AP mode, will NOT autogen a TC with initial condition
-    APSTA2
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 38.0
-  tag: APO2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 upgrade -Q -t 1
-    - ['R SSC1 C BIN_ID,0']
-  - - SSC SSC1 upgrade -Q -t 2 -b 0
-    - ['R SSC1 C BIN_INFO,0']
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 upgrade -R -r 1 -s <ota_bin_size>
-    - [R SSC1 NC ERROR C !!!ready!!!]
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  - - SOC SOC1 ULISTEN <test_tcp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SOC SOC1 SETOPT REPLY BIN
-    - [R SOC_COM C OK]
-  - - SSC SSC1 upgrade -I -b 0 -f 0
-    - ['P SSC1 C +UPGRADE:OK']
-  - - SSC SSC1 upgrade -U -i <pc_ip> -p <test_tcp_port1> -u <ota_bin>
-    - ['P SSC1 C +UPGRADE:SUCCEED']
-  - - SSC SSC1 upgrade -R -b 0
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  initial condition detail: AP only mode, running BIN0 (located on flash id 0)
-  restore cmd set:
-  - ''
-  - - SSC SSC1 upgrade -Q -t 2 -b 0
-    - ['R SSC1 C BIN_INFO,0']
-  - - SSC SSC1 upgrade -R -b 0
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 upgrade -D
-    - ['R SSC1 C +UPGRADE:OK']
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 31.0
-  tag: APOBIN0
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:3']
-  - - SSC SSC1 ap -Q
-    - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)']
-  - - SSC SSC1 dhcp -Q -o 2
-    - ['R SSC1 C +DHCP:AP,STARTED']
-  - - SSC SSC1 mac -Q -o 2
-    - [R SSC1 P <target_ap_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  initial condition detail: testing ap on sta + ap mode (autogen by APM1)
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 59.0
-  tag: APSTA1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:3']
-  - - SSC SSC1 ap -Q
-    - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(<target_ssid>,<target_password>)']
-  - - SSC SSC1 ap -L
-    - ['R SSC1 RE "\+LSTA:.+,%%s"%%(<pc_ip_wifi>)']
-  - - SSC SSC1 dhcp -Q -o 2
-    - ['R SSC1 C +DHCP:AP,STARTED']
-  - - SSC SSC1 mac -Q -o 2
-    - [R SSC1 P <target_ap_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  initial condition detail: testing ap on sta + ap mode,  PC join AP (autogen by APM2)
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 66.0
-  tag: APSTA2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:3']
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - DELAY 5
-    - ['']
-  - - ATC AT1 CWSAP_DEF <target_ssid> <target_password> <target_channel> <target_auth_enum>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  initial condition detail: StationSoftAP mode
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 24.0
-  tag: ATAP1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 C +CWMODE_CUR:3 L OK']
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:1']
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - DELAY 5
-    - ['']
-  - - ATC AT1 CWSAP_DEF <target_ssid> <target_password> <target_channel> <target_auth_enum>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  initial condition detail: StationSoftAP mode, PC join Target AP, multi link, use
-    dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 31.0
-  tag: ATAP3
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 C +CWMODE_CUR:3 L OK']
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:0']
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - DELAY 10
-    - ['']
-  - - ATC AT1 CWSAP_DEF <target_ssid> <target_password> <target_channel> <target_auth_enum>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  initial condition detail: StationSoftAP mode, PC join Target AP, single link, use
-    dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 45.0
-  tag: ATAP4
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT
-    - [R AT1 L OK]
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+RST
-    - [R AT1 L OK]
-  initial condition detail: StationSoftAP mode, both PC join Target AP, single link,
-    use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 3.0
-  tag: ATAP5
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT
-    - [R AT1 L OK]
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+RST
-    - [R AT1 L OK]
-  initial condition detail: StationSoftAP mode, both PC join Target AP, multi link,
-    use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 3.0
-  tag: ATAP6
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:2']
-  - - ATS AT1 AT+CWDHCP_DEF=0,1
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=2
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=0,1
-    - [R AT1 R *]
-  initial condition detail: SoftAP mode, use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=2
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=0,1
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 59.0
-  tag: ATAPO1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 C +CWMODE_CUR:2 L OK']
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:1']
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWDHCP_DEF=0,1
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=2
-    - [R AT1 L OK]
-  - - ATC AT1 CWSAP_DEF <target_ssid> <target_password> <target_channel> <target_auth_enum>
-    - [R AT1 L OK]
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWDHCP_DEF=0,1
-    - [R AT1 R *]
-  initial condition detail: SoftAP mode, PC join Target AP, multi link, use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=2
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CWDHCP_DEF=0,1
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 66.0
-  tag: ATAPO3
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 C +CWMODE_CUR:2 L OK']
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:0']
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWDHCP_DEF=0,1
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=2
-    - [R AT1 L OK]
-  - - ATC AT1 CWSAP_DEF <target_ssid> <target_password> <target_channel> <target_auth_enum>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=0,1
-    - [R AT1 R *]
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  initial condition detail: SoftAP mode, PC join Target AP, single link, use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=2
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWLIF
-    - [R AT1 P <pc_ip>]
-  - - ATS AT1 AT+CWDHCP_DEF=0,1
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 73.0
-  tag: ATAPO4
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT
-    - [R AT1 L OK]
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+RST
-    - [R AT1 L OK]
-  initial condition detail: SoftAP mode, both PC join Target AP, single link, use
-    dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 3.0
-  tag: ATAPO5
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT
-    - [R AT1 L OK]
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+RST
-    - [R AT1 L OK]
-  initial condition detail: SoftAP mode, both PC join Target AP, multi link, use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 3.0
-  tag: ATAPO6
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:3']
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  initial condition detail: StationSoftAP mode
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 87.0
-  tag: ATAPSTA1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:3']
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  initial condition detail: StationSoftAP mode, DHCP client on
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 87.0
-  tag: ATAPSTA2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:3']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - ['R AT1 C +CWJAP_CUR:', R AT1 P <ap_ssid>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:1']
-  - - ATS AT1 AT+CWDHCP_CUR?
-    - ['R AT1 C DHCP:3']
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  initial condition detail: StationSoftAP mode, connected to AP, multi link, use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 94.0
-  tag: ATAPSTA3
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:3']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - ['R AT1 C +CWJAP_CUR:', R AT1 P <ap_ssid>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:0']
-  - - ATS AT1 AT+CWDHCP_CUR?
-    - ['R AT1 C DHCP:3']
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  initial condition detail: StationSoftAP mode, connected to AP, single link, use
-    dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWDHCP_DEF=2,1
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 101.0
-  tag: ATAPSTA4
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:3']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - ['R AT1 C +CWJAP_CUR:', R AT1 P <ap_ssid>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:1']
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  initial condition detail: StationSoftAP mode, connected to AP, multi link, use static
-    ip
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 129.0
-  tag: ATAPSTA5
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:3']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - ['R AT1 C +CWJAP_CUR:', R AT1 P <ap_ssid>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:0']
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  initial condition detail: StationSoftAP mode, connected to AP, single link, use
-    static ip
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 136.0
-  tag: ATAPSTA6
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT
-    - [R AT1 L OK]
-  - - ATS AT1 AT+RESTORE
-    - [R AT1 L OK, R AT1 C ready]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT
-    - [R AT1 L OK]
-  - - ATS AT1 AT+RESTORE
-    - [R AT1 L OK, R AT1 C ready]
-  initial condition detail: 'first time usage. Use restore function. '
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+RESTORE
-    - [R AT1 L OK, R AT1 C ready]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 143.0
-  tag: ATFTU
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT
-    - [R AT1 L OK]
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+RST
-    - [R AT1 L OK]
-  initial condition detail: none
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 3.0
-  tag: ATNone
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - DELAY 0.1
-    - [dummy]
-  force restore cmd set:
-  - ''
-  - - DELAY 0.1
-    - [dummy]
-  initial condition detail: none 2
-  restore cmd set:
-  - ''
-  - - DELAY 0.1
-    - [dummy]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 108.0
-  tag: ATNone2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:1']
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 L OK]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 L OK]
-  initial condition detail: same as STA1, but will not autogen STA+AP STA test case
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 L OK]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 10.0
-  tag: ATOSTA1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:1']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - ['R AT1 C +CWJAP_CUR:', R AT1 P <ap_ssid>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:0']
-  - - ATS AT1 AT+CWDHCP_CUR?
-    - ['R AT1 C DHCP:3']
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 R *]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  initial condition detail: same as STA4, but will not autogen STA+AP STA test case
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 R *]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 17.0
-  tag: ATOSTA4
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 C +CWMODE_CUR:3 C OK']
-  - - ATS AT2 AT+CWMODE_CUR?
-    - ['R AT2 C +CWMODE_CUR:1 C OK']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - [R AT1 NC OK L ERROR]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT2 AT+CWMODE_DEF=1
-    - [R AT2 L OK]
-  - - ATS AT1 AT+CWQAP
-    - [R AT1 L OK]
-  initial condition detail: same as OT2_1, but will not autogen STA+AP STA test case
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT2 AT+CWMODE_DEF=1
-    - [R AT2 L OK]
-  - - ATS AT1 AT+CWQAP
-    - [R AT1 L OK]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 52.0
-  tag: ATOT2_1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:1']
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 L OK]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 L OK]
-  initial condition detail: station mode, use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 L OK]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 10.0
-  tag: ATSTA1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:1']
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 L OK]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 L OK]
-  initial condition detail: station mode, DHCP client on, use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 L OK]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 10.0
-  tag: ATSTA2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:1']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - ['R AT1 C +CWJAP_CUR:', R AT1 P <ap_ssid>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:1']
-  - - ATS AT1 AT+CWDHCP_CUR?
-    - ['R AT1 C DHCP:3']
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 R *]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  initial condition detail: station mode, connected to AP, multi link, use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 R *]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 38.0
-  tag: ATSTA3
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:1']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - ['R AT1 C +CWJAP_CUR:', R AT1 P <ap_ssid>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:0']
-  - - ATS AT1 AT+CWDHCP_CUR?
-    - ['R AT1 C DHCP:3']
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 R *]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  initial condition detail: station mode, connected to AP, single link, use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CWDHCP_DEF=1,1
-    - [R AT1 R *]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 17.0
-  tag: ATSTA4
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:1']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - ['R AT1 C +CWJAP_CUR:', R AT1 P <ap_ssid>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:1']
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  initial condition detail: station mode, connected to AP, multi link, use static
-    ip
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=1
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 115.0
-  tag: ATSTA5
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 L +CWMODE_CUR:1']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - ['R AT1 C +CWJAP_CUR:', R AT1 P <ap_ssid>]
-  - - ATS AT1 AT+CIPMUX?
-    - ['R AT1 L +CIPMUX:0']
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  initial condition detail: station mode, connected to AP, single link, use static
-    ip
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=1
-    - [R AT1 L OK]
-  - - ATC AT1 CWJAP_DEF <ap_ssid> <ap_password>
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPSERVER=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPCLOSE <max_conn>
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMUX=0
-    - [R AT1 L OK]
-  - - ATS AT1 AT+CIPCLOSE
-    - [R AT1 R *]
-  - - ATS AT1 AT+CIPMODE=0
-    - [R AT1 R *]
-  - - ATC AT1 CIPSTA_DEF <target_static_ip>
-    - [R AT1 L OK]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 122.0
-  tag: ATSTA6
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 C +CWMODE_CUR:3 C OK']
-  - - ATS AT2 AT+CWMODE_CUR?
-    - ['R AT2 C +CWMODE_CUR:1 C OK']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - [R AT1 NC OK L ERROR]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT2 AT+CWMODE_DEF=1
-    - [R AT2 L OK]
-  - - ATS AT1 AT+CWQAP
-    - [R AT1 L OK]
-  initial condition detail: Target 1 in StationSoftAP mode, Target 2 in station mode,
-    use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=3
-    - [R AT1 L OK]
-  - - ATS AT2 AT+CWMODE_DEF=1
-    - [R AT2 L OK]
-  - - ATS AT1 AT+CWQAP
-    - [R AT1 L OK]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 52.0
-  tag: ATT2_1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ATS AT1 AT+CWMODE_CUR?
-    - ['R AT1 C +CWMODE_CUR:2 C OK']
-  - - ATS AT2 AT+CWMODE_CUR?
-    - ['R AT2 C +CWMODE_CUR:3 C OK']
-  - - ATS AT1 AT+CWJAP_CUR?
-    - [R AT1 NC OK L ERROR]
-  force restore cmd set:
-  - ''
-  - - ATS AT1 AT+RST
-    - [R AT1 C ready]
-  - - ATS AT1 AT+CWMODE_DEF=2
-    - [R AT1 L OK]
-  - - ATS AT2 AT+CWMODE_DEF=3
-    - [R AT2 L OK]
-  initial condition detail: Target 1 in SoftAP mode, Target 2 in StationSoftAP mode,
-    use dhcp
-  restore cmd set:
-  - ''
-  - - ATSO AT1 +++
-    - ['']
-  - - ATS AT1 AT
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - ATS AT1 AT+CWMODE_DEF=2
-    - [R AT1 L OK]
-  - - ATS AT2 AT+CWMODE_DEF=3
-    - [R AT2 L OK]
-  restore post cmd set:
-  - ''
-  - - ATS AT1 AT+CWSTOPSMART
-    - [R AT1 R *]
-  - - ATS AT1 AT+SAVETRANSLINK=0
-    - [R AT1 R *]
-  - - AT+SYSRAM
-    - ['R AT1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 80.0
-  tag: ATT2_2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ASSERT
-    - [dummy]
-  force restore cmd set:
-  - ''
-  - - SSC SSC[1-<node_num>] reboot
-    - ['P SSC[1-<node_num>] C !!!ready!!!']
-  - - SSC SSC[1-<node_num>] mesh -E -o 0
-    - ['P SSC[1-<node_num>] C +MESH:DISABLED']
-  - - SSC SSC[1-<node_num>] op -S -o 1
-    - ['P SSC[1-<node_num>] C +MODE:OK']
-  - - SSC SSC[1-<node_num>] sta -D
-    - ['P SSC[1-<node_num>] C +QAP:OK']
-  initial condition detail: all mesh node disabled
-  restore cmd set:
-  - ''
-  - - SSC SSC[1-<node_num>] mesh -E -o 0
-    - ['P SSC[1-<node_num>] C +MESH:DISABLED']
-  - - SSC SSC[1-<node_num>] op -S -o 1
-    - ['P SSC[1-<node_num>] C +MODE:OK']
-  - - SSC SSC[1-<node_num>] sta -D
-    - ['P SSC[1-<node_num>] C +QAP:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 31.0
-  tag: DISABLED
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ASSERT
-    - [dummy]
-  - - SSC SSC[1-<node_num>] mesh -Q -t 4
-    - ['R SSC[1-<node_num>] T <node_num>']
-  - - MESHTREE
-    - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%(<node_num>)']
-  force restore cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC[1-<node_num>] mesh -E -o 0
-    - ['P SSC[1-<node_num>] C +MESH:DISABLED']
-  - - SSC SSC[1-<node_num>] mesh -I -g <group_id> -a 4 -k <target_password> -i <pc_ip>
-      -p <test_tcp_port1> -h 5
-    - ['P SSC[1-<node_num>] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK']
-  - - SSC SSC[1-<node_num>] mesh -A -s <ap_ssid> -k <ap_password>
-    - ['P SSC[1-<node_num>] C +MESHINIT:AP,OK']
-  - - SSC SSC1 mesh -E -o 1 -t 2
-    - ['P SSC1 C +MESH:ENABLED']
-  - - SOC SOC1 MACCEPT GSOC1
-    - [R SOC_COM L OK]
-  - - SSC SSC[2-<node_num>] mesh -E -o 1 -t 2
-    - ['P SSC[2-<node_num>] C +MESH:ENABLED']
-  - - DELAY 60
-    - ['']
-  - - SSC SSC[1-<node_num>] mesh -C
-    - ['P SSC[1-<node_num>] C +MESH:CONNECTED']
-  - - SSC SSC[1-<node_num>] mesh -Q -t 4
-    - ['R SSC[1-<node_num>] T <node_num>']
-  - - MESHTREE
-    - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%(<node_num>)']
-  - - SSC SSC[1-<node_num>] mesh -O -t 1 -o 1
-    - ['P SSC[1-<node_num>] C +MESH:OK']
-  initial condition detail: all mesh node enabled as ONLINE, mesh network established
-  restore cmd set:
-  - ''
-  - - SSC SSC[1-<node_num>] reboot
-    - ['P SSC[1-<node_num>] C !!!ready!!!']
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC[1-<node_num>] mesh -E -o 0
-    - ['P SSC[1-<node_num>] C +MESH:DISABLED']
-  - - SSC SSC[1-<node_num>] mesh -I -g <group_id> -a 4 -k <target_password> -i <pc_ip>
-      -p <test_tcp_port1> -h 5
-    - ['P SSC[1-<node_num>] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK']
-  - - SSC SSC[1-<node_num>] mesh -A -s <ap_ssid> -k <ap_password>
-    - ['P SSC[1-<node_num>] C +MESHINIT:AP,OK']
-  - - SSC SSC1 mesh -E -o 1 -t 2
-    - ['P SSC1 C +MESH:ENABLED']
-  - - SOC SOC1 MACCEPT GSOC1
-    - [R SOC_COM L OK]
-  - - SSC SSC[2-<node_num>] mesh -E -o 1 -t 2
-    - ['P SSC[2-<node_num>] C +MESH:ENABLED']
-  - - DELAY 60
-    - ['']
-  - - SSC SSC[1-<node_num>] mesh -C
-    - ['P SSC[1-<node_num>] C +MESH:CONNECTED']
-  - - SSC SSC[1-<node_num>] mesh -Q -t 4
-    - ['R SSC[1-<node_num>] T <node_num>']
-  - - MESHTREE
-    - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%(<node_num>)']
-  - - SSC SSC[1-<node_num>] mesh -O -t 1 -o 1
-    - ['P SSC[1-<node_num>] C +MESH:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 17.0
-  tag: ENABLED_1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ASSERT
-    - [dummy]
-  - - SSC SSC[1-<node_num>] mesh -Q -t 4
-    - ['R SSC[1-<node_num>] T <node_num>']
-  - - MESHTREE
-    - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%(<node_num>)']
-  force restore cmd set:
-  - ''
-  - - SSC SSC[1-<node_num>] reboot
-    - ['P SSC[1-<node_num>] C !!!ready!!!']
-  - - SSC SSC[1-<node_num>] mesh -I -g <group_id> -a 4 -k <target_password> -i <pc_ip>
-      -p <test_tcp_port1> -h 5
-    - ['P SSC[1-<node_num>] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK']
-  - - SSC SSC1 mesh -A -s <ap_ssid> -k <ap_password>
-    - ['P SSC1 C +MESHINIT:AP,OK']
-  - - SSC SSC1 mesh -E -o 1 -t 1
-    - ['P SSC1 C +MESH:ENABLED']
-  - - SSC SSC[2-<node_num>] mesh -E -o 1 -t 2
-    - ['']
-  - - DELAY 60
-    - ['P SSC[2-<node_num>] C +MESH:ENABLED']
-  - - SSC SSC[1-<node_num>] mesh -C
-    - ['P SSC[1-<node_num>] C +MESH:CONNECTED']
-  - - SSC SSC[1-<node_num>] mesh -Q -t 4
-    - ['R SSC[1-<node_num>] T <node_num>']
-  - - MESHTREE
-    - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%(<node_num>)']
-  initial condition detail: root as LOCAL, rest node as ONLINE, mesh network established
-  restore cmd set:
-  - ''
-  - - SSC SSC[1-<node_num>] mesh -E -o 0
-    - ['P SSC[1-<node_num>] C +MESH:DISABLED']
-  - - SSC SSC[1-<node_num>] mesh -I -g <group_id> -a 4 -k <target_password> -i <pc_ip>
-      -p <test_tcp_port1> -h 5
-    - ['P SSC[1-<node_num>] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK']
-  - - SSC SSC1 mesh -A -s <ap_ssid> -k <ap_password>
-    - ['P SSC1 C +MESHINIT:AP,OK']
-  - - SSC SSC1 mesh -E -o 1 -t 1
-    - ['P SSC1 C +MESH:ENABLED']
-  - - SSC SSC[2-<node_num>] mesh -E -o 1 -t 2
-    - ['']
-  - - DELAY 60
-    - ['P SSC[2-<node_num>] C +MESH:ENABLED']
-  - - SSC SSC[1-<node_num>] mesh -C
-    - ['P SSC[1-<node_num>] C +MESH:CONNECTED']
-  - - SSC SSC[1-<node_num>] mesh -Q -t 4
-    - ['R SSC[1-<node_num>] T <node_num>']
-  - - MESHTREE
-    - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%(<node_num>)']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 24.0
-  tag: ENABLED_2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:2']
-  - - SSC SSC1 mac -Q -o 2
-    - [R SSC1 P <target_ap_mac>]
-  - - SSC SSC1 espnow -D
-    - ['R SSC1 C +ESPNOW:']
-  force restore cmd set:
-  - ''
-  - - SSC SSC[1-<dev_num>] reboot
-    - ['R SSC[1-<dev_num>] C !!!ready!!!']
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -m <target_ap_mac> -o 2
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 espnow -D
-    - ['R SSC1 C +ESPNOW:']
-  initial condition detail: one target in AP mode and espnow is de-initialized
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -m <target_ap_mac> -o 2
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 espnow -D
-    - ['R SSC1 C +ESPNOW:']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 17.0
-  tag: NOW1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC[1-<dev_num>] op -Q
-    - ['R SSC[1-<dev_num>] C +CURMODE:2']
-  - - SSC SSC[1-<dev_num>] mac -Q -o 3
-    - ['R SSC[1-<dev_num>] P <target[1-<dev_num>]_ap_mac> P <target[1-<dev_num>]_mac>']
-  - - SSC SSC[1-<dev_num>] espnow -D
-    - ['R SSC[1-<dev_num>] C +ESPNOW:']
-  - - SSC SSC[1-<dev_num>] espnow -I
-    - ['R SSC[1-<dev_num>] C +ESPNOW:OK']
-  - - SSC SSC[1-<dev_num>] espnow -R -t Set -r 2
-    - ['R SSC[1-<dev_num>] C +ESPNOW:OK']
-  force restore cmd set:
-  - ''
-  - - SSC SSC[1-<dev_num>] reboot
-    - ['R SSC[1-<dev_num>] C !!!ready!!!']
-  - - SSC SSC[1-<dev_num>] op -S -o 3
-    - ['R SSC[1-<dev_num>] C +MODE:OK']
-  - - SSC SSC[1-<dev_num>] mac -S -m <target[1-<dev_num>]_ap_mac> -o 2
-    - ['R SSC[1-<dev_num>] C +MAC:AP,OK']
-  - - SSC SSC[1-<dev_num>] mac -S -m <target[1-<dev_num>]_mac> -o 1
-    - ['R SSC[1-<dev_num>] C +MAC:STA,OK']
-  - - SSC SSC[1-<dev_num>] op -S -o 2
-    - ['R SSC[1-<dev_num>] C +MODE:OK']
-  - - SSC SSC[1-<dev_num>] espnow -D
-    - ['R SSC[1-<dev_num>] C +ESPNOW:']
-  - - SSC SSC[1-<dev_num>] espnow -I
-    - ['R SSC[1-<dev_num>] C +ESPNOW:OK']
-  - - SSC SSC[1-<dev_num>] espnow -R -t Set -r 2
-    - ['R SSC[1-<dev_num>] C +ESPNOW:OK']
-  initial condition detail: multiple (<dev_num>) targets in AP mode, espnow is initialized
-    with self role slave
-  restore cmd set:
-  - ''
-  - - SSC SSC[1-<dev_num>] op -S -o 3
-    - ['R SSC[1-<dev_num>] C +MODE:OK']
-  - - SSC SSC[1-<dev_num>] mac -S -m <target[1-<dev_num>]_ap_mac> -o 2
-    - ['R SSC[1-<dev_num>] C +MAC:AP,OK']
-  - - SSC SSC[1-<dev_num>] mac -S -m <target[1-<dev_num>]_mac> -o 1
-    - ['R SSC[1-<dev_num>] C +MAC:STA,OK']
-  - - SSC SSC[1-<dev_num>] op -S -o 2
-    - ['R SSC[1-<dev_num>] C +MODE:OK']
-  - - SSC SSC[1-<dev_num>] espnow -D
-    - ['R SSC[1-<dev_num>] C +ESPNOW:']
-  - - SSC SSC[1-<dev_num>] espnow -I
-    - ['R SSC[1-<dev_num>] C +ESPNOW:OK']
-  - - SSC SSC[1-<dev_num>] espnow -R -t Set -r 2
-    - ['R SSC[1-<dev_num>] C +ESPNOW:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 24.0
-  tag: NOW2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - DELAY 0.1
-    - [dummy]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  initial condition detail: none
-  restore cmd set:
-  - ''
-  - - DELAY 0.1
-    - [dummy]
-  restore post cmd set:
-  - ''
-  - - DELAY 0.1
-    - [dummy]
-  script path: InitCondBase.py
-  start: 10.0
-  tag: None
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 sp -D
-    - ['R SSC1 C +SP:OK']
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 sp -D
-    - ['R SSC1 C +SP:OK']
-  initial condition detail: one target and simple is de-inited
-  restore cmd set:
-  - ''
-  - - SSC SSC1 sp -D
-    - ['R SSC1 C +SP:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 31.0
-  tag: PAIR1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC[1,2] op -Q
-    - ['R SSC[1,2] C +MODE:[2,1]']
-  - - SSC SSC[1,2] mac -Q -o 3
-    - ['R SSC[1,2] P <target[1,2]_ap_mac> P <target[1,2]_mac>']
-  - - SSC SSC[1,2] sp -D
-    - ['R SSC[1,2] C +SP:OK']
-  - - SSC SSC[1,2] sp -I
-    - ['R SSC[1,2] C +SP:OK']
-  force restore cmd set:
-  - ''
-  - - SSC SSC[1,2] reboot
-    - ['R SSC[1,2] C !!!ready!!!']
-  - - SSC SSC[1,2] op -S -o 3
-    - ['R SSC[1,2] C +MODE:OK']
-  - - SSC SSC[1,2] mac -S -m <target[1,2]_ap_mac> -o 2
-    - ['R SSC[1,2] C +MAC:AP,OK']
-  - - SSC SSC[1,2] mac -S -m <target[1,2]_mac> -o 1
-    - ['R SSC[1,2] C +MAC:STA,OK']
-  - - SSC SSC[1,2] op -S -o [2,1]
-    - ['R SSC[1,2] C +MODE:OK']
-  - - SSC SSC[1,2] sp -D
-    - ['R SSC[1,2] C +SP:OK']
-  - - SSC SSC[1,2] sp -I
-    - ['R SSC[1,2] C +SP:OK']
-  initial condition detail: target1 in AP mode, target2 in STA mode, two targets de-init
-    and init simple pair
-  restore cmd set:
-  - ''
-  - - SSC SSC[1,2] op -S -o 3
-    - ['R SSC[1,2] C +MODE:OK']
-  - - SSC SSC[1,2] mac -S -m <target[1,2]_ap_mac> -o 2
-    - ['R SSC[1,2] C +MAC:AP,OK']
-  - - SSC SSC[1,2] mac -S -m <target[1,2]_mac> -o 1
-    - ['R SSC[1,2] C +MAC:STA,OK']
-  - - SSC SSC[1,2] op -S -o [2,1]
-    - ['R SSC[1,2] C +MODE:OK']
-  - - SSC SSC[1,2] sp -D
-    - ['R SSC[1,2] C +SP:OK']
-  - - SSC SSC[1,2] sp -I
-    - ['R SSC[1,2] C +SP:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 38.0
-  tag: PAIR2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC[1,2] op -Q
-    - ['R SSC[1,2] C +MODE:[3,3]']
-  - - SSC SSC[1,2] mac -Q -o 3
-    - ['R SSC[1,2] P <target[1,2]_ap_mac> P <target[1,2]_mac>']
-  - - SSC SSC[1,2] sp -D
-    - ['R SSC[1,2] C +SP:OK']
-  - - SSC SSC[1,2] sp -I
-    - ['R SSC[1,2] C +SP:OK']
-  force restore cmd set:
-  - ''
-  - - SSC SSC[1,2] reboot
-    - ['R SSC[1,2] C !!!ready!!!']
-  - - SSC SSC[1,2] op -S -o [3,3]
-    - ['R SSC[1,2] C +MODE:OK']
-  - - SSC SSC[1,2] mac -S -m <target[1,2]_ap_mac> -o 2
-    - ['R SSC[1,2] C +MAC:AP,OK']
-  - - SSC SSC[1,2] mac -S -m <target[1,2]_mac> -o 1
-    - ['R SSC[1,2] C +MAC:STA,OK']
-  - - SSC SSC[1,2] sp -D
-    - ['R SSC[1,2] C +SP:OK']
-  - - SSC SSC[1,2] sp -I
-    - ['R SSC[1,2] C +SP:OK']
-  initial condition detail: target1 and target2 in STA+AP mode, two targets de-init
-    and init simple pair
-  restore cmd set:
-  - ''
-  - - SSC SSC[1,2] op -S -o [3,3]
-    - ['R SSC[1,2] C +MODE:OK']
-  - - SSC SSC[1,2] mac -S -m <target[1,2]_ap_mac> -o 2
-    - ['R SSC[1,2] C +MAC:AP,OK']
-  - - SSC SSC[1,2] mac -S -m <target[1,2]_mac> -o 1
-    - ['R SSC[1,2] C +MAC:STA,OK']
-  - - SSC SSC[1,2] sp -D
-    - ['R SSC[1,2] C +SP:OK']
-  - - SSC SSC[1,2] sp -I
-    - ['R SSC[1,2] C +SP:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 45.0
-  tag: PAIR3
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:3']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 dhcp -Q -o 1
-    - ['R SSC1 C +DHCP:STA,STARTED']
-  - - SSC SSC1 mac -Q -o 1
-    - [R SSC1 P <target_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  initial condition detail: testing sta on sta + ap mode, quit AP (autogen by STAM1)
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 45.0
-  tag: STAAP1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:3']
-  - - SSC SSC1 sta -Q
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  - - SSC SSC1 dhcp -Q -o 1
-    - ['R SSC1 C +DHCP:STA,STARTED']
-  - - SSC SSC1 mac -Q -o 1
-    - [R SSC1 P <target_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  initial condition detail: testing sta on sta + ap mode,  join AP, DHCP on (autogen
-    by STAM2)
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 52.0
-  tag: STAAP2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 upgrade -Q -t 1
-    - ['R SSC1 C BIN_ID,0']
-  - - SSC SSC1 upgrade -Q -t 2 -b 0
-    - ['R SSC1 C BIN_INFO,0']
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 upgrade -R -r 1 -s <ota_bin_size>
-    - [R SSC1 NC ERROR C !!!ready!!!]
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  - - SOC SOC1 ULISTEN <test_tcp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SOC SOC1 SETOPT REPLY BIN
-    - [R SOC_COM C OK]
-  - - SSC SSC1 upgrade -I -b 0 -f 0
-    - ['P SSC1 C +UPGRADE:OK']
-  - - SSC SSC1 upgrade -U -i <pc_ip> -p <test_tcp_port1> -u <ota_bin>
-    - ['P SSC1 C +UPGRADE:SUCCEED']
-  - - SSC SSC1 upgrade -R -b 0
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  initial condition detail: APSTA mode, connected to AP, running BIN0 (located on
-    flash id 0)
-  restore cmd set:
-  - ''
-  - - SSC SSC1 upgrade -Q -t 2 -b 0
-    - ['R SSC1 C BIN_INFO,0']
-  - - SSC SSC1 upgrade -R -b 0
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 upgrade -D
-    - ['R SSC1 C +UPGRADE:OK']
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 24.0
-  tag: STAAPBIN0
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:1']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 dhcp -Q -o 1
-    - ['R SSC1 C +DHCP:STA,STARTED']
-  - - SSC SSC1 mac -Q -o 1
-    - [R SSC1 P <target_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  initial condition detail: sta mode, quit AP, DHCP on, will autogen a TC with initial
-    condition STAAP1
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 17.0
-  tag: STAM1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:1']
-  - - SSC SSC1 sta -Q
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  - - SSC SSC1 dhcp -Q -o 1
-    - ['R SSC1 C +DHCP:STA,STARTED']
-  - - SSC SSC1 mac -Q -o 1
-    - [R SSC1 P <target_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  initial condition detail: sta mode, join AP, DHCP on, will autogen a TC with initial
-    condition STAAP2
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 24.0
-  tag: STAM2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 upgrade -Q -t 1
-    - ['R SSC1 C BIN_ID,0']
-  - - SSC SSC1 upgrade -Q -t 2 -b 0
-    - ['R SSC1 C BIN_INFO,0']
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 upgrade -R -r 1 -s <ota_bin_size>
-    - [R SSC1 NC ERROR C !!!ready!!!]
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  - - SOC SOC1 ULISTEN <test_tcp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SOC SOC1 SETOPT REPLY BIN
-    - [R SOC_COM C OK]
-  - - SSC SSC1 upgrade -I -b 0 -f 0
-    - ['P SSC1 C +UPGRADE:OK']
-  - - SSC SSC1 upgrade -U -i <pc_ip> -p <test_tcp_port1> -u <ota_bin>
-    - ['P SSC1 C +UPGRADE:SUCCEED']
-  - - SSC SSC1 upgrade -R -b 0
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  initial condition detail: STA mode, connected to AP, running BIN0 (located on flash
-    id 0)
-  restore cmd set:
-  - ''
-  - - SSC SSC1 upgrade -Q -t 2 -b 0
-    - ['R SSC1 C BIN_INFO,0']
-  - - SSC SSC1 upgrade -R -b 0
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 upgrade -D
-    - ['R SSC1 C +UPGRADE:OK']
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 17.0
-  tag: STAMBIN0
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:1']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 dhcp -Q -o 1
-    - ['R SSC1 C +DHCP:STA,STARTED']
-  - - SSC SSC1 mac -Q -o 1
-    - [R SSC1 P <target_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  initial condition detail: sta mode, quit AP, will NOT autogen a TC with initial
-    condition STAAP1
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 17.0
-  tag: STAO1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:1']
-  - - SSC SSC1 sta -Q
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  - - SSC SSC1 dhcp -Q -o 1
-    - ['R SSC1 C +DHCP:STA,STARTED']
-  - - SSC SSC1 mac -Q -o 1
-    - [R SSC1 P <target_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  initial condition detail: sta mode, join AP, DHCP on, will NOT autogen a TC with
-    initial condition STAAP2
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - [R SSC1 C +DHCP]
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 24.0
-  tag: STAO2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:2']
-  - - SSC SSC2 op -Q
-    - ['R SSC2 C +CURMODE:1']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:']
-  - - SSC SSC2 soc -T
-    - ['']
-  - - SSC SSC1 dhcp -Q -o 2
-    - ['R SSC1 C +DHCP:AP,STARTED']
-  - - SSC SSC2 dhcp -Q -o 1
-    - ['R SSC2 C +DHCP:STA,STARTED']
-  - - SSC SSC1 mac -Q -o 2
-    - [R SSC1 P <target_ap_mac>]
-  - - SSC SSC2 mac -Q -o 1
-    - [R SSC2 P <target2_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC2 reboot
-    - [R SSC2 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC2 op -S -o 1
-    - ['R SSC2 C +MODE:OK']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:']
-  - - SSC SSC2 soc -T
-    - ['']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC2 dhcp -S -o 1
-    - [R SSC2 C +DHCP]
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
-    - ['R SSC2 C +MAC:STA,OK']
-  initial condition detail: same as T2_1 but will NOT autogen a TC with initial condition
-    T2_2
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC2 op -S -o 1
-    - ['R SSC2 C +MODE:OK']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:']
-  - - SSC SSC2 soc -T
-    - ['']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC2 dhcp -S -o 1
-    - [R SSC2 C +DHCP]
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
-    - ['R SSC2 C +MAC:STA,OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 73.0
-  tag: T2O_1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:2']
-  - - SSC SSC2 op -Q
-    - ['R SSC2 C +CURMODE:1']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:']
-  - - SSC SSC2 soc -T
-    - ['']
-  - - SSC SSC1 dhcp -Q -o 2
-    - ['R SSC1 C +DHCP:AP,STARTED']
-  - - SSC SSC2 dhcp -Q -o 1
-    - ['R SSC2 C +DHCP:STA,STARTED']
-  - - SSC SSC1 mac -Q -o 2
-    - [R SSC1 P <target_ap_mac>]
-  - - SSC SSC2 mac -Q -o 1
-    - [R SSC2 P <target2_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC2 reboot
-    - [R SSC2 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC2 op -S -o 1
-    - ['R SSC2 C +MODE:OK']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:']
-  - - SSC SSC2 soc -T
-    - ['']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC2 dhcp -S -o 1
-    - [R SSC2 C +DHCP]
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
-    - ['R SSC2 C +MAC:STA,OK']
-  initial condition detail: target 1 as SoftAP, target 2 as STA, will autogen a TC
-    with initial condition T2_2
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC2 op -S -o 1
-    - ['R SSC2 C +MODE:OK']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:']
-  - - SSC SSC2 soc -T
-    - ['']
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC2 dhcp -S -o 1
-    - [R SSC2 C +DHCP]
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
-    - ['R SSC2 C +MAC:STA,OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 73.0
-  tag: T2_1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC1 op -Q
-    - ['R SSC1 C +CURMODE:3']
-  - - SSC SSC2 op -Q
-    - ['R SSC2 C +CURMODE:3']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:']
-  - - SSC SSC2 soc -T
-    - [R SSC2 C +CLOSEALL]
-  - - SSC SSC1 dhcp -Q -o 2
-    - ['R SSC1 C +DHCP:AP,STARTED']
-  - - SSC SSC2 dhcp -Q -o 1
-    - ['R SSC2 C +DHCP:STA,STARTED']
-  - - SSC SSC1 mac -Q -o 2
-    - [R SSC1 P <target_ap_mac>]
-  - - SSC SSC2 mac -Q -o 1
-    - [R SSC2 P <target2_mac>]
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  - - SSC SSC2 reboot
-    - [R SSC2 C !!!ready!!!]
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC2 op -S -o 3
-    - ['R SSC2 C +MODE:OK']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:']
-  - - SSC SSC2 soc -T
-    - [R SSC2 C +CLOSEALL]
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC2 dhcp -S -o 1
-    - [R SSC2 C +DHCP]
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
-    - ['R SSC2 C +MAC:STA,OK']
-  initial condition detail: target 1 as AP+STA, target 2 as AP+STA (autogen)
-  restore cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC2 op -S -o 3
-    - ['R SSC2 C +MODE:OK']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:']
-  - - SSC SSC2 soc -T
-    - [R SSC2 C +CLOSEALL]
-  - - SSC SSC1 dhcp -S -o 2
-    - [R SSC1 C +DHCP]
-  - - SSC SSC2 dhcp -S -o 1
-    - [R SSC2 C +DHCP]
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
-    - ['R SSC2 C +MAC:STA,OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 ram
-    - ['R SSC1 C +FREEHEAP:']
-  script path: InitCondBase.py
-  start: 80.0
-  tag: T2_2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - SSC SSC[1-3] op -Q
-    - ['R SSC[1-3] C +CURMODE:3']
-  - - SSC SSC[1-3] phy -Q -o 3
-    - ['R SSC[1-3] C STA,n,40 C AP,n,40']
-  force restore cmd set:
-  - ''
-  - - SSC SSC[1-3] reboot
-    - ['R SSC[1-3] C !!!ready!!!']
-  - - SSC SSC[1-3] op -S -o 3
-    - ['R SSC[1-3] C +MODE:OK']
-  - - SSC SSC[1-3] phy -S -o 3 -m n -b 40
-    - ['R SSC[1-3] C +PHY:OK']
-  initial condition detail: '1. target 1 and target 2 set to AP+STA mode, target 3
-    set to STA mode
-
-    2. all interface of target 2,3 set to 11n ht40
-
-    3. config softAP of target 1 and target 2'
-  restore cmd set:
-  - ''
-  - - SSC SSC[1-3] op -S -o 3
-    - ['R SSC[1-3] C +MODE:OK']
-  - - SSC SSC[1-3] phy -S -o 3 -m n -b 40
-    - ['R SSC[1-3] C +PHY:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 sta -R -r 1
-    - [R SSC1 C OK]
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  start: 87.0
-  tag: T3_PHY1
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - UT UT1 -
-    - [R UT1 C Tests C Failures C Ignored]
-  force restore cmd set:
-  - ''
-  - - FREBOOT UT1
-    - ['']
-  - - UT UT1 -
-    - [R UT1 C Tests C Failures C Ignored]
-  initial condition detail: At UT menu page
-  restore cmd set:
-  - ''
-  - - FREBOOT UT1
-    - ['']
-  - - UT UT1 -
-    - [R UT1 C Tests C Failures C Ignored]
-  restore post cmd set:
-  - ''
-  - - DELAY 0.1
-    - ['']
-  script path: InitCondBase.py
-  tag: UTINIT1
-  test script: InitCondBase
-- tag: BLE_DEINIT1
-  initial condition detail: 1 DUT which BLE is not enabled
-  script path: InitCondBase.py
-  test script: InitCondBase
-  check cmd set:
-  - ''
-  - - SSC SSC1 bt -Q
-    - ['R SSC1 C +BT:status,DEINIT']
-  restore cmd set:
-  - ''
-  - - SSC SSC1 bt -D -z disable
-    - ['R SSC1 C +BT:']
-  - - SSC SSC1 bt -D -z deinit
-    - ['R SSC1 C +BT:']
-  - - SSC SSC1 bt -Q
-    - ['R SSC1 C +BT:status,DEINIT']
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - ['R SSC1 C !!!ready!!!']
-  - - SSC SSC1 bt -D -z stop
-    - ['R SSC1 C +BT:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-- tag: BLE_INIT1
-  initial condition detail: 1 DUT which BLE is enabled, no active connection
-  script path: InitCondBase.py
-  test script: InitCondBase
-  check cmd set:
-  - ''
-  - - SSC SSC1 bt -Q
-    - ['R SSC1 C +BT:status,ENABLE']
-  - - SSC SSC1 ble -R
-    - ['R SSC1 C +BLE:']
-  - - SSC SSC1 bleconn -Q
-    - ['R SSC1 C +BLECONN:ConnCount,0']
-  restore cmd set:
-  - ''
-  - - SSC SSC1 bt -D -z init
-    - ['R SSC1 C +BT:']
-  - - SSC SSC1 bt -D -z enable
-    - ['R SSC1 C +BT:']
-  - - SSC SSC1 ble -R
-    - ['R SSC1 C +BLE:']
-  - - SSC SSC1 bleconn -D -z all
-    - ['R SSC1 C +BLECONN:']
-  force restore cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - ['R SSC1 C !!!ready!!!']
-  - - SSC SSC1 bt -D -z init
-    - ['R SSC1 C +BT:']
-  - - SSC SSC1 bt -D -z enable
-    - ['R SSC1 C +BT:']
-  - - SSC SSC1 ble -R
-    - ['R SSC1 C +BLE:']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 bleconn -D -z all
-    - ['R SSC1 C +BLECONN:']
-  - - SSC SSC1 gatts -S -z delete
-    - ['R SSC1 C +GATTS:']
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-- tag: BLE_INIT2
-  initial condition detail: 2 DUT which BLE is enabled, no active connection, DUT2 start adv
-  script path: InitCondBase.py
-  test script: InitCondBase
-  check cmd set:
-  - ''
-  - - "SSC SSC[1-2] bt -Q"
-    - ['R SSC[1-2] C +BT:status,ENABLE']
-  restore cmd set:
-  - ''
-  - - "SSC SSC[1-2] bt -D -z init"
-    - ['R SSC[1-2] C +BT:']
-  - - "SSC SSC[1-2] bt -D -z enable"
-    - ['R SSC[1-2] C +BT:']
-  force restore cmd set:
-  - ''
-  - - "SSC SSC[1-2] reboot"
-    - ['R SSC[1-2] C !!!ready!!!']
-  - - "SSC SSC[1-2] bt -D -z init"
-    - ['R SSC[1-2] C +BT:']
-  - - "SSC SSC[1-2] bt -D -z enable"
-    - ['R SSC[1-2] C +BT:']
-  restore post cmd set:
-  - ''
-  - - "SSC SSC[1-2] ble -R"
-    - ['R SSC[1-2] C +BLE:']
-  - - "SSC SSC[1-2] bleconn -D -z all"
-    - ['R SSC[1-2] C +BLECONN:']
-  - - "SSC SSC[1-2] gatts -S -z delete"
-    - ['R SSC[1-2] C +GATTS:']
-  - - "SSC SSC[1-2] bleadv -D -z stop"
-    - ['R SSC[1-2] C +BLEADV:OK']
-  - - "SSC SSC2 bleadv -L -c 0 -t 3"
-    - ['R SSC2 C +BLEADV:SetAdv,OK']
-  - - "SSC SSC2 bleadv -D -z start"
-    - ['R SSC2 C +BLEADV:OK']
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-- check cmd set:
-  - ''
-  - - ASSERT
-    - ['']
-  force restore cmd set:
-  - ''
-  - - SSC SSC[1-2] reboot
-    - ['R SSC[1-2] C !!!ready!!!']
-  - - SSC SSC[1-2] ble -R
-    - ['R SSC[1-2] C +BLE:']
-  - - SSC SSC[1-2] bleconn -D -z all
-    - ['R SSC[1-2] C +BLECONN:']
-  - - SSC SSC[1-2] gatts -S -z delete
-    - ['R SSC[1-2] C +GATTS:']
-  - - SSC SSC[1-2] bleadv -D -z stop
-    - ['R SSC[1-2] C +BLEADV:OK']
-  - - SSC SSC2 bleadv -L -c 0 -t 3
-    - ['R SSC2 C +BLEADV:SetAdv,OK']
-  - - SSC SSC2 bleadv -D -z start
-    - ['R SSC2 C +BLEADV:OK']
-  - - SSC SSC2 gatts -S -z load -p 0xA0
-    - ['R SSC2 C +GATTS:StartService,OK,A000']
-  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
-    - ['R SSC1 C +GATTC:OK']
-  initial condition detail: 2 DUT which BLE is enabled, DUT1 connected with DUT2,
-    DUT2 created GATT service 0xA000
-  restore cmd set:
-  - ''
-  - - SSC SSC[1-2] bt -D -z init
-    - ['R SSC[1-2] C +BT:']
-  - - SSC SSC[1-2] bt -D -z enable
-    - ['R SSC[1-2] C +BT:']
-  - - SSC SSC[1-2] ble -R
-    - ['R SSC[1-2] C +BLE:']
-  - - SSC SSC[1-2] bleconn -D -z all
-    - ['R SSC[1-2] C +BLECONN:']
-  - - SSC SSC[1-2] gatts -S -z delete
-    - ['R SSC[1-2] C +GATTS:']
-  - - SSC SSC[1-2] bleadv -D -z stop
-    - ['R SSC[1-2] C +BLEADV:OK']
-  - - SSC SSC2 bleadv -L -c 0 -t 3
-    - ['R SSC2 C +BLEADV:SetAdv,OK']
-  - - SSC SSC2 bleadv -D -z start
-    - ['R SSC2 C +BLEADV:OK']
-  - - SSC SSC2 gatts -S -z load -p 0xA0
-    - ['R SSC2 C +GATTS:StartService,OK,A000']
-  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
-    - ['R SSC1 C +GATTC:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  tag: BLE_CONN2
-  test script: InitCondBase
-- check cmd set:
-  - ''
-  - - ASSERT
-    - ['']
-  force restore cmd set:
-  - ''
-  - - SSC SSC[1-2] reboot
-    - ['R SSC[1-2] C !!!ready!!!']
-  - - SSC SSC[1-2] bt -D -z start
-    - ['R SSC[1-2] C +BT:']
-  - - SSC SSC[1-2] bt -D -z enable
-    - ['R SSC[1-2] C +BT:']
-  - - SSC SSC[1-2] ble -R
-    - ['R SSC[1-2] C +BLE:']
-  - - SSC SSC[1-2] bleconn -D -z all
-    - ['R SSC[1-2] C +BLECONN:']
-  - - SSC SSC[1-2] gatts -S -z delete
-    - ['R SSC[1-2] C +GATTS:']
-  - - SSC SSC[1-2] bleadv -D -z stop
-    - ['R SSC[1-2] C +BLEADV:OK']
-  - - SSC SSC2 bleadv -L -c 0 -t 3
-    - ['R SSC2 C +BLEADV:SetAdv,OK']
-  - - SSC SSC2 bleadv -D -z start
-    - ['R SSC2 C +BLEADV:OK']
-  - - SSC SSC2 gatts -S -z load -p 0xA2
-    - ['R SSC2 C +GATTS:StartService,OK,A002']
-  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
-    - ['R SSC1 C +GATTC:OK']
-  initial condition detail: 2 DUT which BLE is enabled, DUT1 connected with DUT2,
-    DUT2 created GATT service 0xA002
-  restore cmd set:
-  - ''
-  - - SSC SSC[1-2] bt -D -z init
-    - ['R SSC[1-2] C +BT:']
-  - - SSC SSC[1-2] bt -D -z enable
-    - ['R SSC[1-2] C +BT:']
-  - - SSC SSC[1-2] ble -R
-    - ['R SSC[1-2] C +BLE:']
-  - - SSC SSC[1-2] bleconn -D -z all
-    - ['R SSC[1-2] C +BLECONN:']
-  - - SSC SSC[1-2] gatts -S -z delete
-    - ['R SSC[1-2] C +GATTS:']
-  - - SSC SSC[1-2] bleadv -D -z stop
-    - ['R SSC[1-2] C +BLEADV:OK']
-  - - SSC SSC2 bleadv -L -c 0 -t 3
-    - ['R SSC2 C +BLEADV:SetAdv,OK']
-  - - SSC SSC2 bleadv -D -z start
-    - ['R SSC2 C +BLEADV:OK']
-  - - SSC SSC2 gatts -S -z load -p 0xA2
-    - ['R SSC2 C +GATTS:StartService,OK,A002']
-  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
-    - ['R SSC1 C +GATTC:OK']
-  restore post cmd set:
-  - ''
-  - - SSC SSC1 ram
-    - ['R SSC1 A <heap_size>:(\d+)']
-  script path: InitCondBase.py
-  tag: BLE_CONN3
-  test script: InitCondBase
index ef818e51f283b551023181b5fe094cb2cd96fd35..c2047f9f6e411fb5b3acc724be9eb3632858c9ac 100644 (file)
@@ -5,62 +5,21 @@
 TCPIP_ICMP_0101
 TCPIP_ICMP_0101_01
 
-# don't support PHY mode command
-WIFI_SCAN_0201
-WIFI_SCAN_0302
-WIFI_PHY_0401
-WIFI_PHY_0402
-WIFI_PHY_0403
-WIFI_PHY_0404
-WIFI_PHY_0405
-WIFI_PHY_0407
-WIFI_PHY_0406
-WIFI_PHY_0408
-WIFI_PHY_0501
-WIFI_PHY_0502
-WIFI_PHY_0503
-WIFI_PHY_0504
-WIFI_PHY_0505
-WIFI_PHY_0506
+# Bug or not stable cases
 
-# BUG
+# Wifi
 
-# auth change event
-WIFI_CONN_0801
-WIFI_CONN_0801_01
+# Wifi heap size issue
+WIFI_CONN_1101
 
-# disconnect reason
-WIFI_CONN_0901
-WIFI_CONN_0901_01
-WIFI_CONN_0904
-WIFI_CONN_0904_01
-WIFI_CONN_0902_01
-WIFI_CONN_0902
-
-# Wifi connect issue
+# Wifi scan issue
+WIFI_SCAN_0303
+WIFI_SCAN_0303_01
 WIFI_CONN_0101
 WIFI_CONN_0101_01
 WIFI_CONN_0102
-WIFI_CONN_0102_01
 WIFI_CONN_0103
 WIFI_CONN_0103_01
-WIFI_CONN_0104
-WIFI_CONN_0104_01
-WIFI_CONN_0201
-WIFI_CONN_0201_01
-WIFI_CONN_0401
-WIFI_CONN_0401_01
-WIFI_CONN_0601
-WIFI_CONN_0601_01
-WIFI_ADDR_0102
-WIFI_ADDR_0102_01
-WIFI_CONN_0502
-WIFI_CONN_0502_01
-WIFI_CONN_0501
-WIFI_CONN_0501_01
-WIFI_CONN_0903_01
-
-# Wifi scan issue
 WIFI_SCAN_0101
 WIFI_SCAN_0101_01
 WIFI_SCAN_0102
@@ -69,231 +28,59 @@ WIFI_SCAN_0103
 WIFI_SCAN_0103_01
 WIFI_SCAN_0104
 WIFI_SCAN_0104_01
-WIFI_SCAN_0105
-WIFI_SCAN_0105_01
-WIFI_SCAN_0201_01
-WIFI_SCAN_0303
-WIFI_SCAN_0303_01
-WIFI_SCAN_0304
-WIFI_SCAN_0304_01
-WIFI_MODE_0101
 WIFI_MODE_0102
 WIFI_MODE_0103
+WIFI_ADDR_0102
+WIFI_ADDR_0102_01
 
-# IGMP cases are supported but as UDP is not stable, exclude them first
-TCPIP_IGMP_0101
-TCPIP_IGMP_0102
-TCPIP_IGMP_0103
-TCPIP_IGMP_0104
+# IGMP
 TCPIP_IGMP_0201
-TCPIP_IGMP_0202
-TCPIP_IGMP_0203
-TCPIP_IGMP_0204
-TCPIP_IGMP_0101_01
-TCPIP_IGMP_0102_01
-TCPIP_IGMP_0103_01
-TCPIP_IGMP_0104_01
 TCPIP_IGMP_0201_01
+TCPIP_IGMP_0202
 TCPIP_IGMP_0202_01
-TCPIP_IGMP_0203_01
+TCPIP_IGMP_0204
 TCPIP_IGMP_0204_01
 
-# DHCP issues
-TCPIP_DHCP_0101
-TCPIP_DHCP_0101_01
-TCPIP_DHCP_0202
-TCPIP_DHCP_0202_01
-TCPIP_DHCP_0204
-TCPIP_DHCP_0204_01
-TCPIP_DHCP_0205
-TCPIP_DHCP_0205_01
-TCPIP_DHCP_0206
-TCPIP_DHCP_0206_01
-TCPIP_DHCP_0207
-TCPIP_DHCP_0207_01
-TCPIP_DHCP_0208
-TCPIP_DHCP_0208_01
-TCPIP_DHCP_0209
-TCPIP_DHCP_0209_01
-TCPIP_DHCP_0210
-TCPIP_DHCP_0210_01
-TCPIP_DHCP_0211
-TCPIP_DHCP_0211_01
-TCPIP_DHCP_0301
-TCPIP_DHCP_0301_01
-TCPIP_DHCP_0302
-TCPIP_DHCP_0302_01
-
-# TCP issue
-TCPIP_TCP_0101
-TCPIP_TCP_0101_01
-TCPIP_TCP_0102
-TCPIP_TCP_0102_01
-TCPIP_TCP_0103
-TCPIP_TCP_0103_01
-TCPIP_TCP_0104
-TCPIP_TCP_0104_01
-TCPIP_TCP_0105
-TCPIP_TCP_0105_01
-TCPIP_TCP_0106
-TCPIP_TCP_0106_01
-TCPIP_TCP_0107
-TCPIP_TCP_0107_01
-TCPIP_TCP_0112
-TCPIP_TCP_0112_01
-TCPIP_TCP_0201
-TCPIP_TCP_0201_01
-TCPIP_TCP_0202
-TCPIP_TCP_0202_01
-TCPIP_TCP_0203
-TCPIP_TCP_0203_01
-TCPIP_TCP_0204
-TCPIP_TCP_0204_01
-TCPIP_TCP_0206
-TCPIP_TCP_0206_01
-TCPIP_TCP_0208
-TCPIP_TCP_0208_01
-TCPIP_TCP_0210
-TCPIP_TCP_0210_01
-TCPIP_TCP_0401
-TCPIP_TCP_0401_01
-TCPIP_TCP_0402
-TCPIP_TCP_0402_01
-TCPIP_TCP_0403
-TCPIP_TCP_0403_01
-TCPIP_TCP_0404
-TCPIP_TCP_0404_01
-TCPIP_TCP_0406
-TCPIP_TCP_0406_01
-TCPIP_TCP_0407
-TCPIP_TCP_0407_01
-TCPIP_TCP_0408
-TCPIP_TCP_0408_01
-TCPIP_TCP_0412
-TCPIP_TCP_0412_01
-TCPIP_TCP_0411
-TCPIP_TCP_0411_01
-
-# UDP issue
-TCPIP_UDP_0102
-TCPIP_UDP_0102_01
+# UDP
 TCPIP_UDP_0103
 TCPIP_UDP_0103_01
-TCPIP_UDP_0104
-TCPIP_UDP_0104_01
-TCPIP_UDP_0108
-TCPIP_UDP_0108_01
-TCPIP_UDP_0110
-TCPIP_UDP_0110_01
-TCPIP_UDP_0111
-TCPIP_UDP_0111_01
-TCPIP_UDP_0112
-TCPIP_UDP_0112_01
-TCPIP_UDP_0301
-TCPIP_UDP_0301_01
-TCPIP_UDP_0302
-TCPIP_UDP_0302_01
-TCPIP_UDP_0303
-TCPIP_UDP_0303_01
-TCPIP_UDP_0304
-TCPIP_UDP_0304_01
-TCPIP_UDP_0305
-TCPIP_UDP_0305_01
-TCPIP_UDP_0306
-TCPIP_UDP_0306_01
-TCPIP_UDP_0307
-TCPIP_UDP_0307_01
 
-#DNS
-TCPIP_DNS_0101
-TCPIP_DNS_0101_01
-TCPIP_DNS_0102
-TCPIP_DNS_0102_01
-TCPIP_DNS_0103
-TCPIP_DNS_0103_01
+# BLE
 
-# BT Stack
-# GAP
-BTSTK_GAP_07003
-BTSTK_GAP_06003
+# BT heap size issue
+BTSTK_MISC_0301
 
-# GATT
-BTSTK_GATT_21005
-BTSTK_GATT_25013
-BTSTK_GATT_25001
-BTSTK_GATT_25002
-BTSTK_GATT_25003
-BTSTK_GATT_25004
-BTSTK_GATT_25005
-BTSTK_GATT_25006
-BTSTK_GATT_25007
-BTSTK_GATT_25008
-BTSTK_GATT_25009
-BTSTK_GATT_25010
-BTSTK_GATT_25011
-BTSTK_GATT_25012
-BTSTK_GATT_25013
-BTSTK_GATT_25014
+# SMP
+BTSTK_SMP_05001
+BTSTK_SMP_05002
+BTSTK_SMP_05003
+BTSTK_SMP_06004
 
-# BT cases that might fail
-BTSTK_GAP_01003
+# GAP
 BTSTK_GAP_03005
-BTSTK_GAP_04002
-BTSTK_GAP_05001
-BTSTK_GAP_06001
-BTSTK_GAP_06002
-BTSTK_GAP_06004
-BTSTK_GAP_06005
-
-BTSTK_GAP_03002
-BTSTK_GAP_03004
-BTSTK_GAP_09003
-BTSTK_GAP_09002
-
-BTSTK_GATT_21002
-BTSTK_GATT_21006
-BTSTK_GATT_21007
-BTSTK_GATT_21008
-BTSTK_GATT_21011
-BTSTK_GATT_21013
-BTSTK_GATT_21014
-BTSTK_GATT_22003
-BTSTK_GATT_22004
-BTSTK_GATT_22008
-BTSTK_GATT_22009
-BTSTK_GATT_22010
-BTSTK_GATT_22023
-BTSTK_GATT_25006
-BTSTK_GATT_23010
-BTSTK_GATT_23003
-BTSTK_GATT_25005
-BTSTK_GATT_25007
-BTSTK_GATT_25014
-
-BTSTK_GATT_20001
-BTSTK_GATT_20002
-BTSTK_GATT_23007
-BTSTK_GATT_24003
-BTSTK_GATT_26006
-
-BTSTK_COEXIST_0101
-BTSTK_COEXIST_0102
-BTSTK_COEXIST_0103
-BTSTK_COEXIST_0201
-BTSTK_COEXIST_0202
-BTSTK_COEXIST_0203
-BTSTK_COEXIST_0301
-
-# new failed caused by GATTC can't get correct attribute handle
-BTSTK_GATT_22001
-BTSTK_GATT_22002
-BTSTK_GATT_22014
-BTSTK_GATT_22013
-BTSTK_GATT_22012
-BTSTK_GATT_22011
-BTSTK_GATT_22017
-BTSTK_GATT_22016
-BTSTK_GATT_22015
-BTSTK_GATT_22019
-BTSTK_GATT_22018
 
+# GAP multi connect
+BTSTK_GAP_10001
+BTSTK_GAP_10002
+BTSTK_GAP_10003
+BTSTK_GAP_10004
+BTSTK_GAP_11001
+BTSTK_GAP_11002
+BTSTK_GAP_12001
+BTSTK_GAP_12002
+BTSTK_GATT_30001
+BTSTK_GATT_30002
+BTSTK_GATT_30003
+BTSTK_GATT_31001
+BTSTK_GATT_31002
+BTSTK_GATT_31003
+BTSTK_GATT_32001
+BTSTK_GATT_32002
+BTSTK_GATT_32003
+BTSTK_GATT_32004
+BTSTK_GATT_33001
+BTSTK_GATT_33002
+BTSTK_GATT_33003
+BTSTK_GATT_34001
+BTSTK_GATT_34002
+BTSTK_GATT_34003
\ No newline at end of file
diff --git a/components/idf_test/integration_test/TC_IT_BTSTK_GAP.yml b/components/idf_test/integration_test/TC_IT_BTSTK_GAP.yml
new file mode 100644 (file)
index 0000000..ad55be7
--- /dev/null
@@ -0,0 +1,2765 @@
+.GAP_CASE: &GAP_CASE
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+
+.dut1_stop_adv: &dut1_stop_adv
+  LIST_MERGE:
+    - - "SSC SSC1 bleadv -D -z stop"
+      - ["R SSC1 C +BLEADV:Stop,OK"]
+
+.dut2_stop_adv: &dut2_stop_adv
+  LIST_MERGE:
+    - - "SSC SSC2 bleadv -D -z stop"
+      - ["R SSC2 C +BLEADV:Stop,OK"]
+
+.dut1_start_adv: &dut1_start_adv
+  LIST_MERGE:
+    - - "SSC SSC1 bleadv -D -z start"
+      - ["R SSC1 C +BLEADV:Start,OK"]
+
+.set_default_ble_name: &set_default_ble_name
+  LIST_MERGE:
+    - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+      - ["R SSC1 C +BLE:OK"]
+
+.set_default_adv_data: &set_default_adv_data
+  LIST_MERGE:
+    - - "SSC SSC1 bleadv -D -z stop"
+      - ["R SSC1 C +BLEADV:Stop,OK"]
+    - - "SSC SSC1 bleadv -L -c 0 -t 3"
+      - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
+    - - "SSC SSC1 bleadv -D -z start"
+      - ["R SSC1 C +BLEADV:Start,OK"]
+
+.open_capture_nic: &open_capture_nic
+  LIST_MERGE:
+    - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+      - ['R PC_COM C +NIC_START:OK']
+
+.dut1_connect_to_dut2: &dut1_connect_to_dut2
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
+
+test cases:
+- ID: BTSTK_GAP_01001
+  <<: *GAP_CASE
+  test point 2: BLE GAP param device name test
+  summary: ble set ascii device name
+  steps: |
+    1. DUT1 set ascii device name
+    2. stop advertising
+    3. config scan response and start advertising
+    4. DUT2 do active scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. device name in scan result
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - *set_default_adv_data
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 P <dut1_ble_name>"]
+- ID: BTSTK_GAP_01002
+  <<: *GAP_CASE
+  test point 2: BLE GAP param device name test
+  summary: ble set non-ascii device name
+  steps: |
+    1. DUT1 set non-ascii device name
+    2. stop advertising
+    3. config scan response and start advertising
+    4. DUT2 do active scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. device name in scan result
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name_hex>"
+    - ["R SSC1 C +BLE:OK"]
+  - *set_default_adv_data
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 P <dut1_ble_name_hex>"]
+- ID: BTSTK_GAP_01003
+  <<: *GAP_CASE
+  test point 2: BLE GAP param device name test
+  summary: ble set long device name
+  steps: |
+    1. DUT1 set 32 byte device name A
+    2. stop advertising
+    3. config scan response and start advertising
+    4. DUT2 do active scan
+    5. DUT1 set 33 bytes device name
+    6. stop advertising
+    7. config scan response and start advertising
+    8. DUT2 do active scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. DUT1 mac in scan result (device name is too long)
+    5. failed
+    6. succeed
+    7. succeed
+    8. DUT1 mac in scan result (device name is too long)
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name_32>"
+    - ["R SSC1 C +BLE:OK"]
+  - *set_default_adv_data
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -L -c 0 -s 1"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 P <dut1_bt_mac>"]
+  - - "SSC SSC1 ble -S -z name -n 123456789012345678901234567890123"
+    - ["R SSC1 C +BLE:ERROR"]
+  - *set_default_adv_data
+  - - "SSC SSC2 blescan -L -c 0 -s 1"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 P <dut1_bt_mac>"]
+- ID: BTSTK_GAP_02001
+  <<: *GAP_CASE
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response include name
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set include device name for adv data and scan response
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+    5. DUT1 stop advertising
+    6. DUT1 set not include device name for adv data and scan response
+    7. DUT1 start advertising
+    8. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get complete device name in ADV_IND and SCAN_RSP
+    5. succeed
+    6. succeed
+    7. succeed
+    8. do not have complete device name in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  version: v2 (2016-03-01)
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -n 1 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - *open_capture_nic
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.NameComplete=<dut1_ble_name>)'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.NameComplete=<dut1_ble_name>)'
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -n 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.NameComplete)'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.NameComplete)'
+- ID: BTSTK_GAP_02002
+  <<: *GAP_CASE
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response include Tx power
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set include Tx power for adv data and scan response
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+    5. DUT1 stop advertising
+    6. DUT1 set not include Tx power for adv data and scan response
+    7. DUT1 start advertising
+    8. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get Tx power in ADV_IND and SCAN_RSP
+    5. succeed
+    6. succeed
+    7. succeed
+    8. do not have Tx power in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  version: v2 (2016-03-01)
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -x 1 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - *open_capture_nic
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.TxPower="")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.TxPower="")'
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -x 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.TxPower)'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.TxPower)'
+- ID: BTSTK_GAP_02003
+  <<: *GAP_CASE
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response adv interval
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set max interval 0x40 min interval 0x20 for adv data and scan response
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+    5. DUT1 stop advertising
+    6. DUT1 set max interval 0x400 min interval 0x200 for adv data and scan response
+    7. DUT1 start advertising
+    8. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get interval 0x40 0x20 in ADV_IND and SCAN_RSP
+    5. succeed
+    6. succeed
+    7. succeed
+    8. get interval 0x400 0x200 in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  version: v2 (2016-03-01)
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x20-0x40 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - *open_capture_nic
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0020-0x0040")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0020-0x0040")'
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x200-0x400 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0200-0x0400")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0200-0x0400")'
+- ID: BTSTK_GAP_02004
+  <<: *GAP_CASE
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response appearance
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set appearance to 0 for adv data and scan response
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+    5. DUT1 stop advertising
+    6. DUT1 set appearance to 1 for adv data and scan response
+    7. DUT1 start advertising
+    8. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. do not have appearance in ADV_IND and SCAN_RSP
+    5. succeed
+    6. succeed
+    7. succeed
+    8. get appearance 1 in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  version: v2 (2016-03-01)
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -a 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - *open_capture_nic
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.Appearance)'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.Appearance)'
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -a 1 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Appearance="0x01")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Appearance="0x01")'
+- ID: BTSTK_GAP_02005
+  <<: *GAP_CASE
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response manufacturer data
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set manufacturer to 0x12345678 for adv data and scan response
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get manufacturer data 0x12345678 in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  version: v2 (2016-03-01)
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -m 0x12345678 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - *open_capture_nic
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ManufacturerSpecificData="0x12345678")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ManufacturerSpecificData="0x12345678")'
+- ID: BTSTK_GAP_02006
+  <<: *GAP_CASE
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response service data
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 set advertising data and scan response service data 0x1234123456 and not include device name
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get ServiceData16BitUUID 0x1234123456 in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  version: v2 (2016-03-01)
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -n 0 -d 0x1234123456 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - *open_capture_nic
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ServiceData16BitUUID="1234123456")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ServiceData16BitUUID="1234123456")'
+- ID: BTSTK_GAP_02007
+  <<: *GAP_CASE
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response service uuid list
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 set advertising data and scan response not include name, service uuid list 0xABCD,ABCDDCBA,12349B5F8000008000100000ABCD0000
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get Complete16BitServiceUUID 0xABCD Complete32BitServiceUUID 0xABCDDCBA
+    and Complete128BitServiceUUID 0x12349B5F8000008000100000ABCD0000 in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  version: v2 (2016-03-01)
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -n 0 -x 0 -i 0x00-0x00 -s ABCD,ABCDDCBA,12349B5F8000008000100000ABCD0000 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - *open_capture_nic
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Complete16BitServiceUUID="ABCD")(HCIEvent.data_0.Complete32BitServiceUUID="ABCDDCBA")(HCIEvent.data_0.Complete128BitServiceUUID="12349B5F8000008000100000ABCD0000")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Complete16BitServiceUUID="ABCD")(HCIEvent.data_0.Complete32BitServiceUUID="ABCDDCBA")(HCIEvent.data_0.Complete128BitServiceUUID="12349B5F8000008000100000ABCD0000")'
+- ID: BTSTK_GAP_03001
+  <<: *GAP_CASE
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter adv_type
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 start adv with adv_type ADV_IND
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with adv_type ADV_TYPE_DIRECT_IND_HIGH
+    5. repeat step 1-3 with adv_type ADV_TYPE_SCAN_IND
+    6. repeat step 1-3 with adv_type ADV_TYPE_NONCONN_IND
+    7. repeat step 1-3 with adv_type ADV_TYPE_DIRECT_IND_LOW
+  expected result: |
+    1. succeed
+    2. succeed
+    3. get ADV_IND with DUT1 BT MAC
+    4. get ADV_DIRECT_IND with DUT1 BT MAC
+    5. get ADV_SCAN_IND with DUT1 BT MAC
+    6. get ADV_NONCONN_IND with DUT1 BT MAC
+    7. can not get ADV_DIRECT_IND with DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *open_capture_nic
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -D -z start -t 0"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+  - - "SSC SSC1 bleadv -D -z start -t 1 -y 0 -b <hci_nic_mac>"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_DIRECT_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x00B0-0x0200 -t 3"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z start -t 2 -i 0x00B0-0x0200"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_SCAN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+  - - "SSC SSC1 bleadv -D -z start -t 3 -i 0x00B0-0x0200"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_NONCONN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x0640-0x0780 -t 3"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z start -t 4 -i 0x0640-0x0780 -y 0 -b <hci_nic_mac>"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 3 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.address_0!=<dut1_bt_mac>)'
+- ID: BTSTK_GAP_03002
+  <<: *GAP_CASE
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter channel map
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 start adv on channel 37
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with channel map 38, 39, all
+    4. repeat step 1-3 with channel map not valid
+  expected result: |
+    1. succeed
+    2. succeed
+    3. get ADV_IND with DUT1 BT MAC
+    4. get ADV_IND with DUT1 BT MAC
+    5. can not get ADV_IND with DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  allow fail: 1/2
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *open_capture_nic
+  - - LOOP 7 3 "[1,2,3,4,5,6,7]" "['PDU','PDU','PDU','PDU','PDU','PDU','PDU']"
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -D -z start -t 0 -h {%d}"
+    - ["R SSC1 C +BLEADV:Start,OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC {%s} (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+  - - "SSC SSC1 bleadv -D -z start -t 0 -h 8"
+    - ["R SSC1 C +BLEADV:Start,ERROR"]
+- ID: BTSTK_GAP_03003
+  <<: *GAP_CASE
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter own address type
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 start adv with own address type public
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with own address type random, rpa_public, rpa_random
+    5. repeat step 1-3 with channel map not valid
+  expected result: |
+    1. succeed
+    2. succeed
+    3. get ADV_IND with DUT1 BT MAC
+    4. get ADV_IND with DUT1 BT MAC
+    5. can not get ADV_IND with DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *open_capture_nic
+  - - LOOP 4 3 "[0,2,1,3]" "['PDU','PDU','NPDU','NPDU']"
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -D -z start -t 0 -o {%d}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC {%s} (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.data_0.NameComplete=<dut1_ble_name>)(HCIEvent.address_0=<dut1_bt_mac>)'
+- ID: BTSTK_GAP_03004
+  <<: *GAP_CASE
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter peer address and peer address type
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 start adv with adv type DIRECT_IND_HIGH, peer address type public and peer address as <hci_nic_mac>
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with adv type DIRECT_IND_HIGH, peer address type random and peer address as <hci_nic_mac>
+  expected result: |
+    1. succeed
+    2. succeed
+    3. get ADV_IND with DUT1 name DUT1 BT MAC
+    4. get ADV_IND with DUT1 name and DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  allow fail: 2/3
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *open_capture_nic
+  - *dut1_stop_adv
+  - - LOOP 2 2 "[0,1]" "['=','!=']"
+    - [""]
+  - - "SSC SSC1 bleadv -D -z start -t 1 -y {%d} -b <hci_nic_mac>"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.address_0{%s}<dut1_bt_mac>)'
+- ID: BTSTK_GAP_03005
+  <<: *GAP_CASE
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter adv interval
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 start adv with adv interval 0x20-0x20 on channel 1
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with adv interval 0x40-0x40, 0x60-0x60
+  expected result: |
+    1. succeed
+    2. succeed
+    3. calculate adv intervals, within the interval range in adv param
+    4. calculate adv intervals, within the interval range in adv param
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  cmd set:
+  - "BLEFunction/AdvInterval"
+  - - interval_list = ["0x0020-0x0020", "0x0040-0x0040", "0x0060-0x0060"]
+    - ['']
+  - - deviation = 0.3
+    - ['']
+- ID: BTSTK_GAP_03006
+  <<: *GAP_CASE
+  test point 2: BLE GAP set advertise param
+  summary: ble set paramters for SCAN_IND
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 set incorrect adv interval for SCAN_IND
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with correct adv interval
+  expected result: |
+    1. succeed
+    2. succeed
+    3. can not get SCAN_IND with DUT1 BT MAC
+    4. get SCAN_IND with DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *open_capture_nic
+  - *dut1_stop_adv
+  - - LOOP 2 2 "['0x20-0x40','0xA0-0xB0']" "['NPDU','PDU']"
+    - [""]
+  - - "SSC SSC1 bleadv -D -z start -t 2 -i {%s}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC {%s} (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+- ID: BTSTK_GAP_03007
+  <<: *GAP_CASE
+  test point 2: BLE GAP set advertise param
+  summary: ble set paramters for NONCONN_IND
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 set incorrect adv interval for NONCONN_IND
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with correct adv interval
+  expected result: |
+    1. succeed
+    2. succeed
+    3. can not get SCAN_IND with DUT1 BT MAC
+    4. get SCAN_IND with DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *open_capture_nic
+  - *dut1_stop_adv
+  - - LOOP 2 2 "['0x20-0x40','0xA0-0xB0']" "['NPDU','PDU']"
+    - [""]
+  - - "SSC SSC1 bleadv -D -z start -t 3 -i {%s}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC {%s} (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="NONCONN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+- ID: BTSTK_GAP_04001
+  <<: *GAP_CASE
+  test point 2: BLE GAP set scan param
+  summary: ble set scan type
+  steps: |
+    1. stop advertise and set short device name
+    2. DUT1 set adv data with manufacturer data A
+    3. DUT1 set scan response data with manufacturer data B
+    4. DUT2 do passive scan
+    5. DUT2 do active scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get manufacturer data A
+    5. get manufacturer data B
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x15FF1011121314151617181910111213141516171819"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -R -t 2 -r 0x020AEB"
+    - ["R SSC1 C +BLEADV:SetScanRes,OK"]
+  - *dut1_start_adv
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -L -c 0 -s 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3 -e 2"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1011121314151617181910111213141516171819"%%(<dut1_bt_mac>)'
+      - 'R SSC2 NRE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>) C Complete'
+  - - "SSC SSC2 blescan -D -z stop"
+    - ['R SSC2 C +BLESCAN']
+  - - "SSC SSC2 blescan -L -c 0 -s 1"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1011121314151617181910111213141516171819"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_04002
+  <<: *GAP_CASE
+  test point 2: BLE GAP set scan param
+  summary: ble set scan own address type (not test if own address work as expected)
+  steps: |
+    1. DUT1 start advertising
+    2. DUT2 set own addr type (public, random, rpa_public, rpa_random)
+    3. DUT2 do active scan
+    4. DUT2 set invalid own addr type
+  expected result: |
+    1. succeed
+    2. succeed
+    3. able to scan DUT1
+    4. error
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetScanRes,OK"]
+  - *dut1_start_adv
+  - *dut2_stop_adv
+  - - LOOP 4 2 "[0,1,2,3]"
+    - ['']
+  - - "SSC SSC2 blescan -L -c 0 -s 1 -o {%d}"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1"
+    - ['R SSC2 P <dut1_bt_mac> C Complete']
+  - - "SSC SSC2 blescan -L -c 0 -o 4"
+    - ["R SSC2 C +BLESCAN:SetScanParam,ERROR"]
+- ID: BTSTK_GAP_04003
+  <<: *GAP_CASE
+  test point 2: BLE GAP set scan param
+  summary: ble set scan interval (will not test if scan interval work as expected)
+  steps: |
+    1. DUT2 start advertising
+    2. DUT1 set scan interval 0x0004
+    3. DUT1 set scan interval 0x4000
+    4. DUT1 set invalid scan interval
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. error
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleadv -D -z start"
+    - ["R SSC2 C +BLEADV:OK"]
+  - *dut1_stop_adv
+  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x0004"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x4000"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x0003"
+    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
+  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x4001"
+    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
+- ID: BTSTK_GAP_04004
+  <<: *GAP_CASE
+  test point 2: BLE GAP set scan param
+  summary: ble set scan window (will not test if scan window work as excepted)
+  steps: |
+    1. DUT2 set scan interval 0x0004
+    2. DUT2 set scan interval 0x4000
+    3. DUT2 set scan interval 0x0003
+    4. DUT2 set scan interval 0x4001
+  expected result: |
+    1. succeed
+    2. succeed
+    3. fail
+    4. fail
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_1
+  cmd set:
+  - ""
+  - - "SSC SSC1 blescan -L -c 0 -w 0x0004"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -L -c 0 -w 0x4000"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -L -c 0 -w 0x0003"
+    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
+  - - "SSC SSC1 blescan -L -c 0 -w 0x4001"
+    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
+- ID: BTSTK_GAP_05001
+  <<: *GAP_CASE
+  test point 2: BLE GAP start stop adv / scan
+  summary: stop and start adv in wrong state
+  steps: |
+    1. DUT1 stop adv
+    2. DUT1 stop adv
+    3. DUT2 do passive scan
+    4. DUT1 start adv
+    5. DUT1 start adv
+    6. DUT2 do passive scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 not in scan result
+    4. succeed
+    5. succeed
+    6. DUT1 in scan result
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *dut1_stop_adv
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1"
+    - ["R SSC2 NP <dut1_bt_mac> C Complete"]
+  - *dut1_start_adv
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1"
+    - ["R SSC2 P <dut1_bt_mac> C Complete"]
+- ID: BTSTK_GAP_05002
+  <<: *GAP_CASE
+  test point 2: BLE GAP start stop adv / scan
+  summary: cancel scan when scanning or not scanning
+  steps: |
+    1. DUT1 start scanning for 3 seconds
+    2. DUT1 stop scanning
+    3. DUT1 stop scanning
+  expected result: |
+    1. succeed
+    2. succeed
+    3. failed
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_1
+  cmd set:
+  - ""
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -D -z start -t 3"
+    - ["R SSC1 C +BLESCAN:OK"]
+  - - "SSC SSC1 blescan -D -z stop"
+    - ["R SSC1 C +BLESCAN:Stop,OK"]
+  - - "SSC SSC1 blescan -D -z stop"
+    - ["R SSC1 C +BLESCAN:Stop,ERROR"]
+- ID: BTSTK_GAP_06001
+  <<: *GAP_CASE
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect as "client" and "server"
+  allow fail: 1/2
+  steps: |
+    1. DUT1 connect to DUT2 as "client"
+    2. DUT1 disconnected with DUT2
+    3. DUT1 start gatt server app
+    4. DUT1 connect to DUT2 as "server"
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  cmd set:
+  - ""
+  - *dut1_connect_to_dut2
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ['R SSC1 C +BLE:CLOSE,OK']
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:LoadProfile,OK']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC1 bleconn -C -p 0xA0 -a <dut2_bt_mac> -z server"
+    - ['R SSC1 C +BLE:GattsConnect']
+- ID: BTSTK_GAP_06002
+  <<: *GAP_CASE
+  test point 2: BLE GAP connect / disconnect
+  summary: ble disconnect as "client" and "server"
+  steps: |
+    1. DUT1 connect to DUT2 as "client"
+    2. DUT1 disconnected with DUT2 as "client"
+    3. DUT1 start gatt server app
+    4. DUT1 connect to DUT2 as client
+    5. DUT1 disconnect with DUT2 as "server"
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  cmd set:
+  - ""
+  - *dut1_connect_to_dut2
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ['R SSC1 C +BLE:CLOSE,OK']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:LoadProfile,OK']
+  - *dut1_connect_to_dut2
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ['R SSC1 C +BLE:CLOSE,OK']
+- ID: BTSTK_GAP_06003
+  <<: *GAP_CASE
+  allow fail: 1/2
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect/disconnect to same connection multiple times 
+  steps: |
+    1. DUT1 connect to DUT2 as "client"
+    2. DUT1 start gatt server app
+    3. DUT1 connect to DUT2 as "client" again
+    4. DUT1 connect to DUT2 as "server"
+    5. DUT1 disconnected with DUT2 as "client"
+    6. DUT1 disconnected with DUT2 as "server"
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+    6. succeed
+  cmd set:
+  - ""
+  - *dut1_connect_to_dut2
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:LoadProfile,OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcOpen,OK']
+  - - "SSC SSC1 bleconn -C -p 0xA0 -a <dut2_bt_mac> -z server"
+    - ['R SSC1 C +BLE:GattsOpen,OK,00A0']
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ['R SSC1 C +BLE:CLOSE,OK']
+  - - "SSC SSC1 bleconn -D -p 0xA0 -z server"
+    - ['R SSC1 C +BLE:GattsClose,OK']
+- ID: BTSTK_GAP_06004
+  <<: *GAP_CASE
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect to invalid address
+  allow fail: 2/3
+  steps: |
+    1. DUT1 connect to invalid address
+    2. DUT1 connect to DUT2
+  expected result: |
+    1. failed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a 24:0a:c4:04:26:50"
+    - ['R SSC1 C +BLECONN:OK']
+  - - DELAY 30
+    - ['R SSC1 C +BLE:GattcOpen,ERROR']
+  - *dut1_connect_to_dut2
+- ID: BTSTK_GAP_06005
+  <<: *GAP_CASE
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect/disconnect event to active app
+  steps: |
+    1. DUT1 create gatts app
+    2. DUT1 connect to DUT2 as "client"
+    3. DUT1 do disconnect as "server"
+  expected result: |
+    1. succeed
+    2. succeed, DUT1 and DUT2 gatts get connect event
+    3. DUT1 and DUT2 gatts get disconnect event
+  cmd set:
+  - ""
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:LoadProfile,OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect C +BLE:GattsConnect', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC1 bleconn -D -p 0xA0 -z server"
+    - ['P SSC1 C +BLE:GattsClose']
+- ID: BTSTK_GAP_07001
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters by master
+  steps: |
+    1. update connect parameters by master
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["32"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BTSTK_GAP_07002
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters by slave
+  steps: |
+    1. update connect parameters by slave
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["32"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BTSTK_GAP_07003
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect parameters(timeout<(1+latency)*2*MAX_interval*1.25)
+  steps: |
+    1. update invalid connect parameters(timeout<(1+latency)*2*MAX_interval*1.25)
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["7-90"]
+    - ['']
+  - - latency=["1"]
+    - ['']
+  - - supervision_timeout=["41"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07004
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connnect parameters and interval within allowed range
+  steps: |
+    1. DUT1 update connection parametres and interval is 6-128
+    2. DUT1 update connection parametres and interval is 33-3200
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC1"]
+    - ['']
+  - - interval=["6-128","33-3200"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["50","1000"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BTSTK_GAP_07005
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters interval and interval out of allowed range
+  steps: |
+    1. DUT1 update invalid interval and interval is 16-3201
+    2. DUT1 update invalid interval and interval is 5-64
+  expected result: |
+    1. fail
+    2. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC1"]
+    - ['']
+  - - interval=["16-3201","5-64"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["32","32"]
+    - ['']
+  - - expect_result=["ERROR","ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07006
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters latency and latency within allowed range and timeout<(1+latency)*2*MAX_interval*1.25
+  steps: |
+    1. DUT1 update connect parameters latency and latency within allowed range and timeout<(1+latency)*2*MAX_interval*1.25
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["8"]
+    - ['']
+  - - supervision_timeout=["32"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07007
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters latency and latency = 501
+  steps: |
+    1. DUT1 uupdate connect parameters latency and latency = 501
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["6-8"]
+    - ['']
+  - - latency=["501"]
+    - ['']
+  - - supervision_timeout=["1003"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07008
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters latency and latency = 500
+  steps: |
+    1. DUT1 update connect parameters latency and latency = 500
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["6-8"]
+    - ['']
+  - - latency=["500"]
+    - ['']
+  - - supervision_timeout=["1003"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BTSTK_GAP_07009
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout within allowed range and timeout<(1+latency)*2*MAX_interval*1.25
+  steps: |
+    1. DUT1 update connect parameters timeout and timeout within allowed range and timeout<(1+latency)*2*MAX_interval*1.25
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["12"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07010
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 9
+  steps: |
+    1. DUT1 update connect parameters timeout and timeout = 9
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["9"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07011
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout within allowed range
+  steps: |
+    1. DUT1 update timeout = 10
+    2. DUT1 update timeout = 3200
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC1"]
+    - ['']
+  - - interval=["8-10","8-10"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["10","3200"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BTSTK_GAP_07012
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 3201
+  steps: |
+    1. DUT1 update timeout = 3201
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["3201"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07013
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect parameters before configure connect param event back
+  steps: |
+    1. DUT1 update valid interval
+    2. DUT1 update valid interval
+  expected result: |
+    1.
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac>"
+    - ['']
+  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -t 0x40"
+    - ['R SSC1 C pending']
+- ID: BTSTK_GAP_07014
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect param and unpdate valid connect params by master
+  steps: |
+    1. DUT1 update invalid connect parameters
+    2. DUT2 update valid connect
+  expected result: |
+    1. fail
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC1"]
+    - ['']
+  - - interval=["32-64","32-64"]
+    - ['']
+  - - latency=["9","0"]
+    - ['']
+  - - supervision_timeout=["32","32"]
+    - ['']
+  - - expect_result=["ERROR","OK"]
+    - ['']
+- ID: BTSTK_GAP_07015
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect parameters twice
+  allow fail: 1/2
+  steps: |
+    1. DUT1 update valid connect parameters
+    2. DUT1 update valid connect parameters
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC1"]
+    - ['']
+  - - interval=["7-80","10-100"]
+    - ['']
+  - - latency=["1","0"]
+    - ['']
+  - - supervision_timeout=["41","30"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BTSTK_GAP_07016
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect parameters(timeout<(1+latency)*2*MAX_interval*1.25) by slave
+  steps: |
+    1. DUT2 update valid connect parameters(timeout<(1+latency)*2*MAX_interval*1.25) by slave
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["7-90"]
+    - ['']
+  - - latency=["1"]
+    - ['']
+  - - supervision_timeout=["41"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07017
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connnect parameters interval within allowed range by slave
+  steps: |
+    1. DUT2 update interval 6-128
+    2. DUT2 update interval 21-3200
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC2"]
+    - ['']
+  - - interval=["6-128","21-3200"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["50","1000"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BTSTK_GAP_07018
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connnect parameters interval out of allowed range by slave
+  steps: |
+    1. DUT2 update invalid interval 10-3201
+    2. DUT2 update invalid interval 5-64
+  expected result: |
+    1. fail
+    2. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC2"]
+    - ['']
+  - - interval=["10-3201","5-64"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["32","32"]
+    - ['']
+  - - expect_result=["ERROR","ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07019
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connnect parameters and latency within allowed range and timeout<(1+latency)*2*MAX_interval*1.25 by slave
+  steps: |
+    1. DUT2 update connnect parameters and latency within allowed range and timeout<(1+latency)*2*MAX_interval*1.25 by slave
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["8"]
+    - ['']
+  - - supervision_timeout=["32"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07020
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters latency and latency out of allowed range by slave
+  steps: |
+    1. DUT2 update invalid latency = 501
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["6-8"]
+    - ['']
+  - - latency=["501"]
+    - ['']
+  - - supervision_timeout=["1003"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07021
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect parameters and latency = 500 by slave
+  steps: |
+    1. DUT2 update latency = 500
+  expected result: |
+    1. success
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["6-8"]
+    - ['']
+  - - latency=["500"]
+    - ['']
+  - - supervision_timeout=["1003"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BTSTK_GAP_07022
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 9 by slave
+  steps: |
+    1. DUT2 update connect parameters timeout and timeout = 9
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["9"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07023
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 10 by slave
+  steps: |
+    1. DUT2 update connect parameters timeout and timeout = 10 by slave
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["10"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BTSTK_GAP_07024
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 3200 by slave
+  steps: |
+    1. DUT2 update connect parameters timeout and timeout = 3200 by slave
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["3200"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BTSTK_GAP_07025
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 3201 by slave
+  steps: |
+    1. DUT2 update connect parameters timeout and timeout = 3201 by slave
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["3201"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BTSTK_GAP_07026
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect parameters before configure connect param event back by slave
+  steps: |
+    1. DUT2 update valid interval
+    2. DUT2 update valid interval
+  expected result: |
+    1.
+    2. pending
+  initial condition: BLE_CONN2
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleconn -S -z ConnParam -a <dut1_bt_mac>"
+    - ['']
+  - - "SSC SSC2 bleconn -S -z ConnParam -a <dut1_bt_mac> -t 0x40"
+    - ['R SSC2 C pending']
+- ID: BTSTK_GAP_07027
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect param and update valid connect params by slave
+  steps: |
+    1. DUT2 update invalid connect
+    2. DUT2 update valid connect
+  expected result: |
+    1. fail
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC2"]
+    - ['']
+  - - interval=["32-64","32-64"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["9","21"]
+    - ['']
+  - - expect_result=["ERROR","OK"]
+    - ['']
+- ID: BTSTK_GAP_07028
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect parameters twice by slave
+  allow fail: 1/2
+  steps: |
+    1. DUT2 update valid interval
+    2. DUT2 update valid interval
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC2"]
+    - ['']
+  - - interval=["7-80","10-100"]
+    - ['']
+  - - latency=["1","0"]
+    - ['']
+  - - supervision_timeout=["41","30"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BTSTK_GAP_07029
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect param by master and update valid connect params by slave
+  steps: |
+    1. DUT1 update invalid connect
+    2. DUT2 update valid connect
+  expected result: |
+    1. fail
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC2"]
+    - ['']
+  - - interval=["32-64","32-64"]
+    - ['']
+  - - latency=["9","0"]
+    - ['']
+  - - supervision_timeout=["32","32"]
+    - ['']
+  - - expect_result=["ERROR","OK"]
+    - ['']
+- ID: BTSTK_GAP_07030
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect param by master and update valid connect params by slave
+  steps: |
+    1. DUT1 update valid interval
+    2. DUT2 update valid interval
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC2"]
+    - ['']
+  - - interval=["7-80","10-100"]
+    - ['']
+  - - latency=["1","0"]
+    - ['']
+  - - supervision_timeout=["41","30"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BTSTK_GAP_07031
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect param by slave and update valid connect params by master
+  steps: |
+    1. DUT1 update invalid connect
+    2. DUT2 update valid connect
+  expected result: |
+    1. fail
+    2. success
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC1"]
+    - ['']
+  - - interval=["32-64","32-64"]
+    - ['']
+  - - latency=["9","0"]
+    - ['']
+  - - supervision_timeout=["32","32"]
+    - ['']
+  - - expect_result=["ERROR","OK"]
+    - ['']
+- ID: BTSTK_GAP_07032
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect param by slave and update valid connect params by master
+  allow fail: 1/2
+  steps: |
+    1. DUT2 update valid interval
+    2. DUT1 update valid interval
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC1"]
+    - ['']
+  - - interval=["7-80","10-100"]
+    - ['']
+  - - latency=["1","0"]
+    - ['']
+  - - supervision_timeout=["41","30"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BTSTK_GAP_07033
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters by master after pairing
+  steps: |
+    1. DUT1 update connection parameters
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN_SMP
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["32"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BTSTK_GAP_08001
+  <<: *GAP_CASE
+  test point 2: BLE GAP operation without init/enable BT or register callback
+  summary: do adv, scan, set name when BT is deinit
+  steps: |
+    1. DUT1 do adv
+    2. DUT1 do scan
+    3. DUT1 do set name
+  expected result: |
+    1. fail
+    2. fail
+    3. fail
+  initial condition: BLE_DEINIT1
+  test environment: SSC_T1_1
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -L -c 0"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 blescan -D -z start"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 ble -S -z name -n abcde"
+    - ["R SSC1 C +BLE"]
+- ID: BTSTK_GAP_08002
+  <<: *GAP_CASE
+  test point 2: BLE GAP operation without init/enable BT or register callback
+  summary: do adv, scan, set name, conn when BT is disable
+  steps: |
+    1. DUT1 do init
+    2. DUT1 do adv
+    3. DUT1 do scan
+    4. DUT2 do set name
+  expected result: |
+    1. succeed
+    2. fail
+    3. fail
+    4. fail
+  initial condition: BLE_DEINIT1
+  test environment: SSC_T1_1
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bleadv -L -c 0"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 blescan -D -z start"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 ble -S -z name -n abcde"
+    - ["R SSC1 C +BLE"]
+- ID: BTSTK_GAP_08003
+  <<: *GAP_CASE
+  test point 2: BLE GAP operation without init/enable BT or register callback
+  summary: do adv, scan, set name, conn when BT is enable but no callback registered
+  steps: |
+    1. DUT1 do init and enable
+    2. DUT1 do adv
+    3. DUT1 do scan
+    4. DUT2 do set name
+  expected result: |
+    1. succeed
+    2. fail
+    3. fail
+    4. fail
+  initial condition: BLE_DEINIT1
+  test environment: SSC_T1_1
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -D -z start"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bleadv -L -c 0"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 blescan -D -z start"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 ble -S -z name -n abcde"
+    - ["R SSC1 C +BLE"]
+- ID: BTSTK_GAP_09001
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: process scan data txp, manufacturer data, interval range, appearence, flag
+  steps: |
+    1. DUT1 set raw adv data tx power, manufacturer data, interval range, apperaence, flag
+    2. DUT1 start adv
+    3. DUT2 do active scan with extended scan data 19
+  expected result: |
+    1. succeed
+    2. succeed
+    3. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x020AEB06FF1112131415051220004000021901020106"
+    - ["R SSC1 C +BLEADV:OK"]
+  - *dut1_start_adv
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1112131415"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,intrange,0x20004000"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,app,0x01"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,flag,0x06"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09002
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: process scan data service UUIDs
+  steps: |
+    1. DUT1 set raw adv 16 bit Complete UUID list
+    2. DUT1 start adv
+    3. DUT2 do active scan with extended scan data
+    4. repeat step 1-3 with 16 bit incomplete UUID, 32 bit complete/incomplete UUID, 128 bit complete/incomplete UUID
+  expected result: |
+    1. succeed
+    2. succeed
+    3. scan with the correct adv data
+    4. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *dut2_stop_adv
+  - - LOOP 4 3 "['0302ABCD','0303ABCD','0504ABCDABCD','0505ABCDABCD',]" "['insrv16,0xABCD','srv16,0xABCD','insrv32,0xABCDABCD','srv32,0xABCDABCD']"
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x{%s}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,{%s}"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+  - - LOOP 2 3 "['1106ABCDABCDABCDABCDABCDABCDABCDABCD','1107ABCDABCDABCDABCDABCDABCDABCDABCD']" "['insrv128,0xABCDABCDABCDABCDABCDABCDABCDABCD','srv128,0xABCDABCDABCDABCDABCDABCDABCDABCD']"
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x{%s}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,{%s}"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09003
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: process scan data service data
+  steps: |
+    1. DUT1 set raw adv 16 bit service data
+    2. DUT1 start adv
+    3. DUT2 do active scan with extended scan data
+    4. repeat step 1-3 with 32 bit service data, 128 bit service data
+  expected result: |
+    1. succeed
+    2. succeed
+    3. scan with the correct adv data
+    4. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *dut2_stop_adv
+  - - LOOP 3 3 "['0416ABCDEF','0620ABCDABCDEF','1221ABCDABCDABCDABCDABCDABCDABCDABCDEF',]" "['srvdata,0xABCDEF','srvdata32,0xABCDABCDEF','srvdata128,0xABCDABCDABCDABCDABCDABCDABCDABCDEF']"
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x{%s}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,{%s}"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09004
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: process combined adv data and scan response data
+  steps: |
+    1. DUT1 set raw adv data manufacturer data
+    2. DUT1 set scan response data tx power, interval range, apperaence, flag
+    2. DUT1 start adv
+    3. DUT2 do active scan with extended scan data 19
+  expected result: |
+    1. succeed
+    2. succeed
+    3. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x15FF1011121314151617181910111213141516171819"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -R -t 2 -r 0x020AEB051220004000021901020106"
+    - ["R SSC1 C +BLEADV:OK"]
+  - *dut1_start_adv
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1011121314151617181910111213141516171819"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,intrange,0x20004000"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,app,0x01"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,flag,0x06"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09005
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: proccess scan data included device name
+  steps: |
+    1. DUT1 stop advertise and set short device name abcde
+    2. DUT1 set include device name for adv data and scan response
+    3. DUT1 start advertising
+    4. DUT2 start scan and processing scan data
+    5. DUT1 stop advertising
+    6. DUT1 set not include device name for adv data and scan response
+    7. DUT1 start advertising
+    8. DUT2 start scan and processing scan data
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. scan with the correct adv data
+    5. succeed
+    6. succeed
+    7. succeed
+    8. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - - "SSC SSC1 ble -S -z name -n abcde"
+    - ["R SSC1 C +BLE"]
+  - - "SSC SSC1 bleadv -L -c 0 -n 1 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCAN:INQ,%%s,abcde"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -n 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCAN:INQ,%%s,NULL"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09006
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: proccess scan data included Tx power
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set include Tx power for adv data and scan response
+    3. DUT1 start advertising
+    4. DUT2 start scan and processing scan data
+    5. DUT1 stop advertising
+    6. DUT1 set not include Tx power for adv data and scan response
+    7. DUT1 start advertising
+    8. DUT2 start scan and processing scan data
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. scan with the correct adv data
+    5. succeed
+    6. succeed
+    7. succeed
+    8. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -x 1 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)' 
+      - 'R SSC2 C Complete'
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -x 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'R SSC2 NRE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09007
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: proccess scan data included adv interval
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set max interval 0x40 min interval 0x20 for adv data and scan response
+    3. DUT1 start advertising
+    4. DUT2 start scan and processing scan data
+    5. DUT1 stop advertising
+    6. DUT1 set max interval 0x400 min interval 0x200 for adv data and scan response
+    7. DUT1 start advertising
+    8. DUT2 start scan and processing scan data
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. scan with the correct adv data
+    5. succeed
+    6. succeed
+    7. succeed
+    8. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x20-0x40 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,intrange,0x20004000"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x200-0x400 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,intrange,0x00020004"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09008
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: proccess scan data included appearance
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set appearance to 0 for adv data and scan response
+    3. DUT1 start advertising
+    4. DUT2 start scan and processing scan data
+    5. DUT1 stop advertising
+    6. DUT1 set appearance to 1 for adv data and scan response
+    7. DUT1 start advertising
+    8. DUT2 start scan and processing scan data
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. scan with the correct adv data
+    5. succeed
+    6. succeed
+    7. succeed
+    8. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -a 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 NRE "\+BTSCANEXT:%%s,app,0x0100"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -a 1 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,app,0x0100"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09009
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: proccess scan data included manufacturer data
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set manufacturer to 0x12345678 for adv data and scan response
+    3. DUT1 start advertising
+    4. DUT2 start scan and processing scan data
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -m 0x12345678 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x12345678"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09010
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: proccess scan data included service data
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 set advertising data and scan response service data 0x1234123456 and not include device name
+    3. DUT1 start advertising
+    4. DUT2 start scan and processing scan data
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -n 0 -d 0x1234123456 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,srvdata,0x1234123456"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09011
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: proccess scan data included service uuid list
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 set advertising data and scan response not include name, service uuid list 0xABCD,ABCDDCBA,12349B5F8000008000100000ABCD0000
+    3. DUT1 start advertising
+    4. DUT2 start scan and processing scan data
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -n 0 -x 0 -i 0x00-0x00 -s ABCD,ABCDDCBA,12349B5F8000008000100000ABCD0000 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,srv16,0xABCD"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,srv32,0xABCDDCBA"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,srv128,0x12349B5F8000008000100000ABCD0000"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_10001
+  <<: *GAP_CASE
+  test point 2: BLE GAP master multi connection test
+  summary: master connect to 3 slaves with different app and master do disconnect
+  steps: |
+    1. DUT2-DUT4 starts adv
+    2. DUT1 connect to DUT2 - DUT4
+    3. DUT1 disconnect with DUT2 - DUT4
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC[2-4] bleadv -D -z start"
+    - ["P SSC[2-4] C +BLEADV:Start,OK"]
+  - - LOOP 3 1 "[0,1,2]" "[2,3,4]"
+    - ""
+  - - "SSC SSC1 bleconn -C -p 0x1{%d} -a <dut{%d}_bt_mac>"
+    - ['R SSC1 C +BLE:GattcOpen,OK']
+  - - LOOP 3 1 "[2,1,0]" "[4,3,2]"
+    - ""
+  - - "SSC SSC1 bleconn -D -z client -p 0x1{%d}"
+    - ['P SSC1 C +BLE:GattcDisconnect,OK', 'P SSC{%d} C +BLE:GattsDisconnect,OK']
+- ID: BTSTK_GAP_10002
+  <<: *GAP_CASE
+  test point 2: BLE GAP master multi connection test
+  summary: master connect to 3 slaves with different app and slave do disconnect
+  steps: |
+    1. DUT2-DUT4 starts adv
+    2. DUT1 connect to DUT2 - DUT4
+    3. DUT1 disconnect with DUT2 - DUT4
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC[2-4] bleadv -D -z start"
+    - ["P SSC[2-4] C +BLEADV:Start,OK"]
+  - - LOOP 3 1 "[0,1,2]" "[2,3,4]" "[2,3,4]"
+    - ""
+  - - "SSC SSC1 bleconn -C -p 0x1{%d} -a <dut{%d}_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC{%d} C +BLE:GattsConnect']
+    - - LOOP 3 1 "[2,3,4]" "[2,3,4]"
+    - ""
+  - - "SSC SSC{%d} bleconn -D -z server -p 0xA0"
+    - ['P SSC1 C +BLE:GattcDisconnect,OK,001[0-2]', 'P SSC{%d} C +BLE:GattsDisconnect,OK']
+- ID: BTSTK_GAP_10003
+  <<: *GAP_CASE
+  test point 2: BLE GAP master multi connection test
+  summary: master connect to 4 slaves with same app and master do disconnect
+  steps: |
+    1. DUT2-DUT4 starts adv
+    2. DUT1 connect to DUT2 - DUT5
+    3. DUT1 disconnect with DUT2 - DUT5
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC[2-5] bleadv -D -z start"
+    - ["P SSC[2-5] C +BLEADV:Start,OK"]
+  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC{%d} C +BLE:GattsConnect']
+  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 bleconn -D -z client -p 0x10 -a <dut{%d}_bt_mac>"
+    - ['P SSC1 C +BLE:GattcDisconnect,OK', 'P SSC{%d} C +BLE:GattsDisconnect,OK']
+- ID: BTSTK_GAP_10004
+  <<: *GAP_CASE
+  test point 2: BLE GAP master multi connection test
+  summary: master connect to 4 slaves with same app and slave do disconnect
+  steps: |
+    1. DUT2-DUT4 starts adv
+    2. DUT1 connect to DUT2 - DUT5
+    3. DUT1 disconnect with DUT2 - DUT5
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC[2-5] bleadv -D -z start"
+    - ["P SSC[2-5] C +BLEADV:Start,OK"]
+  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC{%d} C +BLE:GattsConnect']
+  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC{%d} bleconn -D -z server -p 0xA0"
+    - ['P SSC1 RE "BLE:GattcDisconnect,OK,0010,%%s"%%(<dut{%d}_bt_mac>)', 'P SSC{%d} C +BLE:GattsDisconnect']
+- ID: BTSTK_GAP_11001
+  <<: *GAP_CASE
+  test point 2: BLE GAP slave multi connection test
+  summary: slave connected by 4 master and master do disconnect
+  steps: |
+    1. DUT2-DUT5 starts adv
+    2. DUT1 connect to DUT2 - DUT5
+    3. DUT1 disconnect with DUT2 - DUT5
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:StartService,OK,A000']
+  - - LOOP 4 2 "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["P SSC1 C +BLEADV:Start,OK"]
+  - - "SSC SSC{%d} bleconn -C -p 0x10 -a <dut1_bt_mac>"
+    - ['R SSC{%d} C +BLE:GattcConnect,OK,0010', 'R SSC1 C +BLE:GattsConnect']
+  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]"
+  - - "SSC SSC{%d} bleconn -D -z client -p 0x10"
+    - ['P SSC{%d} C +BLE:GattcDisconnect,OK', 'P SSC1 C +BLE:GattsDisconnect,OK']
+- ID: BTSTK_GAP_11002
+  <<: *GAP_CASE
+  test point 2: BLE GAP slave multi connection test
+  summary: slave connected by 4 master and slave do disconnect
+  steps: |
+    1. DUT2-DUT5 starts adv
+    2. DUT1 connect to DUT2 - DUT5
+    3. DUT1 disconnect with DUT2 - DUT5
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:StartService,OK,A000']
+  - - LOOP 4 2 "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["P SSC1 C +BLEADV:Start,OK"]
+  - - "SSC SSC{%d} bleconn -C -p 0x10 -a <dut1_bt_mac>"
+    - ['R SSC{%d} C +BLE:GattcConnect,OK,0010', 'R SSC1 C +BLE:GattsConnect']
+  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 bleconn -D -z server -p 0xA0 -a <dut{%d}_bt_mac>"
+    - ['P SSC{%d} C +BLE:GattcDisconnect,OK', 'P SSC1 C +BLE:GattsDisconnect,OK']
+- ID: BTSTK_GAP_12001
+  <<: *GAP_CASE
+  test point 2: BLE GAP multi connection as both master and slave role test
+  summary:  connected by 2 masters and connect to 2 slaves and do disconnect
+  steps: |
+    1. DUT1 starts adv
+    2. DUT2 DUT3 connect to DUT1
+    3. DUT1 connect to DUT4 DUT5
+    4. DUT1 do disconnect
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: BLE_INIT5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:StartService,OK,A000']
+  - - LOOP 2 2 "[2,3]" "[2,3]"
+    - ""
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["P SSC1 C +BLEADV:Start,OK"]
+  - - "SSC SSC{%d} bleconn -C -p 0x10 -a <dut1_bt_mac>"
+    - ['R SSC{%d} C +BLE:GattcConnect,OK,0010', 'P SSC1 C +BLE:GattsConnect']
+  - - "SSC SSC[4-5] bleadv -D -z start"
+    - ["P SSC[4-5] C +BLEADV:Start,OK"]
+  - - LOOP 2 1 "[4,5]" "[4,5]"
+    - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC{%d} C +BLE:GattsConnect']
+  - - "SSC SSC1 bleconn -D -z all"
+    - ["P SSC[2-5] C Disconnect"]
+- ID: BTSTK_GAP_12002
+  <<: *GAP_CASE
+  test point 2: BLE GAP multi connection as both master and slave role test
+  summary:  connected by 2 masters and connect to 2 slaves and be disconnected
+  steps: |
+    1. DUT1 starts adv
+    2. DUT2 DUT3 connect to DUT1
+    3. DUT1 connect to DUT4 DUT5
+    4. DUT[2-5] do disconnect
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: BLE_INIT5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:StartService,OK,A000']
+  - - LOOP 2 2 "[2,3]" "[2,3]"
+    - ""
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["P SSC1 C +BLEADV:Start,OK"]
+  - - "SSC SSC{%d} bleconn -C -p 0x10 -a <dut1_bt_mac>"
+    - ['R SSC{%d} C +BLE:GattcConnect,OK,0010', 'R SSC1 C +BLE:GattsConnect']
+  - - "SSC SSC[4-5] bleadv -D -z start"
+    - ["P SSC[4-5] C +BLEADV:Start,OK"]
+  - - LOOP 2 1 "[4,5]" "[4,5]"
+    - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC{%d} C +BLE:GattsConnect']
+  - - LOOP 4 1 "[2,3,4,5]"
+  - - "SSC SSC{%d} bleconn -D -z all"
+    - ["P SSC1 C Disconnect"]
+- ID: BTSTK_GAP_40001
+  <<: *GAP_CASE
+  test point 2: test if BLE work after switch off some sub modules
+  summary: GAP only test
+  steps: |
+    1. download GAP only SSC bin on both DUT
+    2. DUT1 set ascii device name
+    3. stop advertising
+    4. config scan response and start advertising
+    5. DUT2 do active scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. device name in scan result
+  initial condition: None
+  version: v1 (2017-05-19)
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] reboot"
+    - ['R SSC[1-2] C !!!ready!!!']
+  - - "SSC SSC[1-2] ble -R"
+    - ["R SSC[1-2] C +BLE:OK"]
+  - *set_default_ble_name
+  - *set_default_adv_data
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 P <dut1_ble_name>"]
+- ID: BTSTK_GAP_50001
+  <<: *GAP_CASE
+  category: Performance
+  test point 1: performance + stress
+  test point 2: BLE GAP performance test
+  summary: BLE Connect and disconnect performance test
+  steps: |
+    1. DUT1 disconnect with DUT2
+    2. DUT2 start advertising
+    3. DUT1 connect to DUT2
+    4. do service discovery
+    5. loop step 1-4
+    6. check connection fail ratio and average conn time
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+    6. meet pass standard
+  initial condition: BLE_INIT2
+  execution time: 6
+  version: v1 (2017-05-19)
+  CI ready: 'No'
+  cmd set:
+  - "BLEStress/BLEConnPerformance"
+  - - "test_time = 420"
+    - ""
+  - - "average_conn_time = 3"
+    - ""
+  - - "fail_ratio = 0.01"
+    - ""
+  - - "fail_timeout = 10"
+    - ""
+- ID: BTSTK_GAP_51001
+  <<: *GAP_CASE
+  category: Performance
+  test point 1: performance + stress
+  test point 2: BLE GAP performance test
+  summary: BLE adv and scan forever
+  steps: |
+    1. DUT1 do adv
+    2. DUT2 do scan
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_INIT2
+  execution time: 10
+  cmd set:
+  - "BLEStress/BLEAdvScanPerformance"
+  - - "test_time = 600"
+    - ""
+- ID: BTSTK_GAP_13001
+  <<: *GAP_CASE
+  test point 2: BLE GAP param packet data length test
+  summary: gattc set packet data length at valid length (27-251)
+  steps: |
+    1. DUT1 connect DUT2
+    2. DUT1 set packet data length
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
+  - - LOOP 3 1 "[27,200,251]" "[27,200,251]"
+  - - "SSC SSC1 ble -S -z pktLen -a <dut2_bt_mac> -l {%d}"
+    - ["R SSC1 C +BLECONN:UpdatePktLen,OK,{%d}"]
+- ID: BTSTK_GAP_13002
+  <<: *GAP_CASE
+  test point 2: BLE GAP param packet data length test
+  summary: gattc set packet data length at invalid length
+  steps: |
+    1. DUT1 connect DUT2
+    2. DUT1 set packet data length
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
+  - - LOOP 2 1 "[26,252]" "[27,251]"
+  - - "SSC SSC1 ble -S -z pktLen -a <dut2_bt_mac> -l {%d}"
+    - ["R SSC1 C +BLECONN:UpdatePktLen,OK,{%d}"]
+- ID: BTSTK_GAP_13003
+  <<: *GAP_CASE
+  test point 2: BLE GAP param packet data length test
+  summary: gatts set packet data length at valid length (27-251)
+  steps: |
+    1. DUT1 connect DUT2
+    2. DUT1 set packet data length
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
+  - - LOOP 3 1 "[27,200,251]" "[27,200,251]"
+  - - "SSC SSC2 ble -S -z pktLen -a <dut1_bt_mac> -l {%d}"
+    - ["R SSC2 C +BLECONN:UpdatePktLen,OK,{%d}"]
+- ID: BTSTK_GAP_13004
+  <<: *GAP_CASE
+  test point 2: BLE GAP param packet data length test
+  summary: gatts set packet data length at invalid length
+  steps: |
+    1. DUT1 connect DUT2
+    2. DUT1 set packet data length
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
+  - - LOOP 2 1 "[26,252]" "[27,251]"
+  - - "SSC SSC2 ble -S -z pktLen -a <dut1_bt_mac> -l {%d}"
+    - ["R SSC2 C +BLECONN:UpdatePktLen,OK,{%d}"]
+- ID: BTSTK_GAP_14001
+  <<: *GAP_CASE
+  test point 2: BLE GAP set randAddr as random address
+  summary: adv with static random address and be connected
+  steps: |
+    1. DUT2 do set randaddr
+    2. DUT2 start adv and DUT1 start scan
+    3. DUT1 connect to DUT2
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 ble -S -z randAddr -a <static_device_addr> -r 1"
+    - ["R SSC2 C +BLECONN:SetRandAddr,OK"]
+  - - "SSC SSC2 bleadv -D -z start -o 1"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC1 blescan -D -z start"
+    - ['R SSC1 P <static_device_addr> C Complete']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <static_device_addr>"
+    - ["P SSC1 C +BLE:GattcConnect,OK", "P SSC2 C +BLE:GattsConnect"]
+- ID: BTSTK_GAP_14002
+  <<: *GAP_CASE
+  test point 2: BLE GAP set as pablic address
+  summary: BLE GAP set invalid randaddr FF:FF:FF:FF:FF:FF
+  steps: |
+    1. DUT1 set invalid randaddr FF:FF:FF:FF:FF:FF
+  expected result: |
+    1. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z randAddr -a FF:FF:FF:FF:FF:FF -r 1"
+    - ["R SSC1 C +BLECONN:SetRandAddr,ERROR"]
+- ID: BTSTK_GAP_14003
+  <<: *GAP_CASE
+  test point 2: BLE GAP set as pablic address
+  summary: BLE GAP set invalid randaddr 11:00:00:00:00:00
+  steps: |
+    1. DUT1 set invalid randaddr 11:00:00:00:00:00
+  expected result: |
+    1. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z randAddr -a 11:00:00:00:00:00 -r 1"
+    - ["R SSC1 C +BLECONN:SetRandAddr,ERROR"]
+- ID: BTSTK_GAP_14004
+  <<: *GAP_CASE
+  test point 2: BLE GAP set as pablic address
+  summary: BLE GAP set invalid randaddr 10:FA:67:25:AB:DA
+  steps: |
+    1. DUT1 set invalid randaddr 10:FA:67:25:AB:DA
+  expected result: |
+    1. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z randAddr -a 10:FA:67:25:AB:DA -r 1"
+    - ["R SSC1 C +BLECONN:SetRandAddr,ERROR"]
+- ID: BTSTK_GAP_14005
+  <<: *GAP_CASE
+  test point 2: BLE GAP set as pablic address
+  summary: BLE GAP set invalid randaddr 01:49:F0:AF:CA:DB
+  steps: |
+    1. DUT1 set invalid randaddr 01:49:F0:AF:CA:DB
+  expected result: |
+    1. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z randAddr -a 01:49:F0:AF:CA:DB -r 1"
+    - ["R SSC1 C +BLECONN:SetRandAddr,ERROR"]
+- ID: BTSTK_GAP_14006
+  <<: *GAP_CASE
+  test point 2: BLE GAP set as pablic address
+  summary: BLE GAP set invalid randaddr 00:AC:F6:36:A4:6B
+  steps: |
+    1. DUT1 set invalid randaddr 00:AC:F6:36:A4:6B
+  expected result: |
+    1. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z randAddr -a 00:AC:F6:36:A4:6B -r 1"
+    - ["R SSC1 C +BLECONN:SetRandAddr,ERROR"]
+- ID: BTSTK_GAP_14007
+  <<: *GAP_CASE
+  test point 2: BLE set random address test
+  summary: BLE set random address as resolvable private address
+  initial condition: BLE_INIT_SMP
+  steps: |
+    1. SSC1 set adv params and config local privacy as true
+    2. SSC1 bleadv and SSC2 blescan
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
+  - - "SSC SSC1 ble -S -z privacy -p 1"
+    - ["R SSC1 C +BLECONN:SetResAddr,Success"]
+  - - "SSC SSC1 bleadv -D -z start -o 1"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 NP <dut1_bt_mac> C +BLESCAN:InquiryComplete"]
+- ID: BTSTK_GAP_14008
+  <<: *GAP_CASE
+  test point 2: BLE set random address test
+  summary: BLE set random address as resolvable private address
+  steps: |
+    1. SSC2 set AuthReqMode and IOCAP,set RspKey as Enc and IRK
+    2. pairing
+    3. SSC1 disconnect to SSC2
+    4. SSC2 do local privacy
+    5. SSC2 bleadv and SSC1 blescan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_INIT_SMP
+  cmd set:
+  - ""
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z RspKey -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC1 C +BLESMP:SecReq']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC1 bleconn -D -z all"
+    - ['P SSC1 C +BLE:GattcDisconnect,OK', 'P SSC2 C +BLE:GattsDisconnect,OK']
+  - - "SSC SSC2 ble -S -z privacy -p 1"
+    - ["R SSC2 C +BLECONN:SetResAddr,Success"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -L -c 0 -t 3"
+    - ["R SSC2 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
+  - - "SSC SSC2 bleadv -D -z start -o 1"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC1 blescan -D -z stop"
+    - ["R SSC1 C +BLESCAN:OK"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -D -z start -t 3"
+    - ["R SSC1 P <dut2_bt_mac>"]
+- ID: BTSTK_GAP_14009
+  <<: *GAP_CASE
+  test point 2: BLE set random address test
+  summary: BLE set random address as resolvable private address
+  steps: |
+    1. SSC2 set AuthReqMode and IOCAP,set RspKey as Enc and IRK
+    2. pairing
+    3. SSC1 and SSC2 reboot
+    4. SSC2 do local privacy
+    5. SSC2 bleadv and SSC1 blescan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_INIT_SMP
+  allow fail: 2/3
+  cmd set:
+  - ""
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z RspKey -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC1 C +BLESMP:SecReq']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC[1-2] reboot"
+    - ['R SSC[1-2] C !!!ready!!!']
+  - - "SSC SSC[1-2] ble -R"
+    - ["R SSC[1-2] C +BLE:OK"]
+  - - "SSC SSC2 ble -S -z privacy -p 1"
+    - ["R SSC2 C +BLECONN:SetResAddr,Success"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -L -c 0 -t 3"
+    - ["R SSC2 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
+  - - "SSC SSC2 bleadv -D -z start -o 1"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC1 blescan -D -z stop"
+    - ["R SSC1 C +BLESCAN:OK"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -D -z start -t 3"
+    - ["R SSC1 P <dut2_bt_mac>"]
+- ID: BTSTK_GAP_15001
+  <<: *GAP_CASE
+  test point 2: BLE GAP white list test
+  summary: add white list and remove
+  steps: |
+   1. get white list
+   2. DUT1 add DUT2 into white list
+   3. remove DUT2 from white list
+   4. remove DUT2 from white list
+  expected result: |
+   1. succeed
+   2. succeed
+   3. succeed
+   4. succeed
+  initial condition: BLE_INIT_REBOOT2
+  cmd set:
+  - "" 
+  - - "SSC SSC1 ble -W -z get"
+    - ['P SSC1 C +BLE:GetWhiteList,OK,12']
+  - - "SSC SSC1 ble -W -a <dut2_bt_mac> -z add"
+    - ['P SSC1 C +BLE:AddWhiteList,Success']
+  - - "SSC SSC1 ble -W -a <dut2_bt_mac> -z remove"
+    - ['P SSC1 C +BLE:RemoveWhiteList,Success']
+  - - "SSC SSC1 ble -W -a <dut2_bt_mac> -z remove"
+    - ['P SSC1 C +BLE:RemoveWhiteList,Success']
+- ID: BTSTK_GAP_15002
+  <<: *GAP_CASE
+  test point 2: BLE GAP white list test
+  summary: get white list test
+  steps: |
+   1. DUT1 add white list DUT2 DUT3 DUT4 DUT5
+   2. DUT1 get white list
+  expected result: |
+   1. succeed
+   2. succeed
+  initial condition: BLE_INIT_REBOOT2
+  cmd set:
+  - ""
+  - - LOOP 4 1 "[0,1,2,4]"
+  - - "SSC SSC1 ble -W -z add -a c0:3e:72:bd:a8:c{%d}"
+    - ['P SSC1 C +BLE:AddWhiteList,Success']
+  - - "SSC SSC1 ble -W -z get"
+    - ['P SSC1 C +BLE:GetWhiteList,OK,8']
+- ID: BTSTK_GAP_15003
+  <<: *GAP_CASE
+  test point 2: BLE GAP white list test
+  summary: add white list twice
+  steps: |
+   1. DUT1 add DUT2 into white list
+   2. DUT1 add DUT2 into white list
+   3. DUT1 get white list
+  expected result: |
+   1. succeed
+   2. succeed
+   3. succeed
+  initial condition: BLE_INIT_REBOOT2
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -W -a <dut2_bt_mac> -z add"
+    - ['P SSC1 C +BLE:AddWhiteList,Success']
+  - - "SSC SSC1 ble -W -a <dut2_bt_mac> -z add"
+    - ['P SSC1 C +BLE:AddWhiteList,Success']
+  - - "SSC SSC1 ble -W -z get"
+    - ['P SSC1 C +BLE:GetWhiteList,OK,11']
+- ID: BTSTK_GAP_15004
+  <<: *GAP_CASE
+  test point 2: BLE GAP white list test
+  summary: add 12 device to white list
+  steps: |
+   1. DUT1 add 12 addresses into white list
+   2. DUT1 get white list
+   3. DUT1 add 13th address into white list
+  expected result: |
+   1. succeed
+   2. succeed
+   3. failed
+  initial condition: BLE_INIT_REBOOT2
+  cmd set:
+  - ""
+  - - LOOP 12 1 "['0','1','2','3','4','5','6','7','8','9','a','b']"
+    - ''
+  - - "SSC SSC1 ble -W -a c0:9b:0e:36:6d:7{%s} -z add"
+    - ['P SSC1 C +BLE:AddWhiteList,Success']
+  - - "SSC SSC1 ble -W -z get"
+    - ['P SSC1 C +BLE:GetWhiteList,OK,0']
+  - - "SSC SSC1 ble -W -a c0:9b:0e:36:6d:7c -z add"
+    - ['P SSC1 C +BLE:AddWhiteList,Fail']
similarity index 55%
rename from components/idf_test/integration_test/IT_BTSTK_GATT.yml
rename to components/idf_test/integration_test/TC_IT_BTSTK_GATT.yml
index 1139d18b50b7ffe7ad7b4f15778fc12adb072b09..6e153fb58af6e5426c3568886563fb8132ad4196 100644 (file)
@@ -1,10 +1,45 @@
-test cases:
-- ID: BTSTK_GATT_01001
+.GATT_CASE: &GATT_CASE
   SDK: ESP32_IDF
   Test App: SSC_BLE
   auto test: 'Yes'
   category: Function
   test point 1: basic function
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+
+.primary_service_discovery: &primary_service_discovery
+  LIST_MERGE:
+    - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+      - ["R SSC1 C +GATTC:Discover,OK"]
+
+.included_service_connection: &included_service_connection
+  LIST_MERGE:
+    - - "SSC SSC2 gatts -S -z load -p 0xA1"
+      - ["R SSC2 C +GATTS:StartService,OK,A001"]
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ["R SSC1 C +BLE:GattcConnect,OK,0010", "R SSC2 C +BLE:GattsConnect"]
+    - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+      - ['R SSC1 C +GATTC:OK']
+
+.register_notify_c107: &register_notify_c107
+  LIST_MERGE:
+    - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
+      - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
+.register_indicate_c108: &register_indicate_c108
+  LIST_MERGE:
+    - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
+      - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+
+test cases:
+- ID: BTSTK_GATT_01001
+  <<: *GATT_CASE
   test point 2: BLE GATT server create service
   summary: create service, add char and descriptor and start service
   steps: |
@@ -13,23 +48,12 @@ test cases:
     1. succeed
   initial condition: BLE_INIT1
   test environment: SSC_T1_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
   - - "SSC SSC1 gatts -S -z load -p 0xA0"
     - ["R SSC1 C +GATTS:StartService,OK,A000"]
 - ID: BTSTK_GATT_01002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT server create service
   summary: create service and include another service
   steps: |
@@ -40,13 +64,6 @@ test cases:
     2. succeed
   initial condition: BLE_INIT1
   test environment: SSC_T1_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
   - - "SSC SSC1 gatts -S -z load -p 0xA0"
@@ -54,11 +71,7 @@ test cases:
   - - "SSC SSC1 gatts -S -z load -p 0xA1"
     - ["R SSC1 C +GATTS:StartService,OK,A001"]
 - ID: BTSTK_GATT_20001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client service / char discovery
   summary: GATT client discover primary service
   steps: |
@@ -72,34 +85,16 @@ test cases:
     3. succeed
     4. found service 0xA000 and 0xA001
   initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC2 gatts -S -z load -p 0xA0"
-    - ["R SSC2 C +GATTS:StartService,OK,A000"]
-  - - "SSC SSC2 gatts -S -z load -p 0xA1"
-    - ["R SSC2 C +GATTS:StartService,OK,A001"]
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
-  - - "SSC SSC1 gattc -F -r <dut2_bt_mac>"
-    - ['R SSC1 C +GATTC:OK']
+  - *included_service_connection
   - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
     - ["R SSC1 C +GATTC:DiscoverService,A000 C +GATTC:DiscoverService,A001"]
 - ID: BTSTK_GATT_20002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client service / char discovery
   summary: GATT client get included service
+  allow fail: 1/2
   steps: |
     1. DUT2 create preset service 0xA000
     2. DUT2 create preset service 0xA001
@@ -113,34 +108,411 @@ test cases:
     4. succeed
     5. get included service 0xA000 from service 0xA001
   initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC2 gatts -S -z load -p 0xA0"
-    - ["R SSC2 C +GATTS:StartService,OK,A000"]
-  - - "SSC SSC2 gatts -S -z load -p 0xA1"
-    - ["R SSC2 C +GATTS:StartService,OK,A001"]
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
-  - - "SSC SSC1 gattc -F -r <dut2_bt_mac>"
-    - ['R SSC1 C +GATTC:OK']
+  - *included_service_connection
   - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:DiscoverService,A000 C +GATTC:DiscoverService,A001"]
-  - - "SSC SSC1 gattc -D -z includedService -p 0x10 -s 0xA001"
+    - ["R SSC1 C +GATTC:DiscoverService,A000 A <handle_range>:GATTC:DiscoverService,A001,(\\d+-\\d+)"]
+  - - "SSC SSC1 gattc -D -z includedService -p 0x10 -s 0xA001 -i 0xA000 -q <handle_range> -k 1"
     - ["R SSC1 C +GATTC:IncludedService,0010,A001,A000"]
+- ID: BTSTK_GATT_60001
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server set char value and value length longer than max length
+  allow fail: 1/2
+  steps: |
+    1. DUT2 create service
+    2. DUT2 set value length
+  expected result: |
+    1. succeed
+    2. failed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z set -l 3"
+    - ["R SSC2 C +GATTS:SetAttrVal,ERROR"]
+- ID: BTSTK_GATT_60002
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server get short char value and long char value
+  allow fail: 1/2
+  steps: |
+    1. DUT2 create service
+    2. DUT2 get short char
+    3. DUT2 get long char
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,1,0x01"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,256"]
+- ID: BTSTK_GATT_60003
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server set char value and get value
+  steps: |
+    1. DUT2 create service
+    2. DUT2 set short char value
+    3. DUT2 get value
+    4. DUT2 set long char value
+    5. DUT2 get value
+    6. DUT2 set long char value
+    7. DUT2 get value
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z set -v 0x02"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,1,0x02"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -v 0x010203040506"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,6,0x010203040506"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -v 123456"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,6,0x313233343536"]
+- ID: BTSTK_GATT_60004
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server set special char value and get value
+  steps: |
+    1. DUT2 create service
+    2. DUT2 set char value
+    3. DUT2 get value
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -v JKLJGFD*^"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,9,0x4A4B4C4A4746442A5E"]
+- ID: BTSTK_GATT_60005
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server set char value length=0 and get value
+  steps: |
+    1. DUT2 create service
+    2. DUT2 set char value
+    3. DUT2 get value
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z set -l 0"
+    - ["R SSC2 C +GATTS:SetAttrVal,ERROR"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,1,0x01"]
+- ID: BTSTK_GATT_60006
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server only set char value length and get value
+  steps: |
+    1. DUT2 create service
+    2. DUT2 set char value
+    3. DUT2 get value
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -l 5"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,5"]
+- ID: BTSTK_GATT_60007
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set  value
+  summary: gattc write char value and gatts get
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write short char
+    3. DUT2 get value
+    4. DUT1 write longchar
+    5. DUT2 get value
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_CONN3
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C302", "R SSC1 C +GATTC:Write,OK,0010,A002,C302"]
+  - - "SSC SSC2 gatts -V -c 0xC302 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,1,0x01"]
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC304 -p 0x10 -l 256"
+    - ["P SSC1 C +GATTC:Write,OK,0010,A002,C304"]
+  - - "SSC SSC2 gatts -V -c 0xC304 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,256"]
+- ID: BTSTK_GATT_60008
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: gatts set char value and gattc read
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT2 set  short char value
+    3. DUT1 read
+    4. DUT2 set long char value
+    5. DUT1 read
+    6. DUT2 set long char length
+    7. DU1 read
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_CONN3
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z set -v 0x02"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,1", "R SSC1 C +GATTC:Read,OK,0010,A002,C300"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -v 0x02"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,1", "R SSC1 C +GATTC:Read,OK,0010,A002,C301"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -l 5"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,5", "R SSC1 C +GATTC:Read,OK,0010,A002,C301"]
+- ID: BTSTK_GATT_60009
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server set descriptor value and value length longer than max length
+  steps: |
+    1. DUT2 create service
+    2. DUT2 set descriptor value length
+  expected result: |
+    1. succeed
+    2. failed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z set -l 3"
+    - ["R SSC2 C +GATTS:SetAttrVal,ERROR"]
+- ID: BTSTK_GATT_60010
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server get short descriptor value
+  steps: |
+    1. DUT2 create service
+    2. DUT2 get short char
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,1,0x00"]
+- ID: BTSTK_GATT_60011
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server set descriptor value and get value
+  steps: |
+    1. DUT2 create service
+    2. DUT2 set descriptor value
+    3. DUT2 get value
+    4. DUT2 set descriptor value
+    5. DUT2 get value
+    6. DUT2 set descriptor value
+    7. DUT2 get value
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z set -v 0x02"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,1,0x02"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -v 0x010203040506"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,6,0x010203040506"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -v 123456"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,6,0x313233343536"]
+- ID: BTSTK_GATT_60012
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server set special descriptor value and get value
+  steps: |
+    1. DUT2 create service
+    2. DUT2 set descriptor value
+    3. DUT2 get value
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -v JKLJGFD*^"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,9,0x4A4B4C4A4746442A5E"]
+- ID: BTSTK_GATT_60013
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server set descriptor value length=0 and get value
+  steps: |
+    1. DUT2 create service
+    2. DUT2 set descriptor value
+    3. DUT2 get value
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z set -l 0"
+    - ["R SSC2 C +GATTS:SetAttrVal,ERROR"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,1,0x00"]
+- ID: BTSTK_GATT_60014
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: GATT server only set descriptor value length and get value
+  steps: |
+    1. DUT2 create service
+    2. DUT2 set char value
+    3. DUT2 get value
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ["R SSC2 C +GATTS:StartService,OK,A002"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -l 5"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,5"]
+- ID: BTSTK_GATT_60015
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set  value
+  summary: gattc write descriptor value and gatts get
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write short descriptor
+    3. DUT2 get value
+    4. DUT1 write long descriptor
+    5. DUT2 get value
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_CONN3
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC300 -d 0x2901 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C300,2901", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C300,2901"]
+  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,1,0x01"]
+  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10 -l 256"
+    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C301,2901"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z get"
+    - ["R SSC2 C +GATTS:GetAttrValue,256"]
+- ID: BTSTK_GATT_60016
+  <<: *GATT_CASE
+  test point 2: BLE GATT server get and set value
+  summary: gatts set value and gattc read
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT2 set short descriptor value
+    3. DUT1 read
+    4. DUT2 set long descriptor value
+    5. DUT1 read
+    6. DUT2 set long descriptor length
+    7. DU1 read
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_CONN3
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z set -v 0x02"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC300 -d 0x2901 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,2901,1", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C300,2901"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -v 0x02"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,2901,1", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C301,2901"]
+  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -l 5"
+    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,2901,5", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C301,2901"]
 - ID: BTSTK_GATT_21001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read short char
   steps: |
@@ -149,27 +521,13 @@ test cases:
   expected result: |
     1. succeed
     2. read succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC100 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,1", "R SSC1 C +GATTC:Read,OK,0010,A000,C100"]
 - ID: BTSTK_GATT_21002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read long char
   steps: |
@@ -178,27 +536,13 @@ test cases:
   expected result: |
     1. succeed
     2. read succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC101 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C101,256", "R SSC1 C +GATTC:Read,OK,0010,A000,C101"]
 - ID: BTSTK_GATT_21003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read short descriptor
   steps: |
@@ -207,27 +551,13 @@ test cases:
   expected result: |
     1. succeed
     2. read succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C107,2902,2", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A000,C107,2902"]
 - ID: BTSTK_GATT_21004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read long descriptor
   steps: |
@@ -236,27 +566,13 @@ test cases:
   expected result: |
     1. succeed
     2. read succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC100 -d 0x2901 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,2901,2", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A000,C100,2901"]
 - ID: BTSTK_GATT_21005
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read short char of an included service
   steps: |
@@ -272,36 +588,22 @@ test cases:
     4. succeed
     5. succeed
   initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC2 gatts -S -z load -p 0xA0"
-    - ["R SSC2 C +GATTS:StartService,OK,A000"]
   - - "SSC SSC2 gatts -S -z load -p 0xA1"
     - ["R SSC2 C +GATTS:StartService,OK,A001"]
   - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
+    - ["R SSC1 C +BLE:GattcConnect,OK,0010", "R SSC2 C +BLE:GattsConnect"]
   - - SSC SSC1 gattc -F -r <dut2_bt_mac>
     - ['R SSC1 C +GATTC:OK']
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC100 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,1", "R SSC1 C +GATTC:Read,OK,0010,A000,C100"]
 - ID: BTSTK_GATT_21006
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read short descriptor or an included service
+  allow fail: 1/2
   steps: |
     1. DUT2 create preset service 0xA000
     2. DUT2 create preset service 0xA001
@@ -315,34 +617,19 @@ test cases:
     4. succeed
     5. succeed
   initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC2 gatts -S -z load -p 0xA0"
-    - ["R SSC2 C +GATTS:StartService,OK,A000"]
   - - "SSC SSC2 gatts -S -z load -p 0xA1"
     - ["R SSC2 C +GATTS:StartService,OK,A001"]
   - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
+    - ["R SSC1 C +BLE:GattcConnect,OK,0010", "R SSC2 C +BLE:GattsConnect"]
   - - SSC SSC1 gattc -F -r <dut2_bt_mac>
     - ['R SSC1 C +GATTC:OK']
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C107,2902,2", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A000,C107,2902"]
 - ID: BTSTK_GATT_21007
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read auto reply short char created by table
   steps: |
@@ -352,26 +639,13 @@ test cases:
     1. succeed
     2. succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,1", "R SSC1 C +GATTC:Read,OK,0010,A002,C300"]
 - ID: BTSTK_GATT_21008
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read auto reply long char created by table
   steps: |
@@ -381,26 +655,13 @@ test cases:
     1. succeed
     2. succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,256", "R SSC1 C +GATTC:Read,OK,0010,A002,C301"]
 - ID: BTSTK_GATT_21009
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read app reply short char created by table
   steps: |
@@ -410,26 +671,13 @@ test cases:
     1. succeed
     2. succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC310 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C310,1", "R SSC1 C +GATTC:Read,OK,0010,A002,C310"]
 - ID: BTSTK_GATT_21010
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read app reply long char created by table
   steps: |
@@ -439,26 +687,13 @@ test cases:
     1. succeed
     2. succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC311 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C311,256", "R SSC1 C +GATTC:Read,OK,0010,A002,C311"]
 - ID: BTSTK_GATT_21011
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read auto reply short descriptor created by table
   steps: |
@@ -468,26 +703,13 @@ test cases:
     1. succeed
     2. succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC300 -d 0x2901 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,2901,1", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C300,2901"]
 - ID: BTSTK_GATT_21012
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read auto reply long descriptor created by table
   steps: |
@@ -497,26 +719,13 @@ test cases:
     1. succeed
     2. succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,2901,256", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C301,2901"]
 - ID: BTSTK_GATT_21013
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read app reply short descriptor created by table
   steps: |
@@ -526,26 +735,13 @@ test cases:
     1. succeed
     2. succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC310 -d 0x2901 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C310,2901,1", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C310,2901"]
 - ID: BTSTK_GATT_21014
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client read char and descriptor
   summary: GATT client read app reply long descriptor created by table
   steps: |
@@ -555,26 +751,13 @@ test cases:
     1. succeed
     2. succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC311 -d 0x2901 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C311,2901,256", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C311,2901"]
 - ID: BTSTK_GATT_22001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write with response to a short char with response
   steps: |
@@ -583,27 +766,13 @@ test cases:
   expected result: |
     1. succeed
     2. write succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v 0x01"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C102", "R SSC1 C +GATTC:Write,OK,0010,A000,C102"]
 - ID: BTSTK_GATT_22002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write without response to a short char without response
   steps: |
@@ -612,29 +781,15 @@ test cases:
   expected result: |
     1. succeed
     2. write succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC103 -p 0x10 -v 0x01 -w 1"
     - - "P SSC1 C +GATTC:WriteOnce,0010,A000,C103"
       - "P SSC2 C +GATTS:Write,OK,A000,C103"
       - "P SSC1 C +GATTC:Write,OK,0010,A000,C103"
 - ID: BTSTK_GATT_22003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client prepare write and do execute
   steps: |
@@ -643,27 +798,13 @@ test cases:
   expected result: |
     1. succeed
     2. write succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longChar -s 0xA000 -c 0xC110 -p 0x10 -l 256"
     - ["P SSC1 C +GATTC:Write,OK,0010,A000,C110"]
 - ID: BTSTK_GATT_22004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client prepare write and do cancel
   steps: |
@@ -672,29 +813,15 @@ test cases:
   expected result: |
     1. succeed
     2. write succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longChar -s 0xA000 -c 0xC110 -p 0x10 -l 256 -e 0"
     - ["P SSC1 C +GATTC:Write,OK,0010,A000,C110"]
   - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC110 -p 0x10 -l 256 -e 0"
     - ["P SSC1 C +GATTC:Write,OK,0010,A000,C110"]
 - ID: BTSTK_GATT_22005
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to a short descriptor
   steps: |
@@ -703,27 +830,13 @@ test cases:
   expected result: |
     1. succeed
     2. write succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
 - ID: BTSTK_GATT_22006
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to long descriptor and execute
   steps: |
@@ -732,27 +845,13 @@ test cases:
   expected result: |
     1. succeed
     2. write succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA000 -c 0xC100 -d 0x2901 -p 0x10 -l 256"
     - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C100,2901"]
 - ID: BTSTK_GATT_22007
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to long descriptor using write API
   steps: |
@@ -761,29 +860,16 @@ test cases:
   expected result: |
     1. succeed
     2. write succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC100 -d 0x2901 -p 0x10 -l 256"
-    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C100,2901"]
-- ID: BTSTK_GATT_22008
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C100,2901"]
+- ID: BTSTK_GATT_22008
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to an included char
+  allow fail: 1/2
   steps: |
     1. DUT2 create preset service 0xA000
     2. DUT2 create preset service 0xA001
@@ -797,34 +883,19 @@ test cases:
     4. succeed
     5. succeed
   initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC2 gatts -S -z load -p 0xA0"
-    - ["R SSC2 C +GATTS:StartService,OK,A000"]
   - - "SSC SSC2 gatts -S -z load -p 0xA1"
     - ["R SSC2 C +GATTS:StartService,OK,A001"]
   - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
+    - ["R SSC1 C +BLE:GattcConnect,OK,0010", "R SSC2 C +BLE:GattsConnect"]
   - - SSC SSC1 gattc -F -r <dut2_bt_mac>
     - ['R SSC1 C +GATTC:OK']
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v 0x01"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C102", "R SSC1 C +GATTC:Write,OK,0010,A000,C102"]
 - ID: BTSTK_GATT_22009
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to an included descriptor
   steps: |
@@ -840,36 +911,22 @@ test cases:
     4. succeed
     5. succeed
   initial condition: BLE_INIT2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC2 gatts -S -z load -p 0xA0"
-    - ["R SSC2 C +GATTS:StartService,OK,A000"]
   - - "SSC SSC2 gatts -S -z load -p 0xA1"
     - ["R SSC2 C +GATTS:StartService,OK,A001"]
   - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
+    - ["R SSC1 C +BLE:GattcConnect,OK,0010", "R SSC2 C +BLE:GattsConnect"]
   - - SSC SSC1 gattc -F -r <dut2_bt_mac>
     - ['R SSC1 C +GATTC:OK']
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
 - ID: BTSTK_GATT_22010
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write with response to auto reply short char with response created by table
+  allow fail: 1/2
   steps: |
     1. DUT1 do service discovery
     2. GATT client write with response to auto reply short char with response created by table
@@ -877,26 +934,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v 0x01"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C302", "R SSC1 C +GATTC:Write,OK,0010,A002,C302"]
 - ID: BTSTK_GATT_22011
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write without response to auto reply short char without response created by table
   steps: |
@@ -906,28 +950,15 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC303 -p 0x10 -v 0x01 -w 1"
     - - "P SSC1 C +GATTC:WriteOnce,0010,A002,C303"
       - "P SSC2 C +GATTS:Write,OK,A002,C303"
       - "P SSC1 C +GATTC:Write,OK,0010,A002,C303"
 - ID: BTSTK_GATT_22012
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client prepare write and do execute to auto reply char created by table
   steps: |
@@ -937,26 +968,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC304 -p 0x10 -l 256"
     - ["P SSC1 C +GATTC:Write,OK,0010,A002,C304"]
 - ID: BTSTK_GATT_22013
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client prepare write and do cancel to auto reply char created by table
   steps: |
@@ -966,26 +984,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC304 -p 0x10 -l 256 -e 0"
     - ["P SSC1 C +GATTC:Write,OK,0010,A002,C304"]
 - ID: BTSTK_GATT_22014
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to auto reply short descriptor created by table
   steps: |
@@ -995,26 +1000,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC300 -d 0x2901 -p 0x10 -v 0x01"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C300,2901", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C300,2901"]
 - ID: BTSTK_GATT_22015
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to auto reply long descriptor created by table
   steps: |
@@ -1024,26 +1016,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10 -l 256"
     - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C301,2901"]
 - ID: BTSTK_GATT_22016
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to auto reply long descriptor created by table and cancel
   steps: |
@@ -1053,26 +1032,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10 -l 256 -e 0"
     - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C301,2901"]
 - ID: BTSTK_GATT_22017
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write with response to app reply short char with response created by table
   steps: |
@@ -1082,26 +1048,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC312 -p 0x10 -v 0x01"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C312", "R SSC1 C +GATTC:Write,OK,0010,A002,C312"]
 - ID: BTSTK_GATT_22018
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write without response to app reply short char without response created by table
   steps: |
@@ -1111,28 +1064,15 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC313 -p 0x10 -v 0x01 -w 1"
     - - "P SSC1 C +GATTC:WriteOnce,0010,A002,C313"
       - "P SSC2 C +GATTS:Write,OK,A002,C313"
       - "P SSC1 C +GATTC:Write,OK,0010,A002,C313"
 - ID: BTSTK_GATT_22019
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client prepare write and do execute to app reply char created by table
   steps: |
@@ -1142,26 +1082,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC314 -p 0x10 -l 256"
     - ["P SSC1 C +GATTC:Write,OK,0010,A002,C314"]
 - ID: BTSTK_GATT_22020
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client prepare write and do cancel to app reply char created by table
   steps: |
@@ -1171,26 +1098,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC314 -p 0x10 -l 256 -e 0"
     - ["P SSC1 C +GATTC:Write,OK,0010,A002,C314"]
 - ID: BTSTK_GATT_22021
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to app reply short descriptor created by table
   steps: |
@@ -1200,26 +1114,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC310 -d 0x2901 -p 0x10 -v 0x01"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C310,2901", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C310,2901"]
 - ID: BTSTK_GATT_22022
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to app reply long descriptor created by table
   steps: |
@@ -1229,26 +1130,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC311 -d 0x2901 -p 0x10 -l 256"
     - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C311,2901"]
 - ID: BTSTK_GATT_22023
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client write char and descriptor
   summary: GATT client write to app reply long descriptor created by table and cancel
   steps: |
@@ -1258,26 +1146,13 @@ test cases:
     1. succeed
     2. write succeed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC311 -d 0x2901 -p 0x10 -l 256 -e 0"
     - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C311,2901"]
 - ID: BTSTK_GATT_23001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client receive notify and indication
   summary: GATT client register/unregister notify
   steps: |
@@ -1288,33 +1163,17 @@ test cases:
     1. succeed
     2. succeed
     3. succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+  - *primary_service_discovery
+  - *register_notify_c107
+  - *register_indicate_c108
   - - "SSC SSC1 gattc -N -z unregister -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
     - ["R SSC1 C +GATTC:UnRegNotify,OK,0010,A000,C107"]
   - - "SSC SSC1 gattc -N -z unregister -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
     - ["R SSC1 C +GATTC:UnRegNotify,OK,0010,A000,C108"]
 - ID: BTSTK_GATT_23002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client receive notify and indication
   summary: GATT client receive notify
   steps: |
@@ -1325,31 +1184,16 @@ test cases:
     1. succeed
     2. succeed
     3. DUT1 recv notify
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
-  - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
+  - ""
+  - *primary_service_discovery
+  - *register_notify_c107
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
   - - "SSC SSC2 gatts -N -c 0xC107 -p 0xA0 -v 0x01"
     - ["R SSC1 C +GATTC:Notification,0010,A000,C107,1"]
 - ID: BTSTK_GATT_23003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client receive notify and indication
   summary: GATT client receive indication
   steps: |
@@ -1360,31 +1204,16 @@ test cases:
     1. succeed
     2. succeed
     3. DUT1 recv indication
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+  - *primary_service_discovery
+  - *register_indicate_c108
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC108 -d 0x2902 -p 0x10 -v 0x0002"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C108,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C108,2902"]
   - - "SSC SSC2 gatts -I -c 0xC108 -p 0xA0 -v 0x01"
     - ["R SSC1 C +GATTC:Indication,0010,A000,C108,1"]
 - ID: BTSTK_GATT_23004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client receive notify and indication
   summary: GATT client can't receive notification/indication without write to CCC
   steps: |
@@ -1395,23 +1224,11 @@ test cases:
     1. succeed
     2. succeed
     3. DUT1 can recv notify and indication (this is aganist Spec, but a reasonable behavior in bluedroid)
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+  - *primary_service_discovery
+  - *register_notify_c107
+  - *register_indicate_c108
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0000"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
   - - "SSC SSC2 gatts -N -c 0xC107 -p 0xA0 -v 0x01"
@@ -1419,11 +1236,7 @@ test cases:
   - - "SSC SSC2 gatts -I -c 0xC108 -p 0xA0 -v 0x01"
     - ["P SSC1 C +GATTC:Indication,0010,A000,C108,1"]
 - ID: BTSTK_GATT_23005
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client receive notify and indication
   summary: GATT client receive notify on auto reply notify char created by table
   steps: |
@@ -1435,18 +1248,9 @@ test cases:
     2. succeed
     3. DUT1 recv notify
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut2_bt_mac>"
     - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C305"]
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC305 -d 0x2902 -p 0x10 -v 0x0100"
@@ -1454,11 +1258,7 @@ test cases:
   - - "SSC SSC2 gatts -N -c 0xC305 -p 0xA2 -v 0x01"
     - ["R SSC1 C +GATTC:Notification,0010,A002,C305,1"]
 - ID: BTSTK_GATT_23006
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client receive notify and indication
   summary: GATT client receive indication on auto reply indication char created by table
   steps: |
@@ -1470,18 +1270,9 @@ test cases:
     2. succeed
     3. DUT1 recv indication
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut2_bt_mac>"
     - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C306"]
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC306 -d 0x2902 -p 0x10 -v 0x0002"
@@ -1489,11 +1280,7 @@ test cases:
   - - "SSC SSC2 gatts -I -c 0xC306 -p 0xA2 -v 0x01"
     - ["R SSC1 C +GATTC:Indication,0010,A002,C306,1"]
 - ID: BTSTK_GATT_23007
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client receive notify and indication
   summary: GATT client can't receive notification/indication without write to CCC
   steps: |
@@ -1505,18 +1292,9 @@ test cases:
     2. succeed
     3. DUT1 can recv notify and indication (this is aganist Spec, but a reasonable behavior in bluedroid)
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut2_bt_mac>"
     - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C305"]
   - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut2_bt_mac>"
@@ -1526,11 +1304,7 @@ test cases:
   - - "SSC SSC2 gatts -I -c 0xC306 -p 0xA2 -v 0x01"
     - ["P SSC1 C +GATTC:Indication,0010,A002,C306,1"]
 - ID: BTSTK_GATT_23008
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client receive notify and indication
   summary: GATT client receive notify on app reply notify char created by table
   steps: |
@@ -1542,18 +1316,9 @@ test cases:
     2. succeed
     3. DUT1 recv notify
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC315 -p 0x10 -r <dut2_bt_mac>"
     - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C315"]
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC315 -d 0x2902 -p 0x10 -v 0x0100"
@@ -1561,11 +1326,7 @@ test cases:
   - - "SSC SSC2 gatts -N -c 0xC315 -p 0xA2 -v 0x01"
     - ["R SSC1 C +GATTC:Notification,0010,A002,C315,1"]
 - ID: BTSTK_GATT_23009
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client receive notify and indication
   summary: GATT client receive indication on app reply indication char created by table
   steps: |
@@ -1577,18 +1338,9 @@ test cases:
     2. succeed
     3. DUT1 recv indication
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC316 -p 0x10 -r <dut2_bt_mac>"
     - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C316"]
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC316 -d 0x2902 -p 0x10 -v 0x0002"
@@ -1596,11 +1348,7 @@ test cases:
   - - "SSC SSC2 gatts -I -c 0xC316 -p 0xA2 -v 0x01"
     - ["R SSC1 C +GATTC:Indication,0010,A002,C316,1"]
 - ID: BTSTK_GATT_23010
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client receive notify and indication
   summary: GATT client can't receive notification/indication without write to CCC
   steps: |
@@ -1612,18 +1360,9 @@ test cases:
     2. succeed
     3. DUT1 can recv notify and indication (this is aganist Spec, but a reasonable behavior in bluedroid)
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC315 -p 0x10 -r <dut2_bt_mac>"
     - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C315"]
   - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC316 -p 0x10 -r <dut2_bt_mac>"
@@ -1633,11 +1372,7 @@ test cases:
   - - "SSC SSC2 gatts -I -c 0xC316 -p 0xA2 -v 0x01"
     - ["P SSC1 C +GATTC:Indication,0010,A002,C316,1"]
 - ID: BTSTK_GATT_24001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid read
   summary: GATT client read to a char without read property
   steps: |
@@ -1646,27 +1381,13 @@ test cases:
   expected result: |
     1. succeed
     2. failed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC103 -p 0x10"
     - ["P SSC1 C +GATTC:Read,ERROR"]
 - ID: BTSTK_GATT_24002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid read
   summary: GATT client read to a descriptor without read property
   steps: |
@@ -1675,27 +1396,13 @@ test cases:
   expected result: |
     1. succeed
     2. failed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC102 -d 0x2901 -p 0x10"
     - ["P SSC1 C +GATTC:Read,ERROR"]
 - ID: BTSTK_GATT_24003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid read
   summary: GATT client read to a char without read property created by table
   steps: |
@@ -1707,28 +1414,15 @@ test cases:
     2. failed
     3. failed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC302 -p 0x10"
     - ["P SSC1 C +GATTC:Read,ERROR"]
   - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC312 -p 0x10"
     - ["P SSC1 C +GATTC:Read,ERROR"]
 - ID: BTSTK_GATT_24004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid read
   summary: GATT client read to a descriptor without read property created by table
   steps: |
@@ -1740,28 +1434,15 @@ test cases:
     2. failed
     3. failed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC303 -d 0x2901 -p 0x10"
     - ["P SSC1 C +GATTC:Read,ERROR"]
   - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC313 -d 0x2901 -p 0x10"
     - ["P SSC1 C +GATTC:Read,ERROR"]
 - ID: BTSTK_GATT_25001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client write with response to a char without write property
   steps: |
@@ -1770,26 +1451,13 @@ test cases:
   expected result: |
     1. succeed
     2. failed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC100 -p 0x10 -l 1"
     - ["R SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_25002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
+  <<: *GATT_CASE
   test point 1: basic function
   test point 2: BLE GATT client do invalid write
   summary: GATT client write without response to a char without write property
@@ -1799,27 +1467,13 @@ test cases:
   expected result: |
     1. succeed
     2. succeed (write without response always succeed)
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC100 -p 0x10 -l 1 -w 1"
     - ["R SSC1 C +GATTC:Write,OK"]
 - ID: BTSTK_GATT_25003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client write to a descriptor without write property
   steps: |
@@ -1828,27 +1482,13 @@ test cases:
   expected result: |
     1. succeed
     2. failed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC101 -d 0x2901 -p 0x10 -l 1"
     - ["R SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_25004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client prepare write to a char without write property
   steps: |
@@ -1857,27 +1497,13 @@ test cases:
   expected result: |
     1. succeed
     2. failed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longChar -s 0xA000 -c 0xC100 -p 0x10 -l 256"
     - ["R SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_25005
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client prepare write to a descriptor without write property
   steps: |
@@ -1886,27 +1512,13 @@ test cases:
   expected result: |
     1. succeed
     2. failed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA000 -c 0xC101 -d 0x2901 -p 0x10 -l 256"
     - ["R SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_25006
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client write with response to a char not send response
   steps: |
@@ -1915,27 +1527,13 @@ test cases:
   expected result: |
     1. succeed
     2. failed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC103 -p 0x10 -v 0x01"
     - ["R SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_25007
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client write without response to a char will send response
   steps: |
@@ -1944,27 +1542,13 @@ test cases:
   expected result: |
     1. succeed
     2. succeed (write without response always succeed)
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v -x01 -w 1"
     - ["P SSC1 C +GATTC:WriteOnce"]
 - ID: BTSTK_GATT_25008
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client write with response to a char without write property created by table
   steps: |
@@ -1976,28 +1560,15 @@ test cases:
     2. failed
     3. failed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC300 -p 0x10 -l 1"
     - ["R SSC1 C +GATTC:Write,ERROR"]
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC310 -p 0x10 -l 1"
     - ["R SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_25009
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client write without response to a char created by table without write property
   steps: |
@@ -2009,28 +1580,15 @@ test cases:
     2. succeed (write without response always succeed)
     3. succeed (write without response always succeed)
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC300 -p 0x10 -l 1 -w 1"
     - ["R SSC1 C +GATTC:Write,OK"]
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC300 -p 0x10 -l 1 -w 1"
     - ["R SSC1 C +GATTC:Write,OK"]
 - ID: BTSTK_GATT_25010
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client write to a descriptor created by table without write property
   steps: |
@@ -2042,28 +1600,15 @@ test cases:
     2. failed
     3. failed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC302 -d 0x2901 -p 0x10 -l 1"
     - ["R SSC1 C +GATTC:Write,ERROR"]
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC312 -d 0x2901 -p 0x10 -l 1"
     - ["R SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_25011
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client prepare write to a char created by table without write property
   steps: |
@@ -2075,28 +1620,15 @@ test cases:
     2. failed
     3. failed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC300 -p 0x10 -l 256"
     - ["R SSC1 C +GATTC:Write,ERROR"]
   - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC310 -p 0x10 -l 256"
     - ["R SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_25012
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client prepare write to a descriptor created by table without write property
   steps: |
@@ -2108,28 +1640,15 @@ test cases:
     2. failed
     3. failed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC302 -d 0x2901 -p 0x10 -l 256"
     - ["R SSC1 C +GATTC:Write,ERROR"]
   - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC312 -d 0x2901 -p 0x10 -l 256"
     - ["R SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_25013
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client write with response to a char created by table not send response
   steps: |
@@ -2138,31 +1657,18 @@ test cases:
     3. DUT1 write with response to app reply char created by table not send response
   expected result: |
     1. succeed
-    2. succeed
-    3. succeed
+    2. succeed(BLE Spec do not define the behavior of this case. IDF implementation will return success when GATTC write with response and recv response from remote side)
+    3. failed
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC303 -p 0x10 -v 0x01"
-    - ["R SSC1 C +GATTC:Write,ERROR"]
+    - ["R SSC1 C +GATTC:Write,OK,0010,A002,C303"]
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC313 -p 0x10 -v 0x01"
     - ["R SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_25014
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client write without response to a char created by table will send response
   steps: |
@@ -2174,28 +1680,15 @@ test cases:
     2. succeed (write without response always succeed)
     3. succeed (write without response always succeed)
   initial condition: BLE_CONN3
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-02-09)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v -x01 -w 1"
     - ["R SSC1 C +GATTC:Write,OK"]
   - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v -x01 -w 1"
     - ["R SSC1 C +GATTC:Write,OK"]
 - ID: BTSTK_GATT_25015
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client do invalid write
   summary: GATT client use write API write to a char won't reply prepare write event
   steps: |
@@ -2204,29 +1697,47 @@ test cases:
   expected result: |
     1. succeed
     2. failed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-06-07)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 256"
     - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25016
+  <<: *GATT_CASE
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write long char value length longer than max length
+  initial condition: BLE_CONN3
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write char value
+  expected result: |
+    1. succeed
+    2. failed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC304 -p 0x10 -l 260"
+    - ["P SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25017
+  <<: *GATT_CASE
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write short char value length longer than max length
+  initial condition: BLE_CONN3
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write char value
+  expected result: |
+    1. succeed
+    2. failed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -l 2"
+    - ["P SSC1 C +GATTC:Write,ERROR"]
 - ID: BTSTK_GATT_26001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+  <<: *GATT_CASE
   test point 2: BLE GATT client set mtu
-  summary: GATT client set different mtu size
+  summary: GATT client config different mtu size
   steps: |
     1. set mtu size 22
     2. set mtu size 23
@@ -2237,17 +1748,10 @@ test cases:
     2. succeed
     3. succeed
     4. failed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ["P SSC1 C +BLE:GattcDisconnect,OK", "P SSC2 C +BLE:GattsDisconnect,OK"]
   - - "SSC SSC1 gattc -S -m 22 "
     - ["R SSC1 C +GATTC:ERROR"]
   - - "SSC SSC1 gattc -S -m 23"
@@ -2257,13 +1761,9 @@ test cases:
   - - "SSC SSC1 gattc -S -m 518"
     - ["R SSC1 C +GATTC:ERROR"]
 - ID: BTSTK_GATT_26002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GATT Server set mtu
-  summary: GATT Server set different mtu size
+  <<: *GATT_CASE
+  test point 2: BLE GATT server set mtu
+  summary: GATT server config different mtu size
   steps: |
     1. set mtu size 22
     2. set mtu size 23
@@ -2274,333 +1774,592 @@ test cases:
     2. succeed
     3. succeed
     4. failed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC2 gatts -C -m 22 "
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ["P SSC1 C +BLE:GattcDisconnect,OK", "P SSC2 C +BLE:GattsDisconnect,OK"]
+  - - "SSC SSC2 gatts -C -m 22"
     - ["R SSC2 C +GATTS:ERROR"]
   - - "SSC SSC2 gatts -C -m 23"
     - ["R SSC2 C +GATTS:OK"]
-  - - "SSC SSC2 gatts -C -m 517"
-    - ["R SSC2 C +GATTS:OK"]
-  - - "SSC SSC2 gatts -C -m 518"
-    - ["R SSC2 C +GATTS:ERROR"]
-- ID: BTSTK_GATT_26003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GATT client config mtu
-  summary: GATT client set mtu size 500 and client send req
-  steps: |
-    1. client set mtu size 500
-    2. client config mtu
-  expected result: |
-    1. succeed
-    2. succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC1 gattc -S -m 500 "
-    - ["R SSC1 C +GATTC:OK"]
-  - - "SSC SSC1 gattc -C"
-    - ["R SSC1 C +GATTC:OK","P SSC[1-2] C ConfigMTU,OK,500"]
-- ID: BTSTK_GATT_26004
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GATT client config mtu
-  summary: GATT server set mtu size 365 and client send req
-  steps: |
-    1. server set mtu size 365
-    2. client config mtu
-  expected result: |
-    1. succeed
-    2. succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - ""
-  - - "SSC SSC2 gatts -C -m 365 "
-    - ["R SSC2 C +GATTS:OK"]
-  - - "SSC SSC1 gattc -C"
-    - ["R SSC1 C +GATTC:OK","P SSC[1-2] C ConfigMTU,OK,365"]
-- ID: BTSTK_GATT_26005
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
-  test point 2: BLE GATT client config mtu
-  summary: GATT client set mtu as 365 and server set mtu as 261
+  - - "SSC SSC2 gatts -C -m 517"
+    - ["R SSC2 C +GATTS:OK"]
+  - - "SSC SSC2 gatts -C -m 518"
+    - ["R SSC2 C +GATTS:ERROR"]
+- ID: BTSTK_GATT_26003
+  <<: *GATT_CASE
+  test point 2: BLE GATT config mtu
+  summary: GATT client and server config different mtu size
   steps: |
-    1. client and server set different mtu size
+    1. client set mtu size 365 and server set mtu size 261
     2. client config mtu
-  expected result: |
+  expected result:
     1. succeed
     2. succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -S -m 365 "
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ["P SSC1 C +BLE:GattcDisconnect,OK", "P SSC2 C +BLE:GattsDisconnect,OK"]
+  - - "SSC SSC1 gattc -S -m 365"
     - ["R SSC1 C +GATTC:OK"]
-  - - "SSC SSC2 gatts -C -m 261 "
+  - - "SSC SSC2 gatts -C -m 261"
     - ["R SSC2 C +GATTS:OK"]
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
   - - "SSC SSC1 gattc -C"
     - ["R SSC1 C +GATTC:OK","P SSC[1-2] C ConfigMTU,OK,261"]
-- ID: BTSTK_GATT_26006
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+- ID: BTSTK_GATT_26004
+  <<: *GATT_CASE
   test point 2: BLE GATT client config mtu
   summary: GATT read write on mtu size 261
+  allow fail: 1/2
   steps: |
-    1. server and client set mtu size 261
+    1. config mtu size 261
     2. do read
     3. do write
   expected result: |
     1. succeed
     2. succeed
     3. succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ["P SSC1 C +BLE:GattcDisconnect,OK", "P SSC2 C +BLE:GattsDisconnect,OK"]
   - - "SSC SSC1 gattc -S -m 261"
     - ["R SSC1 C +GATTC:OK"]
   - - "SSC SSC2 gatts -C -m 261"
     - ["R SSC2 C +GATTS:OK"]
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
   - - "SSC SSC1 gattc -C"
-    - ["P SSC1 C +GATTC:OK", "P SSC[1-2] C ConfigMTU,OK,261"]
+    - ["R SSC1 C +GATTC:OK","P SSC[1-2] C ConfigMTU,OK,261"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C101,256"]
   - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 256"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C109"]
   - - "SSC SSC1 gattc -W -z longChar -p 0x10 -s 0xA000 -c 0xC110 -l 512"
     - ["R SSC1 C +GATTC:Write,OK,0010,A000,C110", "P SSC2 C +GATTS:ReliableWrite,OK"]
-- ID: BTSTK_GATT_26007
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Function
-  test point 1: basic function
+- ID: BTSTK_GATT_26005
+  <<: *GATT_CASE
   test point 2: BLE GATT client config mtu
-  summary: GATT read write on mtu size 512
+  summary: GATT read write on mtu size 517
+  allow fail: 1/2
   steps: |
-    1. server and client set mtu size 261
+    1. config mtu size 517
     2. do read
     3. do write
   expected result: |
     1. succeed
     2. succeed
     3. succeed
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 0
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "SSC SSC2 gatts -C -m 517"
-    - ["R SSC2 C +GATTS:OK"]
+  - - "SSC SSC1 bleconn -D  -p 0x10"
+    - ["P SSC1 C +BLE:GattcDisconnect,OK", "P SSC2 C +BLE:GattsDisconnect,OK"]
   - - "SSC SSC1 gattc -S -m 517"
     - ["R SSC1 C +GATTC:OK"]
+  - - "SSC SSC2 gatts -C -m 517"
+    - ["R SSC2 C +GATTS:OK"]
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
   - - "SSC SSC1 gattc -C"
     - ["P SSC1 C +GATTC:OK", "P SSC[1-2] C ConfigMTU,OK,517"]
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C101,256"]
   - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 256"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C109"]
-  - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 514"
+  - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 512"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C109"]
-- ID: BTSTK_GATT_50001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Stress
-  test point 1: stress
-  test point 2: BLE GATT stress test
-  summary: GATT read char stress test
+- ID: BTSTK_GATT_30001
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection service discovery test
+  summary: do primary service discovery when DUT1 role is master, connected with 4 slaves
   steps: |
-    1. update connection parameter for better performance
-    2. do primary service discovery
-    3. do read short char 500 times
-    4. do read long char 500 times
-    5. loop step 3-4
+    1. DUT1 do primary service discovery on DUT[2-5]
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - LOOP 4 1 "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+- ID: BTSTK_GATT_30002
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection service discovery test
+  summary: do primary service discovery when DUT1 is slave, connected by 4 masters
+  steps: |
+    1. DUT[2-5] do primary service discovery
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN6
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC[2-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:Discover,OK"]
+- ID: BTSTK_GATT_30003
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection service discovery test
+  summary: do primary service discovery when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
+  steps: |
+    1. DUT1 do primary service discovery for DUT[2-3]
+    2. DUT[4-5] do primary service discovery for DUT1
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN7
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - LOOP 2 1 "[2,3]"
+    - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC[4-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:Discover,OK"]
+- ID: BTSTK_GATT_30004
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection service discovery test
+  summary: do primary service discovery when master and slave both create GATTC and GATTS
+  steps: |
+    1. DUT1 do primary service discovery for DUT2
+    2. DUT2 do primary service discovery for DUT1
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN4
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC2 gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC2 C +GATTC:Discover,OK"]
+- ID: BTSTK_GATT_31001
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection read test
+  summary: do read when DUT1 role is master, connected with 4 slaves
+  steps: |
+    1. do primary service discovery
+    2. do read long and read short
+    3. loop step 1-2 for all DUTs
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_CONN5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - LOOP 4 3 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,1"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,256"]
+- ID: BTSTK_GATT_31002
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection read test
+  summary: do read when DUT1 is slave, connected by 4 masters
+  steps: |
+    1. do primary service discovery on DUT[2-5]
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN6
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC[2-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:Discover,OK"]
+  - - "SSC SSC[2-5] gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:ReadOnce,0010,A002,C300,1"]
+  - - "SSC SSC[2-5] gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:ReadOnce,0010,A002,C301,256"]
+- ID: BTSTK_GATT_31003
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection read test
+  summary: do read when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
+  steps: |
+    1. DUT1 do primary service discovery for DUT[2-3]
+    2. DUT1 do read on DUT[2-3]
+    3. DUT[4-5] do primary service discovery for DUT1
+    4. DUT[4-5] do read on DUT1
   expected result: |
     1. succeed
     2. succeed
     3. succeed
     4. succeed
-    5. no error detected
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 6
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
+  initial condition: BLE_CONN7
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - LOOP 2 3 "[2,3]" "[2,3]" "[2,3]"
+    - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,1"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,256"]
+  - - "SSC SSC[4-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:Discover,OK"]
+  - - "SSC SSC[4-5] gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:ReadOnce,0010,A002,C300,1"]
+  - - "SSC SSC[4-5] gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:ReadOnce,0010,A002,C301,256"]
+- ID: BTSTK_GATT_31004
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection read test
+  summary: do read when master and slave both create GATTC and GATTS
+  steps: |
+    1. DUT1 do primary service discovery for DUT2
+    2. DUT2 do primary service discovery for DUT1
+    3. DUT1 do read on DUT2
+    4. DUT2 do read on DUT1
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: BLE_CONN4
   cmd set:
   - ""
-  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -i 0x10-0x20 -l 0x10 -t 0x40"
-    - ["R SSC1 C OK"]
-  - - "DELAY 1"
-    - [""]
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+  - - "SSC SSC[1-2] gattc -D -z primaryService -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Discover,OK"]
+  - - "SSC SSC[1-2] gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:ReadOnce,0010,A002,C300,1"]
+  - - "SSC SSC[1-2] gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:ReadOnce,0010,A002,C301,256"]
+- ID: BTSTK_GATT_32001
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection write test
+  summary: do write when DUT1 role is master, connected with 4 slaves
+  steps: |
+    1. do primary service discovery
+    2. do write long and write short
+    3. loop step 1-2 for all DUTs
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_CONN5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - LOOP 4 3 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
     - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "LOOP 1000 4"
-  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC100 -n 100"
-    - ["R SSC1 C +GATTC:Read,OK,0010,A000,C100"]
-  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 100"
-    - ["R SSC1 C +GATTC:Read,OK,0010,A000,C101"]
-- ID: BTSTK_GATT_50002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Stress
-  test point 1: stress
-  test point 2: BLE GATT stress test
-  summary: GATT write char stress test
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -l 1 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Write,OK,0010,A002,C302"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC304 -l 256 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Write,OK,0010,A002,C304"]
+- ID: BTSTK_GATT_32002
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection write test
+  summary: do read when DUT1 is slave, connected by 4 masters
   steps: |
-    1. update connection parameter for better performance
-    2. do primary service discovery
-    3. do write short char 500 times
-    4. do prepare write char 500 times
-    5. loop step 3-5
+    1. do primary service discovery on DUT[2-5]
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN6
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC[2-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:Discover,OK"]
+  - - "SSC SSC[2-5] gattc -W -z char -s 0xA002 -c 0xC302 -l 1 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:Write,OK,0010,A002,C302"]
+  - - "SSC SSC[2-5] gattc -W -z char -s 0xA002 -c 0xC304 -l 256 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:Write,OK,0010,A002,C304"]
+- ID: BTSTK_GATT_32003
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection write test
+  summary: do write when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
+  steps: |
+    1. DUT1 do primary service discovery for DUT[2-3]
+    2. DUT1 do write on DUT[2-3]
+    3. DUT[4-5] do primary service discovery for DUT1
+    4. DUT[4-5] do write on DUT1
   expected result: |
     1. succeed
     2. succeed
     3. succeed
     4. succeed
-    5. no error detected
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 6
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
+  initial condition: BLE_CONN7
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - LOOP 2 3 "[2,3]" "[2,3]" "[2,3]"
+    - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -l 1 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Write,OK,0010,A002,C302"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC304 -l 256 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Write,OK,0010,A002,C304"]
+  - - "SSC SSC[4-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:Discover,OK"]
+  - - "SSC SSC[4-5] gattc -W -z char -s 0xA002 -c 0xC302 -l 1 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:Write,OK,0010,A002,C302"]
+  - - "SSC SSC[4-5] gattc -W -z char -s 0xA002 -c 0xC304 -l 256 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:Write,OK,0010,A002,C304"]
+- ID: BTSTK_GATT_32004
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection write test
+  summary: do read when master and slave both create GATTC and GATTS
+  steps: |
+    1. DUT1 do primary service discovery for DUT2
+    2. DUT2 do primary service discovery for DUT1
+    3. DUT1 do write on DUT2
+    4. DUT2 do write on DUT1
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: BLE_CONN4
   cmd set:
   - ""
-  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -i 0x10-0x20 -l 0x10 -t 0x40"
-    - ["R SSC1 C OK"]
-  - - "DELAY 1"
-    - [""]
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+  - - "SSC SSC[1-2] gattc -D -z primaryService -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Discover,OK"]
+  - - "SSC SSC[1-2] -W -z char -s 0xA002 -c 0xC302 -l 1 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Write,OK,0010,A002,C302"]
+  - - "SSC SSC[1-2] -W -z char -s 0xA002 -c 0xC304 -l 256 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Write,OK,0010,A002,C304"]
+- ID: BTSTK_GATT_33001
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection notify test
+  summary: do notify when DUT1 role is master, connected with 4 slaves
+  steps: |
+    1. do primary service discovery
+    2. do register nofity for char
+    3. do notify on DUT[2-5]
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 receive notification on DUT[2-5]
+  initial condition: BLE_CONN5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - LOOP 4 2 "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
     - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "LOOP 1000 4"
-  - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 1 -n 200"
-    - ["R SSC1 C +GATTC:Write,OK,0010,A000,C109"]
-  - - "SSC SSC1 gattc -W -z longChar -p 0x10 -s 0xA000 -c 0xC110 -l 256 -n 100"
-    - ["R SSC1 C +GATTC:Write,OK,0010,A000,C110"]
-- ID: BTSTK_GATT_50003
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
-  auto test: 'Yes'
-  category: Stress
-  test point 1: stress
-  test point 2: BLE GATT stress test
-  summary: GATT notify stress test
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C305"]
+  - - "SSC SSC[2-5] gatts -N -c 0xC305 -l 1 -p 0xA2 -r <dut1_bt_mac>"
+    - ['P SSC1 RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut[2-5]_bt_mac>)']
+- ID: BTSTK_GATT_33002
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection notify test
+  summary: do notify when DUT1 is slave, connected by 4 masters
   steps: |
-    1. update connection parameter for better performance
-    2. do primary service discovery
-    3. register notify
-    4. write to CCC
-    5. do notify
-    6. loop step 5
+    1. do primary service discovery on DUT[2-5]
+    2. DUT[2-5] do register notify
+    3. DUT1 do notify to DUT[2-5]
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT[2-5] receive notification
+  initial condition: BLE_CONN6
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC[2-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:Discover,OK"]
+  - - "SSC SSC[2-5] gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:RegNotify,OK,0010,A002,C305"]
+  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]"
+    - ['']
+  - - "SSC SSC1 gatts -N -c 0xC305 -l 1 -p 0xA2 -r <dut{%d}_bt_mac>"
+    - ['P SSC{%d} RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut1_bt_mac>)']
+- ID: BTSTK_GATT_33003
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection notify test
+  summary: do notify when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
+  steps: |
+    1. DUT1 do primary service discovery for DUT[2-3]
+    2. DUT1 register notify
+    3. DUT[2-3] send notify to DUT1
+    4. DUT[4-5] do primary service discovery for DUT1
+    5. DUT[4-5] register notify
+    6. DUT1 send notofy to DUT[4-5]
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 receive notify from DUT[2-3]
+    4. succeed
+    5. succeed
+    6. DUT[4-5] receive notify
+  initial condition: BLE_CONN7
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - LOOP 2 2 "[2,3]" "[2,3]"
+    - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C305"]
+  - - "SSC SSC[2-3] gatts -N -c 0xC305 -l 1 -p 0xA2 -r <dut1_bt_mac>"
+    - ['P SSC1 RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut[2-3]_bt_mac>)']
+  - - "SSC SSC[4-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:Discover,OK"]
+  - - "SSC SSC[4-5] gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:RegNotify,OK,0010,A002,C305"]
+  - - LOOP 2 1 "[4,5]" "[4,5]"
+    - ['']
+  - - "SSC SSC1 gatts -N -c 0xC305 -l 1 -p 0xA2 -r <dut{%d}_bt_mac>"
+    - ['P SSC{%d} RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut1_bt_mac>)']
+- ID: BTSTK_GATT_33004
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection notify test
+  summary: do read when master and slave both create GATTC and GATTS
+  steps: |
+    1. DUT1 do primary service discovery for DUT2
+    2. DUT2 do primary service discovery for DUT1
+    3. DUT[1-2] do register notify
+    4. DUT1 and DUT2 send notify to each other
   expected result: |
     1. succeed
     2. succeed
     3. succeed
+    4. receive notification
+  initial condition: BLE_CONN4
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] gattc -D -z primaryService -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Discover,OK"]
+  - - "SSC SSC[1-2] gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:RegNotify,OK,0010,A002,C305"]
+  - - "SSC SSC[1-2] gatts -N -c 0xC305 -l 1 -p 0xA2 -r <dut[2-1]_bt_mac>"
+    - ['P SSC[1,2] RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut[2,1]_bt_mac>)']
+- ID: BTSTK_GATT_34001
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection indicate test
+  summary: do notify when DUT1 role is master, connected with 4 slaves
+  steps: |
+    1. do primary service discovery
+    2. do register indication for char
+    3. do indicate on DUT[2-5]
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 receive indication on DUT[2-5]
+  initial condition: BLE_CONN5
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - LOOP 4 2 "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C306"]
+  - - "SSC SSC[2-5] gatts -I -c 0xC306 -l 1 -p 0xA2 -r <dut1_bt_mac>"
+    - ['P SSC1 RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut[2-5]_bt_mac>)']
+- ID: BTSTK_GATT_34002
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection indicate test
+  summary: do notify when DUT1 is slave, connected by 4 masters
+  steps: |
+    1. do primary service discovery on DUT[2-5]
+    2. DUT[2-5] do register indication
+    3. DUT1 do indicate to DUT[2-5]
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT[2-5] receive indication
+  initial condition: BLE_CONN6
+  test environment: SSC_T5_1
+  cmd set:
+  - ""
+  - - "SSC SSC[2-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:Discover,OK"]
+  - - "SSC SSC[2-5] gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[2-5] C +GATTC:RegNotify,OK,0010,A002,C306"]
+  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]"
+    - ['']
+  - - "SSC SSC1 gatts -I -c 0xC306 -l 1 -p 0xA2 -r <dut{%d}_bt_mac>"
+    - ['P SSC{%d} RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut1_bt_mac>)']
+- ID: BTSTK_GATT_34003
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection indicate test
+  summary: do notify when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
+  steps: |
+    1. DUT1 do primary service discovery for DUT[2-3]
+    2. DUT1 register indication
+    3. DUT[2-3] send indicate to DUT1
+    4. DUT[4-5] do primary service discovery for DUT1
+    5. DUT[4-5] register indication
+    6. DUT1 send indicate to DUT[4-5]
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 receive indication from DUT[2-3]
     4. succeed
-    5. receive at least once
-    6. no error detected
-  initial condition: BLE_CONN2
-  test environment: SSC_T2_1
-  execution time: 5
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2016-12-31)
-  CI ready: 'Yes'
-  level: Integration
-  allow fail: ''
+    5. succeed
+    6. DUT[4-5] receive indication
+  initial condition: BLE_CONN7
+  test environment: SSC_T5_1
   cmd set:
   - ""
-  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -i 0x10-0x20 -l 0x10 -t 0x40"
-    - ["R SSC1 C OK"]
-  - - "DELAY 1"
-    - [""]
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+  - - LOOP 2 2 "[2,3]" "[2,3]"
+    - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
     - ["R SSC1 C +GATTC:Discover,OK"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
-  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100 -n 1"
-    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
-  - - "LOOP 5000 1"
-    - [""]
-  - - "SSC SSC2 gatts -N -c 0xC107 -p 0xA0 -v 0x01 -n 100"
-    - ["P SSC2 C +GATTS:OK", "P SSC2 C +GATTS:Done,Notify,A000,C107"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut{%d}_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C306"]
+  - - "SSC SSC[2-3] gatts -I -c 0xC306 -l 1 -p 0xA2 -r <dut1_bt_mac>"
+    - ['P SSC1 RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut[2-3]_bt_mac>)']
+  - - "SSC SSC[4-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:Discover,OK"]
+  - - "SSC SSC[4-5] gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC[4-5] C +GATTC:RegNotify,OK,0010,A002,C306"]
+  - - LOOP 2 1 "[4,5]" "[4,5]"
+    - ['']
+  - - "SSC SSC1 gatts -I -c 0xC306 -l 1 -p 0xA2 -r <dut{%d}_bt_mac>"
+    - ['P SSC{%d} RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut1_bt_mac>)']
+- ID: BTSTK_GATT_34004
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection indicate test
+  summary: do read when master and slave both create GATTC and GATTS
+  steps: |
+    1. DUT1 do primary service discovery for DUT2
+    2. DUT2 do primary service discovery for DUT1
+    3. DUT[1-2] do register indication
+    4. DUT1 and DUT2 send notify to each other
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. receive indication
+  initial condition: BLE_CONN4
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] gattc -D -z primaryService -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Discover,OK"]
+  - - "SSC SSC[1-2] gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:RegNotify,OK,0010,A002,C306"]
+  - - "SSC SSC[1-2] gatts -I -c 0xC306 -l 1 -p 0xA2 -r <dut[2-1]_bt_mac>"
+    - ['P SSC[1,2] RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut[2,1]_bt_mac>)']
 - ID: BTSTK_GATT_40001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
+  <<: *GATT_CASE
   auto test: 'No'
-  category: Function
-  test point 1: function
   test point 2: test if BLE work after switch off some sub modules
   summary: GATTC only and GATTS only test
   steps: |
@@ -2628,14 +2387,8 @@ test cases:
     10. succeed
     11. succeed
   initial condition: None
-  test environment: SSC_T2_1
   execution time: 5
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-05-19)
   CI ready: 'No'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
   - - SSC SSC[1-2] reboot
@@ -2647,9 +2400,8 @@ test cases:
   - - SSC SSC2 gatts -S -z load -p 0xA0
     - ['R SSC2 C +GATTS:StartService,OK,A000']
   - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC100 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,1", "R SSC1 C +GATTC:Read,OK,0010,A000,C100"]
   - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v 0x01"
@@ -2658,10 +2410,8 @@ test cases:
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,2901,256", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A000,C100,2901"]
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+  - *register_notify_c107
+  - *register_indicate_c108
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0300 -n 1"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
   - - "SSC SSC2 gatts -N -c 0xC107 -p 0xA0 -v 0x01"
@@ -2669,11 +2419,8 @@ test cases:
   - - "SSC SSC2 gatts -I -c 0xC108 -p 0xA0 -v 0x01"
     - ["P SSC2 C +GATTS:Done,Indicate,A000,C108", "P SSC1 C +GATTC:Indication,0010,A000,C108,1"]
 - ID: BTSTK_GATT_40002
-  SDK: ESP32_IDF
-  Test App: SSC_BLE
+  <<: *GATT_CASE
   auto test: 'No'
-  category: Function
-  test point 1: function
   test point 2: test if BLE work after switch off some sub modules
   summary: GATTC_SMP only and GATTS_SMP only test
   steps: |
@@ -2701,14 +2448,8 @@ test cases:
     10. succeed
     11. succeed
   initial condition: None
-  test environment: SSC_T2_1
   execution time: 5
-  module: BT Stack
-  sub module: GATT
-  version: v1 (2017-05-19)
   CI ready: 'No'
-  level: Integration
-  allow fail: ''
   cmd set:
   - ""
   - - SSC SSC[1-2] reboot
@@ -2720,9 +2461,8 @@ test cases:
   - - SSC SSC2 gatts -S -z load -p 0xA0
     - ['R SSC2 C +GATTS:StartService,OK,A000']
   - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
-    - ['R SSC1 C +BLE:GattcConnect,OK']
-  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-    - ["R SSC1 C +GATTC:Discover,OK"]
+    - ['R SSC1 C +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
+  - *primary_service_discovery
   - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC100 -p 0x10"
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,1", "R SSC1 C +GATTC:Read,OK,0010,A000,C100"]
   - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v 0x01"
@@ -2731,13 +2471,125 @@ test cases:
     - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,2901,256", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A000,C100,2901"]
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
-  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
-    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+  - *register_notify_c107
+  - *register_indicate_c108
   - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0300 -n 1"
     - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
   - - "SSC SSC2 gatts -N -c 0xC107 -p 0xA0 -v 0x01"
     - ["P SSC2 C +GATTS:Done,Notify,A000,C107", "P SSC1 C +GATTC:Notification,0010,A000,C107,1"]
   - - "SSC SSC2 gatts -I -c 0xC108 -p 0xA0 -v 0x01"
     - ["P SSC2 C +GATTS:Done,Indicate,A000,C108", "P SSC1 C +GATTC:Indication,0010,A000,C108,1"]
+- ID: BTSTK_GATT_50001
+  <<: *GATT_CASE
+  category: Performance
+  test point 1: performance + stress
+  test point 2: BLE GATT performance test
+  summary: GATT read char performance test
+  initial condition: BLE_CONN3
+  Test App: SSC_BLE_PERF
+  steps: |
+    1. update connection parameter
+    2. do primary service discovery
+    3. do read char for some time
+  expected result: |
+    1. succeed
+    2. succeed
+    3. calculate throughput
+  execution time: 2
+  cmd set:
+  - "BLEStress/BLEGATTPerformance"
+  - - test_time = 120
+    - ""
+  - - mtu = 512
+    - ""
+  - - gatt_op = "read"
+    - ""
+  - - op_char = "0xC301"
+    - ""
+- ID: BTSTK_GATT_50002
+  <<: *GATT_CASE
+  category: Performance
+  test point 1: performance + stress
+  test point 2: BLE GATT performance test
+  summary: GATT write char performance test
+  initial condition: BLE_CONN3
+  Test App: SSC_BLE_PERF
+  steps: |
+    1. update connection parameter
+    2. do primary service discovery
+    3. do write char for some time
+  expected result: |
+    1. succeed
+    2. succeed
+    3. calculate throughput
+  execution time: 2
+  cmd set:
+  - "BLEStress/BLEGATTPerformance"
+  - - test_time = 120
+    - ""
+  - - mtu = 512
+    - ""
+  - - gatt_op = "write"
+    - ""
+  - - op_char = "0xC304"
+    - ""
+  - - op_len = 490
+    - ""
+- ID: BTSTK_GATT_50003
+  <<: *GATT_CASE
+  category: Performance
+  test point 1: performance + stress
+  test point 2: BLE GATT performance test
+  summary: GATT notify performance test
+  initial condition: BLE_CONN3
+  Test App: SSC_BLE_PERF
+  steps: |
+    1. update connection parameter
+    2. do primary service discovery
+    3. do notify for some time
+  expected result: |
+    1. succeed
+    2. succeed
+    3. calculate throughput
+  execution time: 2
+  cmd set:
+  - "BLEStress/BLEGATTPerformance"
+  - - test_time = 120
+    - ""
+  - - mtu = 512
+    - ""
+  - - gatt_op = "notify"
+    - ""
+  - - op_char = "0xC305"
+    - ""
+  - - op_len = 256
+    - ""
+- ID: BTSTK_GATT_50004
+  <<: *GATT_CASE
+  category: Performance
+  test point 1: performance + stress
+  test point 2: BLE GATT performance test
+  summary: GATT indicate performance test
+  initial condition: BLE_CONN3
+  Test App: SSC_BLE_PERF
+  steps: |
+    1. update connection parameter
+    2. do primary service discovery
+    3. do notify for some time
+  expected result: |
+    1. succeed
+    2. succeed
+    3. calculate throughput
+  execution time: 2
+  cmd set:
+  - "BLEStress/BLEGATTPerformance"
+  - - test_time = 120
+    - ""
+  - - mtu = 512
+    - ""
+  - - gatt_op = "indicate"
+    - ""
+  - - op_char = "0xC306"
+    - ""
+  - - op_len = 256
+    - ""
diff --git a/components/idf_test/integration_test/TC_IT_BTSTK_MISC.yml b/components/idf_test/integration_test/TC_IT_BTSTK_MISC.yml
new file mode 100644 (file)
index 0000000..6641126
--- /dev/null
@@ -0,0 +1,529 @@
+.MISC_CASE: &MISC_CASE
+  SDK: ESP32_IDF
+  Test App: SSC_BLE_WIFI
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  initial condition: BLE_DEINIT1
+  test environment: SSC_T1_1
+  execution time: 0
+  module: BT Stack
+  sub module: Misc
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+
+test cases:
+- ID: BTSTK_MISC_0101
+  <<: *MISC_CASE
+  test point 2: bt init and enable
+  summary: correct init and deinit flow
+  steps: |
+    1. disable and deinit bt
+    2. init bt
+    3. deinit bt
+    4. init and enable bt
+    5. disable and deinit bt
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -D -z stop"
+    - ["R SSC1 C +BT"]
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z deinit"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z start"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z stop"
+    - ["R SSC1 C +BT:OK"]
+- ID: BTSTK_MISC_0102
+  <<: *MISC_CASE
+  test point 2: bt init and enable
+  summary: incorrect deinit disable flow
+  steps: |
+    1. disable and deinit bt
+    2. init and enable bt
+    3. deinit bt
+    4. disable bt
+    5. disable bt
+    6. deinit bt
+    7. deinit bt
+    8. disable bt
+  expected result: |
+    1. succeed
+    2. succeed
+    3. fail
+    4. succeed
+    5. fail
+    6. succeed
+    7. fail
+    8. fail
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -D -z stop"
+    - ["R SSC1 C +BT"]
+  - - "SSC SSC1 bt -D -z start"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z deinit"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -D -z disable"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z disable"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -D -z deinit"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z deinit"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -D -z disable"
+    - ["R SSC1 C +BT:ERROR"]
+- ID: BTSTK_MISC_0103
+  <<: *MISC_CASE
+  test point 2: bt init and enable
+  summary: incorrect init enable flow
+  steps: |
+    1. disable and deinit bt
+    2. enable bt
+    3. init bt
+    4. init bt
+    5. enable bt
+    6. enable bt
+    7. init bt
+  expected result: |
+    1. succeed
+    2. fail
+    3. succeed
+    4. fail
+    5. succeed
+    6. fail
+    7. fail
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -D -z stop"
+    - ["R SSC1 C +BT"]
+  - - "SSC SSC1 bt -D -z enable"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -D -z enable"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z enable"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:ERROR"]
+- ID: BTSTK_MISC_0201
+  <<: *MISC_CASE
+  test point 2: bt controller init test
+  summary: bt controller init test
+  steps: |
+    1. bt controller init
+  expected result: |
+    1. OK
+  initial condition: WIFIBTSTOP
+  cmd set:
+  - ""
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:OK"]
+- ID: BTSTK_MISC_0202
+  <<: *MISC_CASE
+  test point 2: bt controller deinit test
+  summary: bt controller deinit test
+  steps: |
+    1. bt controller init
+    2. bt controller deinit
+  expected result: |
+    1. OK
+    2. OK
+  initial condition: WIFIBTSTOP
+  cmd set:
+  - ""
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z deinit"
+    - ["R SSC1 C +BTC:OK"]
+- ID: BTSTK_MISC_0203
+  <<: *MISC_CASE
+  test point 2: bt host init test
+  summary: bt host init test
+  steps: |
+    1. bt controller init
+    2. bt controller enable
+    3. bt host init
+  expected result: |
+    1. +BTC:OK
+    2. +BTC:OK
+    3. +BT:OK
+  initial condition: WIFIBTSTOP
+  cmd set:
+  - ""
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z enable"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:OK"]
+- ID: BTSTK_MISC_0204
+  <<: *MISC_CASE
+  test point 2: bt host deinit test
+  summary: bt host deinit test
+  steps: |
+    1. bt controller init
+    2. bt controller enable
+    3. bt host init
+    4. bt host deinit
+  expected result: |
+    1. OK
+    2. OK
+    3. OK
+    4. OK
+  initial condition: WIFIBTSTOP
+  cmd set:
+  - ""
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z enable"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z deinit"
+    - ["R SSC1 C +BT:OK"]
+- ID: BTSTK_MISC_0301
+  <<: *MISC_CASE
+  test point 2: heap size unchanged after bt controller stop
+  summary: heap size unchanged after bt controller stop
+  steps: |
+    1.get current heap size
+    2.bt controller init
+    3.enable bt controller
+    4.bt host init
+    5.enable bt host
+    6.disable bt host
+    7.bt host deinit
+    8.disable bt controller
+    9.bt controller deinit
+    10.check current heap size
+  expected result: |
+    1. +FREEHEAP
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+    10.heap size unchanged
+  initial condition: WIFIBTSTOP
+  cmd set:
+  - ""
+  - - "SSC SSC1 ram -Q"
+    - ['R SSC1 A <heapsize>:\+FREEHEAP:(\d+)\r\n']
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z enable"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z enable"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z disable"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z deinit"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 btc -D -z disable"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z deinit"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 ram -Q"
+    - ['R SSC1 P <heapsize>']
+- ID: BTSTK_MISC_0401
+  <<: *MISC_CASE
+  test point 2: bt controller init and enable
+  summary: incorrect init enable flow
+  steps: |
+    1. disable and deinit btc
+    2. enable btc
+    3. init btc
+    4. init btc
+    5. enable btc
+    6. enable btc
+    7. init btc
+  expected result: |
+    1. succeed
+    2. fail
+    3. succeed
+    4. fail
+    5. succeed
+    6. fail
+    7. fail
+  initial condition: WIFIBTSTOP
+  cmd set:
+  - ""
+  - - "SSC SSC1 btc -D -z stop"
+    - ["R SSC1 C +BTC"]
+  - - "SSC SSC1 btc -D -z enable"
+    - ["R SSC1 C +BTC:ERROR"]
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:ERROR"]
+  - - "SSC SSC1 btc -D -z enable"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z enable"
+    - ["R SSC1 C +BTC:ERROR"]
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:ERROR"]
+- ID: BTSTK_MISC_0402
+  <<: *MISC_CASE
+  test point 2: bt controller init and enable
+  summary: correct init and deinit flow
+  steps: |
+    1. disable and deinit btc
+    2. init btc
+    3. deinit btc
+    4. init and enable btc
+    5. disable and deinit btc
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 btc -D -z stop"
+    - ["R SSC1 C +BTC"]
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z deinit"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z start"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z stop"
+    - ["R SSC1 C +BTC:OK"]
+- ID: BTSTK_MISC_0403
+  <<: *MISC_CASE
+  test point 2: bt controller init and enable
+  summary: incorrect deinit disable flow
+  steps: |
+    1. disable and deinit btc
+    2. init and enable btc
+    3. deinit btc
+    4. disable btc
+    5. disable btc
+  expected result: |
+    1. succeed
+    2. succeed
+    3. fail
+    4. succeed
+    5. fail
+  cmd set:
+  - ""
+  - - "SSC SSC1 btc -D -z stop"
+    - ["R SSC1 C +BTC"]
+  - - "SSC SSC1 btc -D -z start"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z deinit"
+    - ["R SSC1 C +BTC:ERROR"]
+  - - "SSC SSC1 btc -D -z disable"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z disable"
+    - ["R SSC1 C +BTC:ERROR"]
+- ID: BTSTK_MISC_0501
+  <<: *MISC_CASE
+  test point 2: bt mem release
+  summary: release BT memory
+  steps: |
+    1. DUT1 release BT mem
+    2. DUT1 init and enable btc
+  expected result: |
+    1. succeed
+    2. fail
+  initial condition: BTC_DEINIT1
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -R -m 1"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 btc -D -z start -m 2"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z start -m 1"
+    - ["R SSC1 C +BTC:ERROR"]
+- ID: BTSTK_MISC_0502
+  <<: *MISC_CASE
+  test point 2: bt mem release
+  summary: release BLE memory
+  steps: |
+    1. DUT1 release BT mem
+    2. DUT1 init and enable btc
+  expected result: |
+    1. succeed
+    2. fail
+  initial condition: BTC_DEINIT1
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -R -m 2"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 btc -D -z start -m 1"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z start -m 2"
+    - ["R SSC1 C +BTC:ERROR"]
+- ID: BTSTK_MISC_0503
+  <<: *MISC_CASE
+  test point 2: bt mem release
+  summary: release BT and BLE memory
+  steps: |
+    1. DUT1 release BT mem
+    2. DUT1 init and enable btc
+  expected result: |
+    1. succeed
+    2. fail
+  initial condition: BTC_DEINIT1
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -R -m 3"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 btc -D -z start -m 3"
+    - ["R SSC1 C +BTC:ERROR"]
+- ID: BTSTK_MISC_0504
+  <<: *MISC_CASE
+  test point 2: bt mem release
+  summary: release BT memory after bt controller init
+  initial condition: BTC_DEINIT1
+  steps: |
+    1. DUT1 init bt controller
+    2. DUT1 release BT memory
+    3. DUT1 release BLE memory
+    4. DUT1 release BT and BLE memory
+  expected result: |
+    1. succeed
+    2. fail
+    3. fail
+    4. fail
+  cmd set:
+  - ""
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 bt -R -m 1"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -R -m 2"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -R -m 3"
+    - ["R SSC1 C +BT:ERROR"]
+- ID: BTSTK_MISC_0505
+  <<: *MISC_CASE
+  test point 2: bt mem release
+  summary: release BT memory after bt controller enable and bluedriod disable
+  initial condition: BTC_DEINIT1
+  steps: |
+    1. DUT1 init and enable bt controller
+    2. DUT1 release BT memory
+    3. DUT1 release BLE memory
+    4. DUT1 release BT and BLE memory
+  expected result: |
+    1. succeed
+    2. fail
+    3. fail
+    4. fail
+  cmd set:
+  - ""
+  - - "SSC SSC1 btc -D -z init"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 btc -D -z enable"
+    - ["R SSC1 C +BTC:OK"]
+  - - "SSC SSC1 bt -R -m 1"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -R -m 2"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -R -m 3"
+    - ["R SSC1 C +BT:ERROR"]
+- ID: BTSTK_MISC_0506
+  <<: *MISC_CASE
+  test point 2: bt mem release
+  summary: release BT memory after bt controller enable and bluedriod init
+  steps: |
+    1. DUT1 init bluedriod
+    2. DUT1 release BT memory
+    3. DUT1 release BLE memory
+    4. DUT1 release BT and BLE memory
+  expected result: |
+    1. succeed
+    2. fail
+    3. fail
+    4. fail
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -R -m 1"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -R -m 2"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -R -m 3"
+    - ["R SSC1 C +BT:ERROR"]
+- ID: BTSTK_MISC_0507
+  <<: *MISC_CASE
+  test point 2: bt mem release
+  summary: release BT memory after bt controller enable and bluedriod enable
+  steps: |
+    1. DUT1 init and enable bluedriod
+    2. DUT1 release BT memory
+    3. DUT1 release BLE memory
+    4. DUT1 release BT and BLE memory
+  expected result: |
+    1. succeed
+    2. fail
+    3. fail
+    4. fail
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -D -z enable"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bt -R -m 1"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -R -m 2"
+    - ["R SSC1 C +BT:ERROR"]
+  - - "SSC SSC1 bt -R -m 3"
+    - ["R SSC1 C +BT:ERROR"]
+- ID: BTSTK_MISC_5001
+  <<: *MISC_CASE
+  category: Performance
+  test point 1: performance + stress
+  test point 2: BT Controller Performance test
+  summary: bt controller init and deinit Performance test
+  execution time: 6
+  steps: |
+    1.get current heap size
+    2.bt controller init
+    3.enable bt controller
+    4.bt host init
+    5.enable bt host
+    6.disable bt host
+    7.bt host deinit
+    8.disable bt controller
+    9.bt controller deinit
+    10.loop step1 to step 9
+  expected result: |
+    1. +FREEHEAP
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+    10.heap size unchanged
+  cmd set:
+  - "BLEStress/BLEInitDeinitPerformance"
+  - - "test_time = 420"
+    - ""
diff --git a/components/idf_test/integration_test/TC_IT_BTSTK_SMP.yml b/components/idf_test/integration_test/TC_IT_BTSTK_SMP.yml
new file mode 100644 (file)
index 0000000..812f97b
--- /dev/null
@@ -0,0 +1,2306 @@
+.SMP_CASE: &SMP_CASE
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  initial condition: BLE_INIT_SMP
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: SMP
+  version: v1 (2017-05-26)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+
+.just_work_pair: &just_work_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['P SSC1 C +BLESMP:SecReq']
+    - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+      - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+
+.slave_passkey_entry_pair: &slave_passkey_entry_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['P SSC1 C +BLESMP:SecReq']
+    - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+      - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
+    - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a 1 -k <key>"
+      - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+
+.master_passkey_entry_pair: &master_passkey_entry_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['P SSC1 C +BLESMP:SecReq']
+    - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+      - ['P SSC1 C +BLESMP:PassKeyReq', 'P SSC2 A <key>:BLESMP:PassKeyNotify,(\d+)']
+    - - "SSC SSC1 blesmp -K -r <dut2_bt_mac> -a 1 -k <key>"
+      - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+
+.both_side_passkey_entry_pair: &both_side_passkey_entry_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['P SSC1 C +BLESMP:SecReq']
+    - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+      - ['P SSC[1,2] C +BLESMP:PassKeyReq']
+    - - "SSC SSC[1,2] blesmp -K -r <dut[2,1]_bt_mac> -a 1 -k 123456"
+      - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+
+.numberic_comparision_pair: &numberic_comparision_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['P SSC1 C +BLESMP:SecReq']
+    - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+      - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+    - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
+      - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+
+.check_connection: &check_connection
+  LIST_MERGE:
+    - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+      - ["R SSC1 C +GATTC:DiscoverService,A000"]
+
+.disconnect: &disconnect
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -D -z all"
+      - ['P SSC1 C +BLE:GattcDisconnect', 'P SSC2 C +BLE:GattsDisconnect']
+    - - "SSC SSC2 bleadv -D -z start"
+      - ['P SSC2 C +BLEADV:OK']
+
+.start_pair: &start_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['P SSC1 C +BLESMP:SecReq']
+
+.config_just_work: &config_just_work
+  LIST_MERGE:
+    - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x00"
+      - ['P SSC[1-2] C +BLESMP:OK']
+    - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+      - ['P SSC[1-2] C +BLESMP:OK']
+
+.config_master_passkey_entry: &config_master_passkey_entry
+  LIST_MERGE:
+    - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+      - ['P SSC[1-2] C +BLESMP:OK']
+    - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+      - ['P SSC1 C +BLESMP:OK']
+    - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+      - ['P SSC2 C +BLESMP:OK']
+
+.config_slave_passkey_entry: &config_slave_passkey_entry
+  LIST_MERGE:
+    - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+      - ['P SSC[1-2] C +BLESMP:OK']
+    - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+      - ['P SSC[1-2] C +BLESMP:OK']
+
+.config_both_side_passkey_entry: &config_both_side_passkey_entry
+  LIST_MERGE:
+    - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+      - ['P SSC[1-2] C +BLESMP:OK']
+    - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x02"
+      - ['P SSC[1-2] C +BLESMP:OK']
+
+.config_numberic_comparision: &config_numberic_comparision
+  LIST_MERGE:
+    - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+      - ['P SSC[1-2] C +BLESMP:OK']
+    - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+      - ['P SSC[1-2] C +BLESMP:OK']
+
+.config_bond_device: &config_bond_device
+  LIST_MERGE:
+    - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x01"
+      - ['P SSC2 C +BLESMP:OK']
+    - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+      - ['P SSC2 C +BLESMP:OK']
+
+
+test cases:
+- ID: BTSTK_SMP_01001
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity None + None test
+  steps: |
+    1. set sec properity None on initiator and responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just work and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_01002
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity None + SC test
+  steps: |
+    1. set sec properity None on initiator and SC on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just work and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x08"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_01003
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity None + MITM test
+  steps: |
+    1. set sec properity None on initiator and MITM on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_01004
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity None + SC_MITM test
+  steps: |
+    1. set sec properity None on initiator and SC_MITM on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_01005
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity SC + None test
+  steps: |
+    1. set sec properity SC only on initiator and None on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just work and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x08"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_01006
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity SC + SC test
+  steps: |
+    1. set sec properity SC on initiator and SC on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just work and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x08"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x08"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_01007
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity SC + MITM test
+  steps: |
+    1. set sec properity SC on initiator and MITM on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x08"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_01008
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity SC + SC_MITM test
+  steps: |
+    1. set sec properity SC on initiator and SC_MITM on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use numberic comparision and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x08"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *numberic_comparision_pair
+  - *check_connection
+- ID: BTSTK_SMP_01009
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity MITM + None test
+  steps: |
+    1. set sec properity MITM on initiator and None on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_01010
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity MITM + SC test
+  steps: |
+    1. set sec properity MITM on initiator and SC on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x08"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_01011
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity MITM + MITM test
+  steps: |
+    1. set sec properity MITM on initiator and MITM on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_01012
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity MITM + SC_MITM test
+  steps: |
+    1. set sec properity MITM on initiator and SC_MITM on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_01013
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity SC_MITM + None test
+  steps: |
+    1. set sec properity SC_MITM on initiator and SC on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_01014
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity SC_MITM + SC test
+  steps: |
+    1. set sec properity SC_MITM on initiator and SC on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use numberic comparision and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x08"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *numberic_comparision_pair
+  - *check_connection
+- ID: BTSTK_SMP_01015
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity SC_MITM + MITM test
+  steps: |
+    1. set sec properity SC_MITM on initiator and MITM on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_01016
+  <<: *SMP_CASE
+  test point 2: BLE SMP sec properity test
+  summary: BLE SMP sec properity SC_MITM + SC_MITM test
+  steps: |
+    1. set sec properity SC_MITM on initiator and SC_MITM on responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2, do pair procedure
+    4. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use numberic comparision and pair succeed
+    4. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC2 C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - *numberic_comparision_pair
+  - *check_connection
+- ID: BTSTK_SMP_02001
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities DisplayOnly + DisplayOnly test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to DisplayOnly on initiator and DisplayOnly on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to DisplayOnly on initiator and DisplayOnly on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just work and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just work and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02002
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities DisplayOnly + DisplayYesNo test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to DisplayOnly on initiator and DisplayYesNo on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to DisplayOnly on initiator and DisplayYesNo on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just work and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just work and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02003
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities DisplayOnly + KeyboardOnly test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to DisplayOnly on initiator and KeyboardOnly on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to DisplayOnly on initiator and KeyboardOnly on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use passkey entry (initiator displays, responder inputs) and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC2 C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC2 C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_02004
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities DisplayOnly + NoInputNoOutput test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to DisplayOnly on initiator and NoInputNoOutput on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to DisplayOnly on initiator and NoInputNoOutput on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just works and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just works and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02005
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities DisplayOnly + KeyboardDisplay test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to DisplayOnly on initiator and KeyboardDisplay on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to DisplayOnly on initiator and KeyboardDisplay on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use passkey entry (initiator displays, responder inputs) and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_02006
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities DisplayYesNo + DisplayOnly test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to DisplayYesNo on initiator and DisplayOnly on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to DisplayYesNo on initiator and DisplayOnly on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just work and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just work and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02007
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities DisplayYesNo + DisplayYesNo test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to DisplayYesNo on initiator and DisplayYesNo on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to DisplayYesNo on initiator and DisplayYesNo on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just work and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use numberic comparision and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - *numberic_comparision_pair
+  - *check_connection
+- ID: BTSTK_SMP_02008
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities DisplayYesNo + KeyboardOnly test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to DisplayYesNo on initiator and KeyboardOnly on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to DisplayYesNo on initiator and KeyboardOnly on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use passkey entry (initiator displays, responder inputs) and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC2 C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC2 C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_02009
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities DisplayYesNo + NoInputNoOutput test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to DisplayYesNo on initiator and NoInputNoOutput on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to DisplayYesNo on initiator and NoInputNoOutput on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just works and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just works and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02010
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities DisplayYesNo + KeyboardDisplay test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to DisplayYesNo on initiator and KeyboardDisplay on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to DisplayYesNo on initiator and KeyboardDisplay on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use numberic comparision and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - *numberic_comparision_pair
+  - *check_connection
+- ID: BTSTK_SMP_02011
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities KeyboardOnly + DisplayOnly test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to KeyboardOnly on initiator and DisplayOnly on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to KeyboardOnly on initiator and DisplayOnly on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (responder displays, initiator inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use passkey entry (responder displays, initiator inputs) and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - *master_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - *master_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_02012
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities KeyboardOnly + DisplayYesNo test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to KeyboardOnly on initiator and DisplayYesNo on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to KeyboardOnly on initiator and DisplayYesNo on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (responder displays, initiator inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use passkey entry (responder displays, initiator inputs) and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - *master_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - *master_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_02013
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities KeyboardOnly + KeyboardOnly test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to KeyboardOnly on initiator and KeyboardOnly on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to KeyboardOnly on initiator and KeyboardOnly on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator and responder inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use passkey entry (initiator and responder inputs) and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC2 C +BLESMP:OK']
+  - *both_side_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC2 C +BLESMP:OK']
+  - *both_side_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_02014
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities KeyboardOnly + NoInputNoOutput test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to KeyboardOnly on initiator and NoInputNoOutput on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to KeyboardOnly on initiator and NoInputNoOutput on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just works and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just works and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02015
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities KeyboardOnly + KeyboardDisplay test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to KeyboardOnly on initiator and KeyboardDisplay on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to KeyboardOnly on initiator and KeyboardDisplay on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (responder displays, initiator inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use passkey entry (responder displays, initiator inputs) and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - *master_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - *master_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_02016
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities NoInputNoOutput + DisplayOnly test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to NoInputNoOutput on initiator and DisplayOnly on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to NoInputNoOutput on initiator and DisplayOnly on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just works and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just works and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02017
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities NoInputNoOutput + DisplayYesNo test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to NoInputNoOutput on initiator and DisplayYesNo on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to NoInputNoOutput on initiator and DisplayYesNo on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just works and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just works and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02018
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities NoInputNoOutput + KeyboardOnly test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to NoInputNoOutput on initiator and KeyboardOnly on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to NoInputNoOutput on initiator and KeyboardOnly on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just works and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just works and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02019
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities NoInputNoOutput + NoInputNoOutput test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to NoInputNoOutput on initiator and NoInputNoOutput on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to NoInputNoOutput on initiator and NoInputNoOutput on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just works and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just works and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02020
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities NoInputNoOutput + KeyboardDisplay test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to NoInputNoOutput on initiator and KeyboardDisplay on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to NoInputNoOutput on initiator and KeyboardDisplay on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just works and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just works and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02021
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities KeyboardDisplay + DisplayOnly test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to KeyboardDisplay on initiator and DisplayOnly on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to KeyboardDisplay on initiator and DisplayOnly on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (responder displays, initiator inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use passkey entry (responder displays, initiator inputs) and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - *master_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x00"
+    - ['P SSC2 C +BLESMP:OK']
+  - *master_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_02022
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities KeyboardDisplay + DisplayYesNo test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to KeyboardDisplay on initiator and DisplayYesNo on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to KeyboardDisplay on initiator and DisplayYesNo on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (responder displays, initiator inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use numberic comparision and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - *master_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x01"
+    - ['P SSC2 C +BLESMP:OK']
+  - *numberic_comparision_pair
+  - *check_connection
+- ID: BTSTK_SMP_02023
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities KeyboardDisplay + KeyboardOnly test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to KeyboardDisplay on initiator and KeyboardOnly on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to KeyboardDisplay on initiator and KeyboardOnly on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use passkey entry (initiator displays, responder inputs) and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC2 C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x02"
+    - ['P SSC2 C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+- ID: BTSTK_SMP_02024
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities KeyboardDisplay + NoInputNoOutput test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to KeyboardDisplay on initiator and NoInputNoOutput on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to KeyboardDisplay on initiator and NoInputNoOutput on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use just works and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use just works and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC2 C +BLESMP:OK']
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_02025
+  <<: *SMP_CASE
+  test point 2: BLE SMP IO Capabilities test
+  summary: BLE SMP IO Capabilities KeyboardDisplay + KeyboardDisplay test
+  allow fail: 2/3
+  steps: |
+    1. set sec properity MITM on both initiator and responder
+    2. set IOCAP to KeyboardDisplay on initiator and KeyboardDisplay on responder
+    3. DUT1 connect to DUT2, do pair (if required)
+    4. do service discovery
+    5. disconnect
+    6. set sec properity SC_MITM on both initiator and responder
+    7. set IOCAP to KeyboardDisplay on initiator and KeyboardDisplay on responder
+    8. DUT1 connect to DUT2, do pair (if required)
+    9. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. use passkey entry (initiator displays, responder inputs) and pair succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. use numberic comparision and pair succeed
+    9. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - *slave_passkey_entry_pair
+  - *check_connection
+  - *disconnect
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+    - ['P SSC2 C +BLESMP:OK']
+  - *numberic_comparision_pair
+  - *check_connection
+- ID: BTSTK_SMP_03001
+  <<: *SMP_CASE
+  test point 2: BLE SMP pair with pairing request test
+  summary: BLE SMP start pair with pairing request
+  steps: |
+    1. set sec properity None on initiator and responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2
+    4. DUT2 send secruity request, do pair (if required)
+    5. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. connected
+    4. use just work and pair succeed
+    5. succeed
+  cmd set:
+  - ""
+  - *config_just_work
+  - *just_work_pair
+  - *check_connection
+- ID: BTSTK_SMP_03002
+  <<: *SMP_CASE
+  test point 2: BLE SMP initiate pair test
+  summary: BLE SMP start pair with pairing request
+  steps: |
+    1. set sec properity None on initiator and responder
+    2. set IOCAP to KeyboardDisplay on initiator and responder
+    3. DUT1 connect to DUT2
+    4. DUT1 send pair req, do pair (if required)
+    5. do service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. connected
+    4. use just work and pair succeed
+    5. succeed
+  cmd set:
+  - ""
+  - *config_just_work
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
+    - ['P SSC2 C +BLESMP:SecReq']
+  - - "SSC SSC2 blesmp -R -a 1 -r <dut1_bt_mac>"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - *check_connection
+- ID: BTSTK_SMP_04001
+  <<: *SMP_CASE
+  test point 2: BLE SMP key test
+  summary: BLE SMP set key size test
+  allow fail: 1/2
+  steps: |
+    1. set key size 7
+    2. set key size 6
+    3. do just work pair
+  expected result: |
+    1. succeed
+    2. LTK size is 7
+    3. succeed
+  cmd set:
+  - ""
+  - *config_numberic_comparision
+  - - "SSC SSC1 blesmp -S -z KeySize -v 0x07"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z KeySize -v 0x06"
+    - ['P SSC1 C +BLESMP:OK']
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
+    - ['P SSC[1-2] C +BLESMP:Key,LocalLTK,16 C +BLESMP:AuthComplete,Success,0']
+- ID: BTSTK_SMP_04002
+  <<: *SMP_CASE
+  test point 2: BLE SMP key test
+  summary: BLE SMP set key size test
+  allow fail: 1/2
+  steps: |
+    1. set key size 16
+    2. set key size 17
+    3. do just work pair
+  expected result: |
+    1. succeed
+    2. LTK size is 17
+    3. succeed
+  cmd set:
+  - ""
+  - *config_numberic_comparision
+  - - "SSC SSC1 blesmp -S -z KeySize -v 0x10"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z KeySize -v 0x11"
+    - ['P SSC1 C +BLESMP:OK']
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
+    - ['P SSC[1-2] C +BLESMP:Key,LocalLTK,16 C +BLESMP:AuthComplete,Success,0']
+- ID: BTSTK_SMP_05001
+  <<: *SMP_CASE
+  test point 2: BLE SMP unsuccessful pair reply test
+  summary: BLE SMP unsuccessful passkey entry test
+  steps: |
+    1. enter passkey entry phase
+    2. entry incorrect passkey and accept
+    3. enter passkey entry phase
+    4. entry correct passkey and reject
+    5. enter passkey entry phase
+    6. send numberic comparision accept
+    7. enter passkey entry phase
+    8. send numberic comparision reject
+  expected result: |
+    1. succeed
+    2. pair failed
+    3. succeed
+    4. pair failed
+    5. succeed
+    6. pair failed
+    7. succeed
+    8. pair failed
+  cmd set:
+  - ""
+  - *config_slave_passkey_entry
+  - - LOOP 2 6 "[1,0]" "['000001','<key>']"
+    - ""
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
+  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a {%d} -k {%s}"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
+  - *disconnect
+  - - LOOP 2 6 "[1,0]"
+    - ""
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
+  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a {%d}"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
+  - *disconnect
+- ID: BTSTK_SMP_05002
+  <<: *SMP_CASE
+  test point 2: BLE SMP unsuccessful pair reply test
+  summary: BLE SMP unsuccessful numberic comparision test
+  steps: |
+    1. enter numberic comparision phase
+    2. entry passkey and accept
+    3. enter numberic comparision phase
+    4. send numberic comparision reject
+  expected result: |
+    1. succeed
+    2. pair failed
+    3. succeed
+    4. pair failed
+  cmd set:
+  - ""
+  - *config_numberic_comparision
+  - - LOOP 2 6 "[1,0]"
+    - ""
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a {%d} -k 000001"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
+  - *disconnect
+  - - LOOP 2 6 "[1,0]" "[0,1]"
+    - ""
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+  - - "SSC SSC[1,2] blesmp -C -r <dut[2,1]_bt_mac> -a [{%d},{%d}]"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
+  - *disconnect
+- ID: BTSTK_SMP_05003
+  <<: *SMP_CASE
+  test point 2: BLE SMP unsuccessful pair reply test
+  summary: BLE SMP unsuccessful passkey entry on both side test
+  steps: |
+    1. enter both side passkey entry phase
+    2. entry different passkey and accept
+    3. enter both side passkey entry phase
+    4. entry same passkey and reject
+    5. enter both side passkey entry phase
+    6. send numberic comparision accept
+    7. enter both side passkey entry phase
+    8. send numberic comparision reject
+  expected result: |
+    1. succeed
+    2. pair failed
+    3. succeed
+    4. pair failed
+    5. succeed
+    6. pair failed
+    7. succeed
+    8. pair failed
+  cmd set:
+  - ""
+  - *config_both_side_passkey_entry
+  - - LOOP 2 6 "[1,0]" "['000002','000001']"
+    - ""
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['R SSC[1,2] C +BLESMP:PassKeyReq']
+  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a [1,{%d}] -k [000001,{%s}]"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
+  - *disconnect
+  - - LOOP 2 6 "[1,0]" "[0,1]"
+    - ""
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC[1,2] C +BLESMP:PassKeyReq']
+  - - "SSC SSC[1,2] blesmp -C -r <dut[2,1]_bt_mac> -a [{%d},{%d}]"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
+  - *disconnect
+- ID: BTSTK_SMP_05004
+  <<: *SMP_CASE
+  test point 2: BLE SMP unsuccessful pair reply test
+  summary: BLE SMP reject pair
+  steps: |
+    1. DUT1 connect to DUT2
+    2. DUT2 send security req
+    3. DUT1 reject pairing
+    4. disconnect
+    5. DUT1 connect to DUT2
+    6. DUT1 send pairing req
+    7. DUT2 reject pairing
+    4. disconnect
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. succeed
+  cmd set:
+  - ""
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 0 -r <dut2_bt_mac>"
+    - [""]
+  - *disconnect
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
+    - ['P SSC2 C +BLESMP:SecReq']
+  - - "SSC SSC2 blesmp -R -a 0 -r <dut1_bt_mac>"
+    - [""]
+- ID: BTSTK_SMP_06001
+  <<: *SMP_CASE
+  test environment: SSC_T1_1
+  initial condition: BLE_DEINIT1
+  test point 2: BLE SMP use API in abnormal state
+  summary: BLE SMP use API when BLE not initialized, not enabled or not registered callback
+  steps: |
+    1. set security parameter
+    2. send security response
+    3. send passkey reply
+    4. send confirm reply
+    5. init BLE
+    6. set security parameter
+    7. send security response
+    8. send passkey reply
+    9. send confirm reply
+    10. init BLE
+    11. set security parameter
+    12. send security response
+    13. send passkey reply
+    14. send confirm reply
+  expected result: |
+    1. failed
+    2. failed
+    3. failed
+    4. failed
+    5. succeed
+    6. failed
+    7. failed
+    8. failed
+    9. failed
+    10. succeed
+    11. failed
+    12. failed
+    13. failed
+    14. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC1 C +BLESMP:ERROR']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
+    - ['P SSC1 C +BLESMP:ERROR']
+  - - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
+    - ['P SSC1 C +BLESMP:ERROR']
+  - - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
+    - ['P SSC1 C +BLESMP:ERROR']
+  - - SSC SSC1 bt -D -z init
+    - ['R SSC1 C +BT:']
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
+    - ['P SSC1 C +BLESMP']
+  - - SSC SSC1 bt -D -z enable
+    - ['R SSC1 C +BT:']
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
+    - ['P SSC1 C +BLESMP']
+- ID: BTSTK_SMP_06002
+  <<: *SMP_CASE
+  test point 2: BLE SMP use API in abnormal state
+  summary: BLE SMP use phase 2 API in phase 1
+  steps: |
+    1. enter entry passkey phase
+    2. send ble security response
+    3. continue pairing
+  expected result: |
+    1. succeed
+    2. failed
+    3. pair succeed
+  cmd set:
+  - ""
+  - *config_slave_passkey_entry
+  - *start_pair
+  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a 1 -k <key>"
+    - ['P SSC2 C +BLESMP']
+  - - "SSC SSC2 blesmp -C -r <dut1_bt_mac> -a 1"
+    - ['P SSC2 C +BLESMP']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
+  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a 1 -k <key>"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+- ID: BTSTK_SMP_06003
+  <<: *SMP_CASE
+  test point 2: BLE SMP use API in abnormal state
+  summary: BLE SMP use phase 1 API in phase 2
+  steps: |
+    1. enter phase 1 (don't send security response)
+    2. do passkey entry
+    3. do number comparision
+  expected result: |
+    1. succeed
+    2. failed
+    3. failed
+  cmd set:
+  - ""
+  - *config_slave_passkey_entry
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a 1 -k <key>"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+- ID: BTSTK_SMP_06004
+  <<: *SMP_CASE
+  test point 2: BLE SMP use API in abnormal state
+  summary: BLE SMP master disconnect during pairing and repairing
+  steps: |
+    1. enter phase 1 (don't send security response)
+    2. disconnect
+    3. enter phase 1, send response but do not do pair
+    4. disconnect
+  expected result: |
+    1. succeed
+    2. disconnected
+    3. succeed
+    4. disconnected
+  cmd set:
+  - ""
+  - *config_slave_passkey_entry
+  - *start_pair
+  - *disconnect
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
+  - *disconnect
+- ID: BTSTK_SMP_06005
+  <<: *SMP_CASE
+  test point 2: BLE SMP use API in abnormal state
+  summary: BLE SMP slave disconnect during pairing and repairing
+  steps: |
+    1. enter phase 1 (don't send security response)
+    2. disconnect
+    3. enter phase 1, send response but do not do pair
+    4. disconnect
+  expected result: |
+    1. succeed
+    2. disconnected
+    3. succeed
+    4. disconnected
+  cmd set:
+  - ""
+  - *config_slave_passkey_entry
+  - *start_pair
+  - - "SSC SSC2 bleconn -D -z all"
+    - ['P SSC2 C +BLE:GattsDisconnect', 'P SSC1 C +BLE:GattcDisconnect,OK']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['P SSC2 C +BLEADV:Start,OK']
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
+  - - "SSC SSC2 bleconn -D -z all"
+    - ['P SSC2 C +BLE:GattsDisconnect', 'P SSC1 C +BLE:GattcDisconnect,OK']
+- ID: BTSTK_SMP_07001
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond and NVS test
+  summary: BLE SMP initiator bond with lagecy pairing
+  steps: |
+    1. DUT1 and DUT2 SMP bond with lagecy pairing
+    2. DUT1 disconnect
+    3. DUT1 connect to DUT2
+    4. DUT1 disconnect
+    5. DUT1 reboot
+    6. DUT1 connect to DUT2
+  expected result: |
+    1. succeed
+    2. succeed
+    3. connect succeed without pairing again
+    4. succeed
+    5. succeed
+    6. connect succeed without pairing again
+  cmd set:
+  - ""
+  - *config_master_passkey_entry
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
+    - ['P SSC2 C +BLESMP:SecReq']
+  - - "SSC SSC2 blesmp -R -a 1 -r <dut1_bt_mac>"
+    - ['P SSC1 C +BLESMP:PassKeyReq', 'P SSC2 A <key>:BLESMP:PassKeyNotify,(\d+)']
+  - - "SSC SSC1 blesmp -K -r <dut2_bt_mac> -a 1 -k <key>"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - *disconnect
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC[1-2] reboot"
+    - ['P SSC[1-2] C !!!ready!!!']
+  - - "SSC SSC[1-2] ble -R"
+    - ['R SSC[1-2] C +BLE:']
+  - - "SSC SSC2 gatts -S -z load -p 0xA0"
+    - ['R SSC2 C +GATTS:StartService,OK,A000']
+  - - "SSC SSC2 bleadv -L -c 0 -t 3"
+    - ['R SSC2 C +BLEADV:SetAdv,OK']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC[1-2] blesmp -L -c [1,0]"
+    - ['R SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+- ID: BTSTK_SMP_07002
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond and NVS test
+  summary: BLE SMP initiator bond with secure connection pairing
+  steps: |
+    1. DUT1 and DUT2 SMP bond with secure connection pairing
+    2. DUT1 disconnect
+    3. DUT1 connect to DUT2
+    4. DUT1 disconnect
+    5. DUT1 reboot
+    6. DUT1 connect to DUT2
+  expected result: |
+    1. succeed
+    2. succeed
+    3. connect succeed without pairing again
+    4. succeed
+    5. succeed
+    6. connect succeed without pairing again
+  cmd set:
+  - ""
+  - *config_numberic_comparision
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
+    - ['P SSC2 C +BLESMP:SecReq']
+  - - "SSC SSC2 blesmp -R -a 1 -r <dut1_bt_mac>"
+    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - *disconnect
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC[1-2] reboot"
+    - ['P SSC[1-2] C !!!ready!!!']
+  - - "SSC SSC[1-2] ble -R"
+    - ['R SSC[1-2] C +BLE:']
+  - - "SSC SSC2 gatts -S -z load -p 0xA0"
+    - ['R SSC2 C +GATTS:StartService,OK,A000']
+  - - "SSC SSC2 bleadv -L -c 0 -t 3"
+    - ['R SSC2 C +BLEADV:SetAdv,OK']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC[1-2] blesmp -L -c [1,0]"
+    - ['R SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+- ID: BTSTK_SMP_07003
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond and NVS test
+  summary: BLE SMP responder bond with lagecy pairing
+  steps: |
+    1. DUT1 and DUT2 SMP bond with lagecy pairing
+    2. DUT1 disconnect
+    3. DUT1 connect to DUT2
+    4. DUT1 disconnect
+    5. DUT1 reboot
+    6. DUT1 connect to DUT2
+  expected result: |
+    1. succeed
+    2. succeed
+    3. connect succeed without pairing again
+    4. succeed
+    5. succeed
+    6. connect succeed without pairing again
+  cmd set:
+  - ""
+  - *config_master_passkey_entry
+  - *master_passkey_entry_pair
+  - *disconnect
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC[1-2] reboot"
+    - ['P SSC[1-2] C !!!ready!!!']
+  - - "SSC SSC[1-2] ble -R"
+    - ['R SSC[1-2] C +BLE:']
+  - - "SSC SSC2 gatts -S -z load -p 0xA0"
+    - ['R SSC2 C +GATTS:StartService,OK,A000']
+  - - "SSC SSC2 bleadv -L -c 0 -t 3"
+    - ['R SSC2 C +BLEADV:SetAdv,OK']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC[1-2] blesmp -L -c [1,0]"
+    - ['R SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+- ID: BTSTK_SMP_07004
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond and NVS test
+  summary: BLE SMP responder bond with secure connection pairing
+  steps: |
+    1. DUT1 and DUT2 SMP bond with secure connection pairing
+    2. DUT1 disconnect
+    3. DUT1 connect to DUT2
+    4. DUT1 disconnect
+    5. DUT1 reboot
+    6. DUT1 connect to DUT2
+  expected result: |
+    1. succeed
+    2. succeed
+    3. connect succeed without pairing again
+    4. succeed
+    5. succeed
+    6. connect succeed without pairing again
+  cmd set:
+  - ""
+  - *config_numberic_comparision
+  - *numberic_comparision_pair
+  - *disconnect
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC[1-2] reboot"
+    - ['P SSC[1-2] C !!!ready!!!']
+  - - "SSC SSC[1-2] ble -R"
+    - ['R SSC[1-2] C +BLE:']
+  - - "SSC SSC2 gatts -S -z load -p 0xA0"
+    - ['R SSC2 C +GATTS:StartService,OK,A000']
+  - - "SSC SSC2 bleadv -L -c 0 -t 3"
+    - ['R SSC2 C +BLEADV:SetAdv,OK']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC[1-2] blesmp -L -c [1,0]"
+    - ['R SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+- ID: BTSTK_SMP_08001
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond item management test
+  summary: BLE SMP get bond list and number without bond device
+  steps: |
+    1. DUT1 get bond list
+    2. DUT1 get bond number
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -B -z getlist -n 1"
+    - ['P SSC1 C +BLESMP:GetBondList,OK,0']
+  - - "SSC SSC1 blesmp -B -z getnum"
+    - ['P SSC1 C +BLESMP:GetBondNum,0']
+- ID: BTSTK_SMP_08002
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond item management test
+  summary: BLE SMP remove bond after connected
+  steps: |
+   1. DUT2 set AuthReqMode and RspKey
+   2. pairing
+   3. remove bond
+  expected result: |
+   1. Succeed
+   2. Succeed
+   3. Succeed
+  cmd set:
+  - ""
+  - *config_bond_device
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:Start,OK']
+  - *start_pair
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+    - ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC2 C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC1 blesmp -B -z getnum"
+    - ['P SSC1 C +BLESMP:GetBondNum,1']
+  - - "SSC SSC1 blesmp -B -z remove -r <dut2_bt_mac>"
+    - ['P SSC1 RE "\+BLESMP:RemoveBond,Success,%%s"%%(<dut2_bt_mac>)']
+- ID: BTSTK_SMP_08003
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond item management test
+  summary: BLE SMP get bond list and number
+  steps: |
+   1. DUT2 set AuthReqMode and RspKey
+   2. pairing
+   3. get bong and remove bond
+  expected result: |
+   1. Succeed
+   2. Succeed
+   3. Succeed
+  test environment: SSC_T5_1
+  initial condition: BLE_INIT_SMP5
+  cmd set:
+  - ""
+  - - "SSC SSC[2-5] blesmp -S -z AuthReqMode -v 0x01"
+    - ['P SSC[2-5] C +BLESMP:OK']
+  - - "SSC SSC[2-5] blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC[2-5] C +BLESMP:OK']
+  - - "SSC SSC[2-5] blesmp -S -z RspKey -v 0x03"
+    - ['P SSC[2-5] C +BLESMP:OK']
+  - - LOOP 4 4 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC{%d} bleadv -D -z start"
+    - ['R SSC{%d} C +BLEADV:Start,OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC{%d} C +BLE:GattsConnect']
+  - - "SSC SSC{%d} blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC1 C +BLESMP:SecReq']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut{%d}_bt_mac>"
+    - ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC{%d} C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC1 blesmp -B -z getlist -n 4"
+    - ['P SSC1 C +BLESMP:GetBondList,OK,4']
+  - - "SSC SSC1 blesmp -B -z getnum"
+    - ['P SSC1 C +BLESMP:GetBondNum,4']
+  - - "SSC SSC1 bleconn -D -z all"
+    - ['R SSC1 C +BLECONN:']
+  - - "SSC SSC1 blesmp -B -z remove -r <dut2_bt_mac>"
+    - ['P SSC1 RE "\+BLESMP:RemoveBond,Success,%%s"%%(<dut2_bt_mac>)']
+  - - "SSC SSC1 blesmp -B -z remove -r <dut3_bt_mac>"
+    - ['P SSC1 RE "\+BLESMP:RemoveBond,Success,%%s"%%(<dut3_bt_mac>)']
+- ID: BTSTK_SMP_08004
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond item management test
+  summary: BLE SMP remove bond which not bond
+  steps: |
+   1. DUT1 remove bond
+  expected result: |
+   1. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -B -z remove -r <dut2_bt_mac>"
+    - ['P SSC1 C +BLESMP:RemoveBond,Fail']
diff --git a/components/idf_test/integration_test/TC_IT_SYS_MISC.yml b/components/idf_test/integration_test/TC_IT_SYS_MISC.yml
new file mode 100644 (file)
index 0000000..dd02e49
--- /dev/null
@@ -0,0 +1,81 @@
+test cases:
+- CI ready: 'Yes'
+  ID: SYS_MISC_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - - R SSC1 C !!!ready!!!
+  execution time: 0.0
+  expected result: 重启成功
+  initial condition: None
+  level: Integration
+  module: System
+  steps: 系统重启
+  sub module: Misc
+  summary: test reboot function
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: sw reboot
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: SYS_MISC_0201
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ram -H
+    - - R SSC1 RE FREEHEAP:\d+\r\n
+  execution time: 0.0
+  expected result: |2
+
+    可以查询到一个数值
+  initial condition: None
+  level: Integration
+  module: System
+  steps: 查询空闲ram
+  sub module: Misc
+  summary: get heap size test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: 'get heap size '
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: SYS_MISC_5001
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set: ''
+  execution time: 12.0
+  expected result: 4.target1正常运行,无异常
+  initial condition: None
+  level: Integration
+  module: System
+  steps: |-
+    1.target1、target2通过UART与PC相连接
+    2.target1的晶振为40MHz晶振,烧录SDK的时候选择26MHz晶振
+    3.target2的GPIO PIN脚通过排线与target1的电源相连接,target1与target2 GND通过排线连接
+    4.PC发送命令控制target2使GPIO不停的拉高拉低
+  sub module: Misc
+  summary: random reboot to confirm default init data bin will not overwrite user
+    config
+  test environment: SSC_T1_InitData
+  test point 1: stress
+  test point 2: reboot when using user defined init data bin
+  version: v1 (2016-8-15)
diff --git a/components/idf_test/integration_test/TC_IT_SYS_NVS.yml b/components/idf_test/integration_test/TC_IT_SYS_NVS.yml
new file mode 100644 (file)
index 0000000..fd7db6d
--- /dev/null
@@ -0,0 +1,57 @@
+test cases:
+- CI ready: SpecialJob
+  ID: SYS_NVS_01001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE_WIFI
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - NVSTest/NVSCompatibleWiFi
+  - - nvs_path = "nvs_bin_folder"
+    - - ''
+  execution time: 0
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: None
+  level: Integration
+  module: System
+  steps: |
+    1. get NVS data from earlier released branches and last master
+    2. download each NVS data to target
+    3. check if auto connected to the same AP
+    4. check if SoftAP config is correct
+  sub module: NVS
+  summary: use old NVS data WIFI function test
+  test environment: SSC_T1_1
+  test point 1: compatiable test
+  test point 2: test if latest SDK work with pervious version of NVS data
+  version: v1 (2017-06-01)
+- CI ready: 'No'
+  ID: SYS_NVS_5001
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: Reboot
+  auto test: 'Yes'
+  category: Stress
+  cmd set: ''
+  execution time: 12.0
+  expected result: 3.无异常发生
+  initial condition: None
+  level: Integration
+  module: System
+  steps: |-
+    1.target1、target2通过UART与PC相连接
+    2.target2的GPIO PIN脚通过排线与target1的电源相连接,target1与target2 GND通过排线连接
+    3.PC发送命令控制target2使GPIO不停的拉高拉低
+  sub module: NVS
+  summary: random reboot when access NVS
+  test environment: NVS_T1_1
+  test point 1: stress
+  test point 2: reboot when accessing NVS
+  version: v1 (2016-8-15)
diff --git a/components/idf_test/integration_test/TC_IT_TCPIP_DHCP.yml b/components/idf_test/integration_test/TC_IT_TCPIP_DHCP.yml
new file mode 100644 (file)
index 0000000..435c31a
--- /dev/null
@@ -0,0 +1,993 @@
+test cases:
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 dhcp -E -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 ip -S -i 0.0.0.0
+    - - R SSC1 C +IP
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - ''
+  - - DELAY 20
+    - - P PC_COM C +DELAYDONE
+      - P SSC1 NC +JAP:CONNECTED
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 ip -Q
+    - - R SSC1 C +STAIP:0.0.0.0
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 C +JAP:CONNECTED
+  - - SSC SSC1 ip -Q
+    - - R SSC1 RE "\+STAIP:%%s"%%(<target_ip>)
+  execution time: 0.0
+  expected result: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1
+    打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip"
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1
+    打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip"
+  sub module: DHCP
+  summary: dhcp client function test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: DHCP client function test
+  version: v2 (2016-10-19)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0103
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 3
+    - - R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK
+  - - SSC SSC1 dhcp -Q -o 3
+    - - R SSC1 C +DHCP:STA,STARTED C +DHCP:AP,STARTED
+  - - SSC SSC1 dhcp -Q -o 1
+    - - R SSC1 C +DHCP:STA,STARTED NC +DHCP:AP,STARTED
+  - - SSC SSC1 dhcp -Q -o 2
+    - - R SSC1 NC +DHCP:STA,STARTED C +DHCP:AP,STARTED
+  - - SSC SSC1 dhcp -E -o 3
+    - - R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK
+  - - SSC SSC1 dhcp -Q -o 3
+    - - R SSC1 C +DHCP:STA,STOPPED C +DHCP:AP,STOPPED
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.STA&AP STARTED
+    4.STA STARTED
+    5.AP STARTED
+    6.OK
+    7.STA&AP STOPPED
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1 设置mode 为sta+softAP mode
+    2.target1 打开DHCP 3
+    3.target1 查询DHCP 状态
+    4.target1 查询sta DHCP 状态
+    5.target1 查询softAP DHCP 状态
+    6.target1 关闭 DHCP 3
+    7.target1 查询 DHCP 状态
+  sub module: DHCP
+  summary: dhcp status query
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: DHCP client function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0201
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 ip -S -o 2 -i <target_ap_ip>
+    - - R SSC1 C +IP:OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.1 -e 192.168.4.10
+    - - R SSC1 C +DHCP:LEASE,ERROR
+  - - SSC SSC1 dhcp -L -s 192.168.4.5 -e 192.168.4.2
+    - - R SSC1 C +DHCP:LEASE,ERROR
+  - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.5
+    - - R SSC1 C +DHCP:LEASE,ERROR
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  execution time: 0.0
+  expected result: |-
+    1.target1 关闭DHCP 2 OK
+    2.target1 设置ip 成功
+    3.设置dhcp 地址池 OK
+    4.ERROR
+    5.ERROR
+    6.ERROR
+    7.target1 打开DHCP ok
+  initial condition: APM1
+  level: Integration
+  module: TCPIP
+  steps: "1.target1 关闭DHCP 2 \n2.target1 设置ip \n3.设置dhcp 地址池\n4.设置dhcp错误的参数\n5.设置dhcp错误的参数\n6.设置dhcp错误的参数\n7.target1
+    打开DHCP ok"
+  sub module: DHCP
+  summary: server dhcp lease test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0202
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - LOOP 3 4 "['01','02','03']" "[2,3,4]"
+    - - ''
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +QAP:OK
+  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s}
+    - - R SSC2 C +MAC:STA,OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 ip -Q -o 1
+    - - R SSC2 C +STAIP:192.168.4.{%s}
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3,4: get IP from dhcp pool with correct sequence
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. config DHCP Server on Target1
+    3. target change mac, connect to Target1
+    4. Loop step3
+  sub module: DHCP
+  summary: dhcp server ip pool
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0203
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - LOOP 2 4 "['01','02']" "[2,3]"
+    - - ''
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +QAP:OK
+  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s}
+    - - R SSC2 C +MAC:STA,OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 ip -Q -o 1
+    - - R SSC2 C +STAIP:192.168.4.{%s}
+  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
+    - - R SSC2 C +MAC:STA,OK
+  - - DELAY 20
+    - - ''
+  - - SSC SSC2 ip -Q -o 1
+    - - R SSC2 C +STAIP:0.0.0.0
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4.1 succeed
+    4.2 failed
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. config DHCP Server on Target1(.4.2 - .4.3)
+    3. target change mac, connect to Target1
+    4. Loop step3 twice
+  sub module: DHCP
+  summary: dhcp server ip pool empty
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0204
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 ip -Q -o 1
+    - - R SSC2 C +STAIP:192.168.4.2
+  - - DELAY 90
+    - - ''
+  - - SSC SSC2 ip -Q -o 1
+    - - R SSC2 C +STAIP:192.168.4.2
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +JAP:DISCONNECTED
+  - - DELAY 60
+    - - ''
+  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
+    - - R SSC2 C +MAC:STA,OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 ip -Q -o 1
+    - - R SSC2 C +STAIP:192.168.4.2
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. get IP 192.168.4.2
+    5. succeed
+    6. succeed
+    8. get IP 192.168.4.2
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. config DHCP timeout as 1 minute
+    3. target2 connect to target1
+    4. wait 90 seconds
+    5. check if target2 IP is same
+    6. target2 disconnect
+    7. wait 60s
+    8. target2 change mac and connect to target1
+  sub module: DHCP
+  summary: dhcp server timeout test
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0205
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1
+    - - P SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - P SSC1 C +DHCP:AP,OK
+      - P SSC2 C +JAP:DISCONNECTED
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. target2 wifi disconnected
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. target2 connect to target1
+    3. disable DHCP server, do config and enable
+  sub module: DHCP
+  summary: disconnect STA if config dhcp server
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0206
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - LOOP 4 4 "['01','02','03','01']" "[2,3,4,2]"
+    - - ''
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +QAP:OK
+  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s}
+    - - R SSC2 C +MAC:STA,OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 ip -Q -o 1
+    - - R SSC2 C +STAIP:192.168.4.{%s}
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    4. get IP 192.168.4.2 - 192.168.4.4
+    5. get IP 192.168.4.2
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. disable DHCP server, do config and enable
+    3. target2 change mac, connect to softap, disconnect
+    4. Loop step3 twice
+    5. change to first mac, connect to softap
+  sub module: DHCP
+  summary: dhcp server assign same IP to same MAC when it's not released
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0207
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - WIFI <pc_wifi_nic> DISCONN2
+    - - R PC_COM NC ERROR C +WIFIDISCONN:OK
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +QAP:OK
+  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
+    - - R SSC2 C +MAC:STA,OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 ip -Q -o 1
+    - - R SSC2 C +STAIP:192.168.4.2
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. get IP 192.168.4.2
+    4. succeed
+    5. succeed
+    6. get IP 192.168.4.2
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. disable DHCP server, do config and enable
+    3. PC WIFI NIC connect to target1 softap
+    4. target2 connect to target1 softap and disnnect
+    5. PC release IP and disconnected
+    6. target2 change mac and connect to target1
+  sub module: DHCP
+  summary: dhcp server prefer assign released IP to new client
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0207
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: '1/2'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - WIFI <pc_wifi_nic> DISCONN2
+    - - R PC_COM NC ERROR C +WIFIDISCONN:OK
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +QAP:OK
+  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
+    - - R SSC2 C +MAC:STA,OK
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 ip -Q -o 1
+    - - R SSC2 C +STAIP:192.168.4.2
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. get IP 192.168.4.2
+    4. succeed
+    5. succeed
+    6. succeed
+    7. get IP 192.168.4.2
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. disable DHCP server, do config and enable
+    3. PC WIFI NIC connect to target1 softap
+    4. target2 connect to target1 softap and disnnect
+    5. PC release IP and disconnected
+    6. disable DHCP server and enable
+    7. target2 change mac and connect to target1
+  sub module: DHCP
+  summary: dhcp server prefer assign released IP to new client
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0208
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - P SSC1 C +DHCP:AP,OK
+      - P SSC2 C +JAP:DISCONNECTED
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +JAP:DISCONNECTED
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  - - SSC SSC1 ap -L
+    - - R SSC1 C 192.168.4.2 P <pc_wifi_nic_mac>
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get IP 192.168.4.2
+    5. can only find target2 with IP 192.168.4.2
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. target2 connect to target1 softap
+    3. disable DHCP server, do config and enable
+    4. PC NIC connect to target1 softap
+    5. softap list connected station
+  sub module: DHCP
+  summary: dhcp server reconfig and new client able to get first IP in pool
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0208
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: '2/3'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - P SSC1 C +DHCP:AP,OK
+      - P SSC2 C +JAP:DISCONNECTED
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +JAP:DISCONNECTED
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  - - SSC SSC1 ap -L
+    - - R SSC1 C 192.168.4.2 P <pc_wifi_nic_mac>
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. can only find target2 with IP 192.168.4.2
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. target2 connect to target1 softap
+    3. disable DHCP server, do config and enable
+    4. target2 disconnect
+    5. disable DHCP server and enable
+    6. PC NIC connect to target1 softap
+    7. softap list connected station
+  sub module: DHCP
+  summary: dhcp server reconfig and new client able to get first IP in pool
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0209
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: '2/3'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  - - DELAY 20
+    - - ''
+  - - SSC SSC1 ap -L
+    - - R SSC1 C 192.168.4.2 C 192.168.4.3 P <pc_wifi_nic_mac> P <target2_mac>
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. find target2 and PC
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. target2 connect to target1 softap
+    3. disable DHCP server, do config and enable
+    4. PC NIC connect to target1 softap
+    5. softap list connected station
+  sub module: DHCP
+  summary: dhcp server reconfig, old client and new client able to get IP
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0210
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: '1/2'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - WIFI <pc_wifi_nic> CONN2 <random_string> <random_string> 192.168.4.2
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  - - SSC SSC1 ap -L
+    - - R SSC1 C 192.168.4.2 C 192.168.4.3 P <pc_wifi_nic_mac> P <target2_mac>
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. find target2 and PC
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. target2 connect to target1 softap
+    3. disable DHCP server, do config and enable
+    4. PC NIC connect to target1 softap try to renew IP 192.168.4.2
+    5. softap list connected station
+  sub module: DHCP
+  summary: dhcp server reconfig, old client able to get IP (discover with requested
+    IP)
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0211
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: '1/2'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - DELAY 30
+    - - ''
+  - - SSC SSC1 ap -L
+    - - R SSC1 C 192.168.4.2 C 192.168.4.3 P <pc_wifi_nic_mac> P <target2_mac>
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. find target2 and PC
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config softap to a random ssid
+    2. target2 connect to target1 softap
+    3. disable DHCP server, do config and enable
+    4. PC NIC connect to target1 softap try to renew IP 192.168.4.2
+    5. softap list connected station
+  sub module: DHCP
+  summary: dhcp server reconfig, old client able to renew IP (direct send request)
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0212
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - ''
+  - - DELAY 20
+    - - P PC_COM C +DELAYDONE
+      - P SSC2 NC +JAP:CONNECTED
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 C +JAP:CONNECTED
+  execution time: 0.0
+  expected result: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target
+    1,FAIL \n4.target1 打开DHCP OK\n5.target2 jap target 1,ok"
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target 1,FAIL \n4.target1
+    打开DHCP OK\n5.target2 jap target 1,ok"
+  sub module: DHCP
+  summary: dhcp server function test
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: DHCP server function test
+  version: v2 (2016-10-19)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0301
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 dhcp -E -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 ip -S -i 192.168.123.123 -o 1
+    - - R SSC1 C +IP:OK
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 C +JAP:CONNECTED
+  - - SSC SSC1 ip -S -i 0.0.0.0 -o 1
+    - - R SSC1 C +IP
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - ''
+  - - DELAY 10
+    - - P PC_COM C +DELAYDONE
+      - P SSC1 NC +JAP:CONNECTED
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.JAP CONNETED
+    4.OK
+    5.等待10s,JAP fail
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1 关闭DHCP 1
+    2.target1 设置sta ip 192.168.123.123
+    4.target1 jap AP
+    5.target1 设置sta ip 0.0.0.0
+    6.target1 jap AP
+  sub module: DHCP
+  summary: sta dhcp static ip interaction
+  test environment: SSC_T1_1
+  test point 1: interaction
+  test point 2: static IP and DHCP interaction test
+  version: v2 (2016-10-19)
+- CI ready: 'Yes'
+  ID: TCPIP_DHCP_0302
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 ip -S -i 192.168.123.123 -o 2
+    - - R SSC1 C +IP:ERROR
+  - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.10
+    - - R SSC1 C +DHCP:LEASE,ERROR
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - ''
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 ip -S -i 192.168.4.1 -o 2
+    - - R SSC1 C +IP:OK
+  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.10
+    - - R SSC1 C +DHCP:LEASE,OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - ''
+  - - DELAY 10
+    - - P PC_COM C +DELAYDONE
+      - P SSC2 NC +JAP:CONNECTED
+  execution time: 0.0
+  expected result: |-
+    1.target 1 OK
+    2.target1 ERROR
+    3.target1 ERROR
+    4.target2 jap target1 OK
+    5.target1 OK
+    6.target1 OK
+    7.target1 OK
+    8.target2 jap target1 OK
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n3.target1 设置地址池\n4.target1下设置ssid
+    和pwd 加密方式\n5.target2 连接target1 \n6.target1 关闭DHCP 2\n7.target1 设置softAP ip \n8.target1
+    设置正确的地址池\n9.target2 连接target1 "
+  sub module: DHCP
+  summary: ap dhcp static ip interaction
+  test environment: SSC_T2_1
+  test point 1: interaction
+  test point 2: static IP and DHCP interaction test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_DHCP_5001
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/SoftAPNSTA
+  - - sta_num = 4
+    - - dummy
+  - - max_sta = 3
+    - - ''
+  - - test_time = 300
+    - - ''
+  - - delay1 = [5, 60]
+    - - ''
+  - - delay2 = [1, 10]
+    - - ''
+  - - change_mac = False
+    - - ''
+  - - channel = 11
+    - - ''
+  execution time: 5.0
+  expected result: "1. succeed\n2. succeed\n3. JAP succeed except: \nsoftap reach
+    max connected AP \nor all address in dhcp pool not available"
+  initial condition: None
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. 1 target set to softap mode and rest set to sta mode
+    2. set a short dhcp server lease time
+    2. all sta set random mac, random join and disconnect from softap
+    Loop step 2
+  sub module: DHCP
+  summary: max sta connect to SotfAP and disconnect, sta number more than sta allowed
+  test environment: SSC_T5_1
+  test point 1: stress
+  test point 2: DHCP server stress test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_DHCP_5101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'No'
+  category: IOT
+  cmd set: ''
+  execution time: 0.1
+  expected result: |-
+    2. 成功
+    3. 成功
+    4. 断开连接并开始重连
+    5. WIFI连上但无法获取 IP,等大概1分钟后,发生 DHCP TIMEOUT,断开连接并重连,成功获取到 IP
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. 使用小米路由器青春版进行测试
+    2. 设置DHCP timeout(dhcp -T -n 6)
+    3. target 连上 AP
+    4. 路由器断电
+    5. 路由器上电
+  sub module: DHCP
+  summary: DHCP timeout test on sepcial router
+  test environment: SSC_T1_IOT1
+  test point 1: interoperability
+  test point 2: DHCP timeout test
+  version: v1 (2016-8-15)
diff --git a/components/idf_test/integration_test/TC_IT_TCPIP_DNS.yml b/components/idf_test/integration_test/TC_IT_TCPIP_DNS.yml
new file mode 100644 (file)
index 0000000..7299b52
--- /dev/null
@@ -0,0 +1,149 @@
+test cases:
+- CI ready: 'Yes'
+  ID: TCPIP_DNS_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/2
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -H -d gbot.espressif.cn
+    - - R SSC1 C +HOSTIP:OK,118.31.185.120
+  execution time: 0.0
+  expected result: 1.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: 1. get host name "espressif.cn"
+  sub module: DNS
+  summary: get host by name test
+  test environment: SSC_T1_2
+  test point 1: basic function
+  test point 2: DNS function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_DNS_0102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/2
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -H -d gbot.espressif.cn
+    - - R SSC1 A <ip_addr>:\+HOSTIP:OK,(.+)\r\n
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:\+BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <ip_addr> -p 9001
+    - - R SSC1 RE \+CONNECT:\d+,OK
+  - - SSC SSC1 soc -S -s <sock1> -l 10
+    - - P SSC1 RE \+SEND:\d+,OK
+      - P SSC1 SL <sock1>+10
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. get host name "espressif.cn"
+    2. connect, send, recv
+  sub module: DNS
+  summary: TCP connect to gbot.espressif.cn
+  test environment: SSC_T1_2
+  test point 1: basic function
+  test point 2: DNS function test
+  version: v2 (2016-10-19)
+- CI ready: 'Yes'
+  ID: TCPIP_DNS_0103
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/2
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -H -d gbot.espressif.cn
+    - - R SSC1 A <ip_addr>:\+HOSTIP:OK,(.+)\r\n
+  - - SSC SSC1 soc -B -t UDP
+    - - R SSC1 A <sock1>:\+BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <ip_addr> -p 9003 -l 10 -n 3 -j 1000
+    - - P SSC1 RE \+SEND:\d+,OK
+      - P SSC1 SL <sock1>+10
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.send OK and recv at least one echo
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. get host name "espressif.cn"
+    2. sendto echo server 3 times
+  sub module: DNS
+  summary: UDP send to gbot.espressif.cn
+  test environment: SSC_T1_2
+  test point 1: basic function
+  test point 2: DNS function test
+  version: v2 (2016-10-19)
+- CI ready: 'No'
+  ID: TCPIP_DNS_0201
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'No'
+  category: Function
+  cmd set: ''
+  execution time: 0.1
+  expected result: 2. failed
+  initial condition: None
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.AP的主、备用DNS server均设置为错误
+    2.target连接上AP 并访问正确的域名
+  sub module: DNS
+  summary: get host name with error DNS server
+  test environment: SSC_T1_2
+  test point 1: abnormal/special use
+  test point 2: use special DNS server config
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_DNS_0202
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'No'
+  category: Function
+  cmd set: ''
+  execution time: 0.1
+  expected result: 2. succeed
+  initial condition: None
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.AP的主DNS server设置为错误,备用DNS server设置为正确
+    2.target连接上AP 并访问正确的域名
+  sub module: DNS
+  summary: get host name with error main DNS server and correct backup DNS server
+  test environment: SSC_T1_2
+  test point 1: abnormal/special use
+  test point 2: use special DNS server config
+  version: v1 (2016-8-15)
diff --git a/components/idf_test/integration_test/TC_IT_TCPIP_ICMP.yml b/components/idf_test/integration_test/TC_IT_TCPIP_ICMP.yml
new file mode 100644 (file)
index 0000000..8a9e86b
--- /dev/null
@@ -0,0 +1,68 @@
+test cases:
+- CI ready: 'Yes'
+  ID: TCPIP_ICMP_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/5
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ping -i <pc_ip>
+    - - R SSC1 C +PING:OK
+  - - SSC SSC1 ping -i <pc_ip> -c 2
+    - - R SSC1 C +PING:OK
+  execution time: 0.0
+  expected result: |-
+    1.ok
+    2.ok
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.ping -i <pc_ip>
+    2.ping -i <pc_ip> -c 2
+  sub module: ICMP
+  summary: ping function test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: ping function test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_ICMP_5001
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPIPStress/PingStress
+  - - test_time = 300
+    - - dummy
+  - - test_freq = 0.2
+    - - ''
+  - - ping_len = 64
+    - - ''
+  - - target_mode = "STA"
+    - - ''
+  execution time: 5.0
+  expected result: |-
+    1. send succeed
+    2. recv ping reply
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. PC send ping request to target
+    2. PC check if received ping reply
+  sub module: ICMP
+  summary: ping target and check for ping reply
+  test environment: SSC_T1_1
+  test point 1: stress
+  test point 2: ICMP ping stress test
+  version: v1 (2016-11-15)
diff --git a/components/idf_test/integration_test/TC_IT_TCPIP_IGMP.yml b/components/idf_test/integration_test/TC_IT_TCPIP_IGMP.yml
new file mode 100644 (file)
index 0000000..6580372
--- /dev/null
@@ -0,0 +1,347 @@
+test cases:
+- CI ready: 'Yes'
+  ID: TCPIP_IGMP_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  - - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  - - SSC SSC1 igmp -J -h <target_ip> -m 223.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -J -h <target_ip> -m 240.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  execution time: 0.0
+  expected result: |-
+    1. success
+    2. failed
+    3. failed
+    4. failed
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. join group with correct host addr and multicast addr
+    2. join group with correct host addr and wrong multicast addr
+    3. join group with wrong host addr and correct multicast addr
+    4. join group with wrong host addr and wrong multicast addr
+  sub module: IGMP
+  summary: station IGMP join group address check
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: IGMP API parameter check
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_IGMP_0102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  - - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.2
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  execution time: 0.0
+  expected result: |-
+    1. success
+    2. failed
+    3. failed
+    4. failed
+    5. succeed
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. join group with correct host addr and multicast addr
+    2. leave group with correct host addr and wrong multicast addr
+    3. leave group with wrong host addr and correct multicast addr
+    4. leave group with wrong host addr and wrong multicast addr
+    5. leave group with correct host addr and correct multicast addr
+  sub module: IGMP
+  summary: station IGMP leave group address check
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: IGMP API parameter check
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_IGMP_0103
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  - - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 223.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 240.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  execution time: 0.0
+  expected result: |-
+    1. success
+    2. failed
+    3. failed
+    4. failed
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. join group with correct host addr and multicast addr
+    2. join group with correct host addr and wrong multicast addr
+    3. join group with wrong host addr and correct multicast addr
+    4. join group with wrong host addr and wrong multicast addr
+  sub module: IGMP
+  summary: softAP IGMP join group address check
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: IGMP API parameter check
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_IGMP_0104
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  - - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.2
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1
+    - - R SSC1 C +IGMP:ERROR
+  - - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  execution time: 0.0
+  expected result: |-
+    1. success
+    2. failed
+    3. failed
+    4. failed
+    5. succeed
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. join group with correct host addr and multicast addr
+    2. leave group with correct host addr and wrong multicast addr
+    3. leave group with wrong host addr and correct multicast addr
+    4. leave group with wrong host addr and wrong multicast addr
+    5. leave group with correct host addr and correct multicast addr
+  sub module: IGMP
+  summary: softAP IGMP leave group address check
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: IGMP API parameter check
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_IGMP_0201
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: '1/2'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
+    - - R SSC1 A <sock1>:\+BIND:(\d+),OK
+  - - SOC SOC1 BIND <test_udp_port1>
+    - - R SOC_COM L OK
+  - - SOC SOC1 SENDTO 1 <test_udp_port1> 224.1.1.1
+    - - R SSC1 SL <sock1>+1
+  - - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. able to recv packet
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. join group
+    2. create UDP socket using multicast addr
+    3. PC send UDP packet to multicast addr
+  sub module: IGMP
+  summary: station IGMP recv packets
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: IGMP send/recv test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_IGMP_0202
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: '1/2'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC2 op -S -o 1
+    - - R SSC2 C +MODE:OK
+  - - SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
+    - - R SSC1 A <sock1>:\+BIND:(\d+),OK
+  - - SSC SSC2 soc -B -t UDP -p <random_port>
+    - - R SSC2 A <sock2>:\+BIND:(\d+),OK
+  - - SSC SSC2 soc -S -s <sock2> -i 224.1.1.1 -p <test_udp_port1> -l 10
+    - - R SSC1 SL <sock1>+1
+  - - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. target1 recv multicast packet
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. target2 set to sta mode and join AP
+    2. target1 join group and create UDP socket using multicast addr
+    3. target2 create UDP socket
+    4. target2 send to multicast addr
+  sub module: IGMP
+  summary: station send multicast packets
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: IGMP send/recv test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_IGMP_0203
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SOC SOC1 SENDTO 1 <test_udp_port1> 224.1.1.1
+    - - R SSC1 SL <sock1>+1
+  - - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. able to recv packet
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. join group
+    2. create UDP socket using multicast addr
+    3. PC send UDP packet to multicast addr
+  sub module: IGMP
+  summary: softAP IGMP recv packets
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: IGMP send/recv test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_IGMP_0204
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
+    - - R SSC1 A <sock1>:\+BIND:(\d+),OK
+  - - SSC SSC2 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC2 A <sock2>:\+BIND:(\d+),OK
+  - - SSC SSC2 soc -S -s <sock2> -i 224.1.1.1 -p <test_udp_port1> -l 10
+    - - R SSC1 SL <sock1>+1
+  - - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
+    - - R SSC1 C +IGMP:OK
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. target1 recv multicast packet
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. target2 join SoftAP
+    2. target1 join group and create UDP socket using multicast addr
+    3. target2 create UDP socket
+    4. target2 send to multicast addr
+  sub module: IGMP
+  summary: softAP send multicast packets
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: IGMP send/recv test
+  version: v1 (2016-8-15)
diff --git a/components/idf_test/integration_test/TC_IT_TCPIP_IP.yml b/components/idf_test/integration_test/TC_IT_TCPIP_IP.yml
new file mode 100644 (file)
index 0000000..e1cc412
--- /dev/null
@@ -0,0 +1,85 @@
+test cases:
+- CI ready: 'Yes'
+  ID: TCPIP_IP_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 ip -S -o 1 -i 192.168.123.123
+    - - R SSC1 C +IP:ERROR
+  - - SSC SSC1 dhcp -E -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 ip -S -o 1 -i 192.168.123.123
+    - - R SSC1 C +IP:OK
+  - - SSC SSC1 ip -Q -o 1
+    - - R SSC1 C +STAIP:192.168.123.123
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ERROR
+    3.OK
+    4.OK
+    5.STAIP:192.168.123.123
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: "1.target1 打开DHCP 1\n2.target1 设置sta ip 192.168.123.123\n4.target1 关闭DHCP
+    1\n5.target1 设置sta ip 192.168.123.123\n6.target1 查询 当前sta ip "
+  sub module: IP
+  summary: sta set and query static ip test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: set and query static IP
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_IP_0102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 dhcp -S -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 ip -S -o 2 -i 192.168.123.123
+    - - R SSC1 C +IP:ERROR
+  - - SSC SSC1 dhcp -E -o 2
+    - - R SSC1 C +DHCP:AP,OK
+  - - SSC SSC1 ip -S -o 2 -i 192.168.123.123
+    - - R SSC1 C +IP:OK
+  - - SSC SSC1 ip -Q -o 2
+    - - R SSC1 C +APIP:192.168.123.123
+  - - SSC SSC1 ip -S -o 2 -i <target_ap_ip>
+    - - R SSC1 C +IP:OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ERROR
+    3.OK
+    4.OK
+    5.APIP:192.168.123.123
+    6.OK
+  initial condition: APM1
+  level: Integration
+  module: TCPIP
+  steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n4.target1 关闭DHCP
+    2\n5.target1 设置softAP ip 192.168.123.123\n6.target1 查询 当前sta ip \n7.target1 设置softAP
+    ip 为target_ap_ip"
+  sub module: IP
+  summary: ap set and query static ip test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: set and query static IP
+  version: v1 (2016-8-15)
diff --git a/components/idf_test/integration_test/TC_IT_TCPIP_TCP.yml b/components/idf_test/integration_test/TC_IT_TCPIP_TCP.yml
new file mode 100644 (file)
index 0000000..b6ed205
--- /dev/null
@@ -0,0 +1,4209 @@
+test cases:
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+      - P SOC1 C +ACCEPT
+  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i 123.456.678.789 -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port2>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.ERROR
+    6.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1
+    4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0
+    5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1
+    6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。
+  sub module: TCP
+  summary: STA mode, connect test. use different ip, port
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC1 CONNECT <random_port> <target_ip>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+      - P SOC_COM C OK
+  - - SOC SOC1 CONNECT <test_tcp_port2> <target_ip>
+    - - P SOC_COM C ERROR
+      - P SSC1 NC ACCEPT
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.PC TCP client accept
+    4.error
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上创建TCP socket,bind到本地端口<random_port>
+    2.target1上使用步骤1创建的socket,创建TCP 监听
+    3.PC TCP 连接到target1  <random_port>,<target_ip>
+    4.PC tcp 连接到不存在的port ,<target_ip>
+  sub module: TCP
+  summary: STA mode, server listen test. use different kinds of port
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0103
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SOC SOC2 SEND 5
+    - - R SSC1 SL <sock1>+5
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC2 RL 5
+  - - SSC SSC1 soc -S -s <sock1> -l 1460
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC2 RL 1460
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc上回accept
+    4.OK
+    5.target收到5 byte
+    6.PC收到5 byte
+    7.OK,PC 回SOC_RECV=SOC2,RECV_LEN=字节数
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |
+    1. PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket
+    3.target1上使用步骤2创建的socket,去连接PC的ip,test_tcp_port1
+    4.PC与target1 创建好TCP 连接,有ACCEPT
+    5.PC send 5 bytes to 8266
+    6.8266 send 5 bytes to PC
+    7.8266 send 1460 to PC.
+  sub module: TCP
+  summary: STA mode, send/recv basic test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0104
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock1> -h B
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock2> -h W
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock3>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock3> -h R
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept OK
+    4.OK
+    5.OK
+    6.OK,pc tcp server accept OK
+    7.OK
+    8.OK
+    9.OK,pc tcp server accept OK
+    10.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    4.target1 shutdown socket1 B
+    5.target1上创建TCP socket
+    6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    7.target1 shutdown socket2 W
+    8.target1上创建TCP socket
+    9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    10.target1 shutdown socket3 R
+  sub module: TCP
+  summary: STA mode, shutdown basic test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0105
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC2 CONNECT <random_port> <target_ip>
+    - - R SSC1 A <sock2>:ACCEPT:(\d+),\d+,.+,\d+
+  - - SSC SSC1 soc -T -s <sock2>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock1>
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+    6.OK
+    7.target1关闭socket1
+    8.target1关闭socket2
+    9.OK
+    10.OK,pc tcp server accept成功
+    11.target1关闭socket1
+    12.OK
+    13.OK,pc tcp server accept成功
+    14.OK
+    15.target1关闭socket1
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n4.target1上创建TCP
+    socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT<random_port>,<target_ip>
+    ,tcp 连接创建成功,创建socket2             \n7.target1关闭socket1\n8.target1关闭socket2\n9.target1上创建TCP
+    socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n11.target1关闭socket1\n12.target1上创建TCP
+    socket1\n13.target1上使用步骤13创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown
+    socket1\n15.target1关闭socket1"
+  sub module: TCP
+  summary: STA mode, close for different types of TCP sockets test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0106
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock3>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock4>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock4> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock5>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock5> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4 OK
+    5.OK,pc tcp server accept成功
+    6.OK
+    7.OK,pc tcp server accept成功
+    8 OK
+    9.OK,pc tcp server accept成功
+    10.OK
+    11.OK,pc tcp server accept成功
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1
+    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    4.target1上创建TCP socket2
+    5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    6.target1上创建TCP socket3
+    7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    8.target1上创建TCP socket4
+    9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    10.target1上创建TCP socket5
+    11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+  sub module: TCP
+  summary: STA mode, create max TCP sockets test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0107
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC2 CONNECT <random_port> <target_ip>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+  - - SOC SOC3 CONNECT <random_port> <target_ip>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+  - - SOC SOC4 CONNECT <random_port> <target_ip>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+  - - SOC SOC5 CONNECT <random_port> <target_ip>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+  - - SOC SOC6 CONNECT <random_port> <target_ip>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+  execution time: 0.0
+  expected result: |-
+    1.+BIND:0,OK,0.0.0.0
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK,pc tcp server accept成功
+    5.OK,pc tcp server accept成功
+    6.OK,pc tcp server accept成功
+    7.OK,pc tcp server accept成功
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT<random_port>,<target_ip>
+    ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket3
+    \n5.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT<random_port>,<target_ip>
+    ,tcp 连接创建成功,创建socket5  \n7.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket6
+    \   "
+  sub module: TCP
+  summary: STA mode, accept max TCP client by server test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0108
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -A -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC2 CONNECT <random_port> <target_ip>
+    - - R SSC1 A <sock2>:ACCEPT:(\d+),\d+,.+,\d+
+  - - SSC SSC1 soc -A -s <sock2>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -A -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -A -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+    10.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1
+    3.target1 abort socket1
+    4.target1上创建TCP socket 端口随机
+    5.target1上使用步骤4创建的socket1,去监听
+    6.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket2
+    7.target1 abort socket1
+    8.target1 abort socket2
+    9.target1上创建TCP socket1
+    10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    11.target1 abort socket1
+  sub module: TCP
+  summary: STA mode, espconn abort test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0110
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+      - P SOC1 C +ACCEPT
+  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i 123.456.678.789 -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port2>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.ERROR
+    6.ERROR
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1
+    4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0
+    5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1
+    6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。
+  sub module: TCP
+  summary: AP mode, connect test. use different ip, port
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0111
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC1 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+      - P SOC_COM C OK
+  - - SOC SOC1 CONNECT <test_tcp_port2> <target_ap_ip> 0 <pc_ip_wifi>
+    - - P SOC_COM C ERROR
+      - P SSC1 NC ACCEPT
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.PC TCP client accept
+    4.error
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上创建TCP socket,bind到本地端口<random_port>
+    2.target1上使用步骤1创建的socket,创建TCP 监听
+    3.PC TCP 连接到target1  <random_port>,<target_ip>
+    4.PC tcp 连接到不存在的port ,<target_ip>
+  sub module: TCP
+  summary: AP mode, server listen test. use different kinds of port
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0112
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SOC SOC2 SEND 5
+    - - R SSC1 SL <sock1>+5
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC2 RL 5
+  - - SSC SSC1 soc -S -s <sock1> -l 1460 -n 100
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC2 RL 146000
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.target收到5byte数据
+    6.PC收到5byte数据
+    7.OK,PC 收到146000 byte数据
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |
+    1. PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket
+    3.target1上使用步骤2创建的socket,去连接PC的ip,test_tcp_port1
+    4.PC与target1 创建好TCP 连接,有ACCEPT
+    5.PC send 5 bytes to 8266
+    6.8266 send 5 bytes to PC
+    7.8266 send 100 * 1460 to PC.
+  sub module: TCP
+  summary: AP mode, send/recv basic test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0113
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock1> -h B
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock2> -h W
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock3>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock3> -h R
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK,pc tcp server accept成功
+    7.OK
+    8.OK
+    9.OK,pc tcp server accept成功
+    10.OK
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    4.target1 shutdown socket1 B
+    5.target1上创建TCP socket
+    6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    7.target1 shutdown socket2 W
+    8.target1上创建TCP socket
+    9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    10.target1 shutdown socket3 R
+  sub module: TCP
+  summary: AP mode, shutdown basic test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0114
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC2 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
+    - - R SSC1 A <sock2>:ACCEPT:(\d+),\d+,.+,\d+
+  - - SSC SSC1 soc -T -s <sock2>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock1>
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+    6.OK,target1上accept 成功
+    7.target1关闭socket1
+    8.target1关闭socket2
+    9.OK
+    10.OK,pc tcp server accept成功
+    11.target1关闭socket1
+    12.OK
+    13.OK,pc tcp server accept成功
+    14.OK
+    15.target1关闭socket1
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n4.target1上创建TCP
+    socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT<random_port>,<target_ip>
+    ,tcp 连接创建成功,创建socket2             \n7.target1关闭socket1\n8.target1关闭socket2\n9.target1上创建TCP
+    socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n11.target1关闭socket1\n12.target1上创建TCP
+    socket1\n13.target1上使用步骤13创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown
+    socket1\n15.target1关闭socket1"
+  sub module: TCP
+  summary: AP mode, close for different types of TCP sockets test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0115
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock3>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock4>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock4> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock5>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock5> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4 OK
+    5.OK,pc tcp server accept成功
+    6.OK
+    7.OK,pc tcp server accept成功
+    8 OK
+    9.OK,pc tcp server accept成功
+    10.OK
+    11.OK,pc tcp server accept成功
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1
+    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    4.target1上创建TCP socket2
+    5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    6.target1上创建TCP socket3
+    7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    8.target1上创建TCP socket4
+    9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    10.target1上创建TCP socket5
+    11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+  sub module: TCP
+  summary: AP mode, create max TCP sockets test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0116
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC2 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+  - - SOC SOC3 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+  - - SOC SOC4 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+  - - SOC SOC5 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+  - - SOC SOC6 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
+    - - R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+
+  execution time: 0.0
+  expected result: |-
+    1.+BIND:0,OK,0.0.0.0
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK,pc tcp server accept成功
+    5.OK,pc tcp server accept成功
+    6.OK,pc tcp server accept成功
+    7.OK,pc tcp server accept成功
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT<random_port>,<target_ip>
+    ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket3
+    \n5.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT<random_port>,<target_ip>
+    ,tcp 连接创建成功,创建socket5  \n7.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket6
+    \   "
+  sub module: TCP
+  summary: AP mode, accept max TCP client by server test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0201
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock2>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock3>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock3> -h B
+    - - P SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -T
+    - - R SSC1 C +CLOSEALL
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.ok
+    2.OK
+    3.ERROR
+    4.OK
+    5.OK
+    6.ERROR
+    7.OK
+    8.OK
+    9.OK
+    10.OK
+    11.OK
+    12.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0,<test_udp_port1>
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,<test_udp_port1>
+    4.target1上创建TCP socket
+    5.target1上使用步骤4创建的socket,创建TCP 监听
+    6.target1上使用步骤4创建的socket,去连接 PC的ip,<test_tcp_port1>
+    7.target1上创建TCP socket
+    8.target1上使用步骤7创建的socket,去连接 PC的ip,<test_tcp_port1>
+    9.target1上关闭步骤7创建的socket
+    10.target1上使用步骤7创建的socket,去连接 PC的ip,<test_tcp_port1>
+    11.target1上关闭所有创建的socket
+    12.target1上使用步骤2创建的socket,去连接 PC的ip,<test_tcp_port1>
+  sub module: TCP
+  summary: STA mode, connect test. use socket in state that can't connect
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) in different state
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0202
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,ERROR
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -L -s <sock2>
+    - - R SSC1 RE LISTEN:\d+,ERROR
+  - - SSC SSC1 soc -D -s <sock2>
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -L -s <sock2>
+    - - R SSC1 RE LISTEN:\d+,ERROR
+  - - SSC SSC1 soc -L -s 1000
+    - - R SSC1 RE LISTEN:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.ERROR
+    4.OK
+    5.OK
+    6.ERROR
+    7.OK
+    8.ERROR
+    9.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0,<test_udp_port1>
+    3.target1上使用步骤2创建的socket,去建立TCP 监听
+    4.target1上创建TCP socket
+    5.target1上使用步骤4创建的socket,去连接 PC的ip,<test_tcp_port1>
+    6.target1上使用步骤4创建的socket,创建TCP 监听
+    7.target1上shutdown 步骤4的socket
+    8.target1上使用步骤4创建的socket,创建TCP 监听
+    9.target1上使用不存在socket,创建TCP 监听
+  sub module: TCP
+  summary: STA mode, server listen test. use socket in state that can't listen
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) in different state
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0203
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1>
+    - - R SSC1 RE SEND:\d+,ERROR
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock2>
+    - - R SSC1 RE SEND:\d+,ERROR
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock2>
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -S -s <sock2>
+    - - R SSC1 RE SEND:\d+,ERROR
+  - - SSC SSC1 soc -S -s 1000
+    - - R SSC1 RE SEND:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.ERROR
+    4.OK
+    5.ERROR
+    6.OK
+    7.OK
+    8.ERROR
+    9.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建UDP传输socket1,<test_udp_port1>
+    3.target1上使用步骤2创建的socket1,去发送数据
+    4.target1上创建TCP socket2
+    5.target1上使用步骤4创建的socket2,去发送数据
+    6.target1上使用步骤4创建的socket2,创建TCP连接,连接成功
+    7.target1上shutdown 步骤4的socket2
+    8.target1往socket2发送错误命令发送数据
+    9.target1上不指定socket往上发送数据
+  sub module: TCP
+  summary: send test. use socket in state that can't send
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) in different state
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0204
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -w 0
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SOC SOC2 SEND 146000
+    - - P SOC_COM R *
+  - - SSC SSC1 soc -W -s <sock1> -o 1
+    - - P SSC1 RE WORKTHREAD:\d+,OK
+      - P SSC1 SL <sock1>+2920
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK,pc server accept OK
+    4.OK
+    5.OK
+    6.OK
+    7.target收到146000 byte
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1
+    4.PC与target1 创建好TCP 连接,有ACCEPT
+    5.target上不进行recv
+    6.PC send 100 * 1460 data to target,
+    7.在target上开始recv
+  sub module: TCP
+  summary: STA mode, recv buffer test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) in different state
+  version: v2 (2016-10-19)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0206
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ip>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ip>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock2>
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock3>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock3>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC2 CONNECT <random_port> <target_ip>
+    - - R SSC1 A <sock4>:ACCEPT:(\d+),\d+,.+,\d+
+  - - SSC SSC1 soc -I
+    - - P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(<sock1>,<target_ip>,<pc_ip>,<test_tcp_port1>)
+      - P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%(<sock2>)
+      - P SSC1 RE "SOCINFO:%%s,82,.+,%%d"%%(<sock3>,<random_port>)
+      - P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(<sock4>,<target_ip>,<random_port>,<pc_ip>)
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.PC OK, target1 +ACCEPT:3,2,<pc_ip>,port
+    10.+SOCINFO:<sock1>,<target_ip>,<pc_ip>,<test_tcp_port1>
+    +SOCINFO:<sock2>,<target_ip>,<pc_ip>,<test_tcp_port1>
+    +SOCINFO:<sock3>,<random_port>
+    +SOCINFO:<sock4>,<target_ip>,<random_port>,<pc_ip>
+    +SOCINF0ALL
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接
+    PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接
+    PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC
+    CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket4  \n10.target1 查询the socket
+    information"
+  sub module: TCP
+  summary: STA mode, get active socket info test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) in different state
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0207
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock2>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock3>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock3> -h B
+    - - P SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -T
+    - - R SSC1 C +CLOSEALL
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.ok
+    2 OK
+    3.ERROR
+    4.OK
+    5.OK
+    6.ERROR
+    7.OK
+    8.OK
+    9.OK
+    10.OK
+    11.OK
+    12.ERROR
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0,<test_udp_port1>
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,<test_udp_port1>
+    4.target1上创建TCP socket
+    5.target1上使用步骤4创建的socket,创建TCP 监听
+    6.target1上使用步骤4创建的socket,去连接 PC的ip,<test_tcp_port1>
+    7.target1上创建TCP socket
+    8.target1上使用步骤7创建的socket,去连接 PC的ip,<test_tcp_port1>
+    9.target1上关闭步骤7创建的socket
+    10.target1上使用步骤7创建的socket,去连接 PC的ip,<test_tcp_port1>
+    11.target1上关闭所有创建的socket
+    12.target1上使用步骤2创建的socket,去连接 PC的ip,<test_tcp_port1>
+  sub module: TCP
+  summary: AP mode, connect test. use socket in state that can't connect
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) in different state
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0208
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,ERROR
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -L -s <sock2>
+    - - R SSC1 RE LISTEN:\d+,ERROR
+  - - SSC SSC1 soc -D -s <sock2>
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -L -s <sock2>
+    - - R SSC1 RE LISTEN:\d+,ERROR
+  - - SSC SSC1 soc -L -s 1000
+    - - R SSC1 RE LISTEN:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.ERROR
+    4 OK
+    5.OK
+    6.ERROR
+    7.OK
+    8.ERROR
+    9.ERROR
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0,<test_udp_port1>
+    3.target1上使用步骤2创建的socket,去建立TCP 监听
+    4.target1上创建TCP socket
+    5.target1上使用步骤4创建的socket,去连接 PC的ip,<test_tcp_port1>
+    6.target1上使用步骤4创建的socket,创建TCP 监听
+    7.target1上shutdown 步骤4的socket
+    8.target1上使用步骤4创建的socket,创建TCP 监听
+    9.target1上使用不存在socket,创建TCP 监听
+  sub module: TCP
+  summary: AP mode, server listen test. use socket in state that can't listen
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) in different state
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0210
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -w 0
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SOC SOC2 SEND 146000
+    - - P SOC_COM R *
+  - - SSC SSC1 soc -W -s <sock1> -o 1
+    - - P SSC1 RE WORKTHREAD:\d+,OK
+      - P SSC1 SL <sock1>+2920
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    6.OK
+    7.收到 146000 数据
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1
+    4.PC与target1 创建好TCP 连接,有ACCEPT
+    5.target停止调用recv
+    6.PC send 100 * 1460 data to 8266,
+    7.target重新调用recv
+  sub module: TCP
+  summary: AP mode, recv buffer test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) in different state
+  version: v2 (2016-10-19)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0212
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ap_ip>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ap_ip>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -D -s <sock2>
+    - - R SSC1 RE SHUTDOWN:\d+,OK
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock3>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock3>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC2 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
+    - - R SSC1 A <sock4>:ACCEPT:(\d+),\d+,.+,\d+
+  - - SSC SSC1 soc -I
+    - - P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(<sock1>,<target_ap_ip>,<pc_ip_wifi>,<test_tcp_port1>)
+      - P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%(<sock2>)
+      - P SSC1 RE "SOCINFO:%%s,82,.+,%%d"%%(<sock3>,<random_port>)
+      - P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(<sock4>,<target_ap_ip>,<random_port>,<pc_ip_wifi>)
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.PC OK, target1 +ACCEPT:3,2,<pc_ip>,port
+    10.+SOCINFO:<sock1>,<target_ip>,<pc_ip>,<test_tcp_port1>
+    +SOCINFO:<sock2>,<target_ip>,<pc_ip>,<test_tcp_port1>
+    +SOCINFO:<sock3>,<random_port>
+    +SOCINFO:<sock4>,<target_ip>,<random_port>,<pc_ip>
+    +SOCINF0ALL
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接
+    PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接
+    PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC
+    CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket4  \n10.target1 查询the socket
+    information"
+  sub module: TCP
+  summary: AP mode, get active socket info test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) in different state
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0213
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -A -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC2 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
+    - - R SSC1 A <sock2>:ACCEPT:(\d+),\d+,.+,\d+
+  - - SSC SSC1 soc -A -s <sock2>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -A -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -A -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+    10.ERROR
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1
+    3.target1 abort socket1
+    4.target1上创建TCP socket 端口随机
+    5.target1上使用步骤4创建的socket1,去监听
+    6.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket2
+    7.target1 abort socket1
+    8.target1 abort socket2
+    9.target1上创建TCP socket1
+    10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
+    11.target1 abort socket1
+  sub module: TCP
+  summary: AP mode, espconn abort test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use TCP SAP (socket/espconn API) in different state
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0301
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 lev -N -t GET
+    - - R SSC1 RE NUMBER:\d+,OK
+  execution time: 0.0
+  expected result: 1.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: 1.lev -N -t GET
+  sub module: TCP
+  summary: STA mode, max connections number query
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0302
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 lev -N -t SET -n 2
+    - - R SSC1 C +NUMBER:OK
+  - - SSC SSC1 lev -N -t SET -n 0
+    - - R SSC1 C +NUMBER:ERROR
+  - - SSC SSC1 lev -N -t SET -n 16
+    - - R SSC1 C +NUMBER:ERROR
+  - - SSC SSC1 lev -N -t SET -n 15
+    - - R SSC1 C +NUMBER:OK
+  - - SSC SSC1 lev -N -t SET -n 8
+    - - R SSC1 C +NUMBER:OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ERROR
+    3.ERROR
+    4.OK
+    5.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.lev -N -t SET -n 2
+    2.lev -N -t SET -n 0
+    3.lev -N -t SET -n 15
+    4.lev -N -t SET -n 16
+    5.lev -N -t SET -n 8
+  sub module: TCP
+  summary: STA mode, max connections number set
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0303
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 lev -N -t SET -n 3
+    - - R SSC1 C +NUMBER:OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC3
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock3>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC4
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock4>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock4> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -T
+    - - R SSC1 C +CLOSE
+  - - SSC SSC1 lev -N -t SET -n 8
+    - - R SSC1 C +NUMBER:OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+    10.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1,本地ip target_ip
+    3.target1上使用步骤2创建的socket1,去连接 pc_ip的ip,test_tcp_port1,PC有ACCEPT
+    4.lev -N -t SET -n 3
+    5.target1上创建TCP socket3,本地端口random_port
+    6.target1上使用步骤5创建的socket2,去连接 pc_ip_wifi的ip,test_tcp_port1,PC有ACCEPT
+    7.target1上创建TCP socket3,本地端口random_port
+    8.target1上使用步骤7创建的socket3,去连接 pc_ip_wifi的ip,test_tcp_port1,PC有ACCEPT
+    9.target1上创建TCP socket4,本地端口random_port
+    10.target1上使用步骤5创建的socket4,去连接 pc_ip_wifi的ip,test_tcp_port1,未连接成功
+  sub module: TCP
+  summary: STA mode, max connections fucntion verify
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0304
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SOC SOC2 SEND 5
+    - - R SSC1 SL <sock1>+5
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC2 RL 5
+  - - SSC SSC1 lev -N -t SET -n 3
+    - - R SSC1 C +NUMBER:OK
+  - - SOC SOC2 SEND 146000
+    - - R SSC1 SL <sock1>+146000
+  - - SSC SSC1 soc -S -s <sock1> -l 1460 -n 100
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC2 RL 146000
+  - - SSC SSC1 lev -N -t SET -n 8
+    - - R SSC1 C +NUMBER:OK
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1,本地ip target_ip
+    3.target1上使用步骤2创建的socket1,去连接 pc_ip的ip,test_tcp_port1,PC有ACCEPT
+    4.PC 往8266发送数据
+    5.8266往PC 发送数据
+    6.lev -N -t SET -n 3
+    7.PC 往8266发送数据 146000
+    8.8266往PC 发送数据1460*100
+    9.target1上lev -N -t SET -n 8
+  sub module: TCP
+  summary: STA mode, max connections set interact with TCP connect and send
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0305
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC1 CONNECT <random_port> <target_ip>
+    - - R SSC1 A <sock2>:ACCEPT:(\d+),\d+,.+,\d+
+      - P SOC_COM C OK
+  - - SSC SSC1 lev -A -s <sock1> -t GET
+    - - 'R SSC1 RE ALLOW:'
+  - - SSC SSC1 lev -A -s <sock1> -t SET -n 4
+    - - R SSC1 RE ALLOW:\d+,OK
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.ERROR
+    5.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1,本地ip target_ip
+    3.target1上使用步骤2创建的socket1,去连接 pc_ip的ip,test_tcp_port1,PC有ACCEPT
+    4.lev -A -s <sock1> -t GET
+    5.target1上lev -A -s <sock1> -t SET -n 4
+  sub module: TCP
+  summary: STA mode, max TCP connection allowed by server test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0306
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC1 CONNECT <random_port> <target_ip>
+    - - R SSC1 A <sock2>:ACCEPT:(\d+),\d+,.+,\d+
+      - P SOC_COM C OK
+  - - 'SSC SSC1 lev -K -s <sock2> -t ENABLE '
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - 'SSC SSC1 lev -K -s <sock2> -t GET '
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - SSC SSC1 lev -K -s <sock2> -t SET -i 30 -d 3 -c 2
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - DELAY 30
+    - - P SOC_COM NC SOC_CLOSED
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.SOC_COM NC SOC_CLOSED
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接
+    pc_ip的ip,test_tcp_port1,PC有ACCEPT\n4.lev -K -s <sock1> -t ENABLE \n5.target1上lev
+    -K -s <sock1> -t GET \n6.lev -K -s <sock1> -t SET -i 30 -d 3 -c 2\n7.等待30s"
+  sub module: TCP
+  summary: STA mode, keep alive test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0307
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - R SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC1 CONNECT <random_port> <target_ip>
+    - - R SSC1 A <sock2>:ACCEPT:(\d+),\d+,.+,\d+
+      - R SOC_COM L OK
+  - - 'SSC SSC1 lev -K -s <sock2> -t ENABLE '
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - 'SSC SSC1 lev -K -s <sock2> -t GET '
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - SSC SSC1 lev -K -s <sock2> -t SET -i 30 -d 3 -c 2
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - SOC SOC1 SEND 5
+    - - R SSC1 SL <sock2>+5
+  - - SSC SSC1 soc -S -s <sock2> -l 5
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC1 RL 5
+  - - SOC SOC1 SEND 146000
+    - - R SSC1 SL <sock2>+146000
+  - - SSC SSC1 soc -S -s <sock2> -l 1460 -n 100
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC1 RL 146000
+  - - DELAY 30
+    - - P SOC_COM NC SOC_CLOSED
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.0K
+    8.OK
+    9.OK
+    10.OK
+    11.SOC_COM NC SOC_CLOSED
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接
+    pc_ip的ip,test_tcp_port1,PC有ACCEPT\n4.lev -K -s <sock1> -t ENABLE \n5.target1上lev
+    -K -s <sock1> -t GET \n6.lev -K -s <sock1> -t SET -i 30 -d 3 -c 2\n7.PC往8266发送数据\n8.8266往PC上发送数据\n9.PC往8266发送146000数据\n10.8266往PC上发送1460*100数据\n11.等待30s"
+  sub module: TCP
+  summary: STA mode, keep alive interact with TCP send
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0308
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 lev -N -t GET
+    - - R SSC1 RE NUMBER:\d+,OK
+  execution time: 0.0
+  expected result: 1.OK
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: 1.lev -N -t GET
+  sub module: TCP
+  summary: AP mode, max connections number query
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0309
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 lev -N -t SET -n 2
+    - - R SSC1 C +NUMBER:OK
+  - - SSC SSC1 lev -N -t SET -n 0
+    - - R SSC1 C +NUMBER:ERROR
+  - - SSC SSC1 lev -N -t SET -n 16
+    - - R SSC1 C +NUMBER:ERROR
+  - - SSC SSC1 lev -N -t SET -n 15
+    - - R SSC1 C +NUMBER:OK
+  - - SSC SSC1 lev -N -t SET -n 8
+    - - R SSC1 C +NUMBER:OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ERROR
+    3.ERROR
+    4.OK
+    5.OK
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.lev -N -t SET -n 2
+    2.lev -N -t SET -n 0
+    3.lev -N -t SET -n 15
+    4.lev -N -t SET -n 16
+    5.lev -N -t SET -n 8
+  sub module: TCP
+  summary: AP mode, max connections number set
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0310
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 lev -N -t SET -n 3
+    - - R SSC1 C +NUMBER:OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC3
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock3>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC4
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock4>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock4> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -T
+    - - R SSC1 C +CLOSE
+  - - SSC SSC1 lev -N -t SET -n 8
+    - - R SSC1 C +NUMBER:OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+    10.ERROR
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1,本地ip target_ip
+    3.target1上使用步骤2创建的socket1,去连接 pc_ip_wifi的ip,test_tcp_port1,PC有ACCEPT
+    4.lev -N -t SET -n 3
+    5.target1上创建TCP socket3,本地端口random_port
+    6.target1上使用步骤5创建的socket2,去连接 pc_ip_wifi的ip,test_tcp_port1,PC有ACCEPT
+    7.target1上创建TCP socket3,本地端口random_port
+    8.target1上使用步骤7创建的socket3,去连接 pc_ip_wifi的ip,test_tcp_port1,PC有ACCEPT
+    9.target1上创建TCP socket4,本地端口random_port
+    10.target1上使用步骤5创建的socket4,去连接 pc_ip_wifi的ip,test_tcp_port1,未连接成功
+  sub module: TCP
+  summary: AP mode, max connections fucntion verify
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0311
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SOC SOC2 SEND 5
+    - - R SSC1 SL <sock1>+5
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC2 RL 5
+  - - SSC SSC1 lev -N -t SET -n 3
+    - - R SSC1 C +NUMBER:OK
+  - - SOC SOC2 SEND 146000
+    - - R SSC1 SL <sock1>+146000
+  - - SSC SSC1 soc -S -s <sock1> -l 1460 -n 100
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC2 RL 146000
+  - - SSC SSC1 lev -N -t SET -n 8
+    - - R SSC1 C +NUMBER:OK
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1,本地ip target_ip
+    3.target1上使用步骤2创建的socket1,去连接 pc_ip_wifi的ip,test_tcp_port1,PC有ACCEPT
+    4.PC 往8266发送数据
+    5.8266往PC 发送数据
+    6.lev -N -t SET -n 3
+    7.PC 往8266发送数据 146000
+    8.8266往PC 发送数据1460*100
+    9.target1上lev -N -t SET -n 8
+  sub module: TCP
+  summary: AP mode, max connections set interact with TCP connect and send
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0312
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 lev -A -s <sock1> -t GET
+    - - R SSC1 RE ALLOW:\d+,ERROR
+  - - SSC SSC1 lev -A -s <sock1> -t SET -n 4
+    - - R SSC1 RE ALLOW:\d+,ERROR
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.ERROR
+    5.ERROR
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1,本地ip target_ip
+    3.target1上使用步骤2创建的socket1,去连接 pc_ip_wifi的ip,test_tcp_port1,PC有ACCEPT
+    4.lev -A -s <sock1> -t GET
+    5.target1上lev -A -s <sock1> -t SET -n 4
+  sub module: TCP
+  summary: AP mode, max TCP connection allowed by server test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0313
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - 'SSC SSC1 lev -K -s <sock1> -t ENABLE '
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - 'SSC SSC1 lev -K -s <sock1> -t GET '
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - SSC SSC1 lev -K -s <sock1> -t SET -i 30 -d 3 -c 2
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - DELAY 30
+    - - P SOC_COM NC SOC_CLOSED
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.SOC_COM NC SOC_CLOSED
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接
+    pc_ip_wifi的ip,test_tcp_port1,PC有ACCEPT\n4.lev -K -s <sock1> -t ENABLE \n5.target1上lev
+    -K -s <sock1> -t GET \n6.lev -K -s <sock1> -t SET -i 30 -d 3 -c 2\n7.等待30s"
+  sub module: TCP
+  summary: AP mode, keep alive test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0314
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - 'SSC SSC1 lev -K -s <sock1> -t ENABLE '
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - 'SSC SSC1 lev -K -s <sock1> -t GET '
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - SSC SSC1 lev -K -s <sock1> -t SET -i 30 -d 3 -c 2
+    - - R SSC1 RE KEEPALIVE:\d+,OK
+  - - SOC SOC2 SEND 5
+    - - R SSC1 SL <sock1>+5
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC2 RL 5
+  - - SOC SOC2 SEND 146000
+    - - R SSC1 SL <sock1>+146000
+  - - SSC SSC1 soc -S -s <sock1> -l 1460 -n 100
+    - - P SSC1 RE SEND:\d+,OK
+      - P SOC2 RL 146000
+  - - DELAY 30
+    - - P SOC_COM NC SOC_CLOSED
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK,pc tcp server accept成功
+    4.OK
+    5.OK
+    6.OK
+    7.0K
+    8.OK
+    9.OK
+    10.OK
+    11.SOC_COM NC SOC_CLOSED
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接
+    pc_ip_wifi的ip,test_tcp_port1,PC有ACCEPT\n4.lev -K -s <sock1> -t ENABLE \n5.target1上lev
+    -K -s <sock1> -t GET \n6.lev -K -s <sock1> -t SET -i 30 -d 3 -c 2\n7.PC往8266发送数据\n8.8266往PC上发送数据\n9.PC往8266发送146000数据\n10.8266往PC上发送1460*100数据\n11.等待30s"
+  sub module: TCP
+  summary: AP mode, keep alive interact with TCP send
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket option test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0401
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 sta -D
+    - - P SSC1 C +QAP:OK
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1
+    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1
+    4.PC与target1创建好TCP 连接,有ACCEPT
+    5.断开与AP 连接
+    6.8266往PC上发送5字节数据
+  sub module: TCP
+  summary: do TCP send after WIFI disconnected
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0402
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 sta -D
+    - - P SSC1 C +QAP:OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1
+    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1
+    4.PC与target1创建好TCP 连接,有ACCEPT
+    5.断开与AP 连接
+    6.关闭建立的socket1连接
+  sub module: TCP
+  summary: "close TCP socket after WIFI \ndisconnected"
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0403
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 op -S -o 2
+    - - P SSC1 C +MODE:OK
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接
+    PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode
+    \n6.8266往PC上发送5字节数据"
+  sub module: TCP
+  summary: do TCP send after mode changed
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0404
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 op -S -o 2
+    - - P SSC1 C +MODE:OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接
+    PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode
+    \n6.关闭建立的socket1连接"
+  sub module: TCP
+  summary: close TCP socket after mode changed
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0405
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - NIC <pc_nic> DISABLED
+    - - R PC_COM C OK
+  - - SSC SSC1 soc -S -s <sock1> -l 1
+    - - ''
+  - - DELAY 5400
+    - - P SSC1 RE CLOSED:\d+,0
+  execution time: 1.5
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.TCP连接断开
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1
+    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1
+    4.PC与target1创建好TCP 连接,有ACCEPT
+    5.PC 网卡 disable
+    6.target1上使用socket1发送数据,等待 90 分钟
+  sub module: TCP
+  summary: do TCP send after PC NIC disabled
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0406
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - NIC <pc_nic> DISABLED
+    - - R PC_COM C OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接
+    PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.PC上网卡禁止掉 \n6.关闭建立的socket1连接"
+  sub module: TCP
+  summary: close TCP socket after PC NIC disabled
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0407
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: '1/2'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 dhcp -E -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 ip -S -o 1 -i 192.168.111.210
+    - - P SSC1 C +IP:OK
+  - - SSC SSC1 ip -Q -o 1
+    - - R SSC1 C +STAIP:192.168.111.210
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接
+    PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta
+    ip \n7.查询sta ip 地址是否生效\n8.8266往PC上发送5字节数据"
+  sub module: TCP
+  summary: do TCP send after IP changed
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0408
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 dhcp -E -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 ip -S -o 1 -i 192.168.111.210
+    - - P SSC1 C +IP:OK
+  - - SSC SSC1 ip -Q -o 1
+    - - R SSC1 C +STAIP:192.168.111.210
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接
+    PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta
+    ip \n7.查询sta ip 地址是否生效\n8.关闭建立的socket1连接"
+  sub module: TCP
+  summary: close TCP socket after IP changed
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0411
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock2> -l 5
+    - - P SSC1 RE SEND:\d+,ERROR
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.ERROR
+    7.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1
+    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1
+    4.PC与target1创建好TCP 连接,有ACCEPT
+    5.target1上创建TCP socket2
+    6.8266往PC socket2上发送5字节数据
+    7.8266往PC socket1上发送5字节数据
+  sub module: TCP
+  summary: do TCP send after socket changed
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0412
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - R SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 soc -T -s <sock2>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.target1上创建TCP socket1
+    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1
+    4.PC与target1创建好TCP 连接,有ACCEPT
+    5.target1上创建TCP socket2
+    6.关闭socket1 连接
+    7.关闭socket2连接
+  sub module: TCP
+  summary: close TCP send after socket changed
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_0501
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - STRING <cap_filter> ether%20src%20%%s%20or%20ether%20dst%20%%s <target_mac>
+      <target_mac>
+    - - R PC_COM C OK
+  - - NIC NIC1 START <pc_nic> capture+block_ip <cap_filter>
+    - - R PC_COM C +NIC_START:OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - ''
+  - - DELAY 10
+    - - R SSC1 RE CONNECT:\d+,ERROR
+  execution time: 0.0
+  expected result: 2. connect failed, no exception
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. PC do not reply any IP packet on NIC
+    2. target try to connect to TCP server with PC NIC IP
+  sub module: TCP
+  summary: PC do not reply TCP SYN of target
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: TCP connect and disconnect abnormal case
+  version: v1 (2015-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0601
+  SDK: |-
+    8266_RTOS
+    8266_NonOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - PING <target_ip> -c 1
+    - - R PC_COM C +PING
+  - - SOC SOC1 LISTEN <random_port> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 socopt -S -s <sock1> -k Keepalive -o 1
+    - - R SSC1 C +SETOPTION:Keepalive,OK
+  - - SSC SSC1 socopt -S -s <sock1> -k Keepidle -o 20
+    - - R SSC1 C +SETOPTION:Keepidle,OK
+  - - SSC SSC1 socopt -S -s <sock1> -k Keepintvl -o 1
+    - - R SSC1 C +SETOPTION:Keepintvl,OK
+  - - SSC SSC1 socopt -S -s <sock1> -k Keepcnt -o 3
+    - - R SSC1 C +SETOPTION:Keepcnt,OK
+  - - NIC <pc_nic> DISABLED
+    - - R PC_COM C OK
+  - - DELAY 30
+    - - R SSC1 C CLOSE
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+    10.等待30s
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PING <target_ip>
+    2.PC上建立TCP 监听 random_port
+    3.target1上创建TCP socket
+    4.target1上步骤3创建的socket设置so_keepalive属性
+    5.target1上步骤3创建的socket设置so_keepidle参数
+    6.target1上步骤3创建的socket设置so_keepintvl参数
+    7.target1上步骤3创建的socket设置so_keepcnt参数
+    8.target1上使用步骤7具有so_keepalive属性及参数的socket,去连接 PC的ip,random_port
+    9.PC上网卡禁止掉
+    10.等待30s
+  sub module: TCP
+  summary: Test socket with so_keepalive option
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0602
+  SDK: |-
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port1>
+    - - R SSC1 C +BIND:ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上创建TCP socket,bind test_udp_port1
+    2.target1上创建TCP socket,bind test_udp_port1
+  sub module: TCP
+  summary: Test socket with so_reuseaddr option closed on TCP submodule
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0603
+  SDK: ESP32_IDF
+  Test App: SSC_OPTION
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <random_port> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port2>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -T
+    - - R SSC1 C CLOSEALL
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port2>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock2>
+    - - P SSC1 RE LISTEN:\d+,OK
+  - - SSC SSC1 soc -T
+    - - R SSC1 C CLOSEALL
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.CLOSEALL
+    5.OK
+    6.OK
+    7.CLOSEALL
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.find esp-idf/components/lwip/include/lwip/lwip/opt.h file, make "#define SO_REUSE  1" instead of "#define SO_REUSE  0"
+    2.switch to esp-idf/SSC, run "./gen_misc_ng.sh SSC_OPTION" and "make flash", then run the test case normally
+    3.PC上建立TCP 监听 random_port
+    4.target1上创建TCP socket,bind test_tcp_port2
+    5.target1上使用步骤4创建的socket,去连接 PC的ip,random_port
+    6.关闭socket
+    7.target1上创建TCP socket,bind test_tcp_port2
+    8.target1上建立TCP 监听
+    9.关闭socket
+  sub module: TCP
+  summary: Test socket with so_reuseaddr option opened that close TCP connection not
+    react immediately on ESP32
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0604
+  SDK: ESP32_IDF
+  Test App: SSC_OPTION
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port1>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.find esp-idf/components/lwip/include/lwip/lwip/opt.h file, make "#define SO_REUSE  1" instead of "#define SO_REUSE  0"
+    2.switch to esp-idf/SSC, run "./gen_misc_ng.sh SSC_OPTION" and "make flash", then run the test case normally
+    3.target1上创建TCP socket,bind test_udp_port1
+    4.target1上创建TCP socket,bind test_udp_port1
+  sub module: TCP
+  summary: Test socket with so_reuseaddr option opened that build two tcp sockets
+    by binding same ip and port on ESP32
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0605
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <random_port> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SOC SOC2 SEND 5
+    - - R SSC1 SL <sock1>+5
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,OK
+  - - SSC SSC1 socopt -S -s <sock1> -k Sndtimeo -o 1
+    - - R SSC1 C +SETOPTION:Sndtimeo,OK
+  - - NIC <pc_nic> DISABLED
+    - - R PC_COM C OK
+  - - SSC SSC1 soc -S -s <sock1> -l 5000
+    - - P SSC1 RE SEND:\d+,OK
+  - - SSC SSC1 soc -S -s <sock1> -l 5000
+    - - P SSC1 RE SEND:\d+,ERROR,11
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+    10.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 random_port
+    2.target1上创建TCP socket
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,random_port
+    4.PC与target1 创建好TCP 连接,有ACCEPT
+    5.PC send 5 bytes to target1
+    6.target1 send 5 bytes to PC
+    7.target1上对步骤2创建的socket设置so_sndtimeo属性
+    8.PC上网卡禁止掉
+    9.target1 send 5000 bytes to PC
+    10.target1 send 5000 bytes to PC
+  sub module: TCP
+  summary: Test socket with so_sndtimeo option on ESP32
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0606
+  SDK: |-
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - PING <target_ip> -c 1
+    - - R PC_COM C +PING
+  - - SOC SOC1 LISTEN <random_port> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SOC SOC2 SEND 5
+    - - R SSC1 SL <sock1>+5
+  - - SSC SSC1 socopt -S -s <sock1> -k Rcvtimeo -o 1
+    - - R SSC1 C +SETOPTION:Rcvtimeo,OK
+  - - SOC SOC2 SEND 5
+    - - R SSC1 RE CLOSED:\d+,11
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.CLOSED
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PING <target_ip>
+    2.PC上建立TCP 监听 random_port
+    3.target1上创建TCP socket
+    4.target1上使用步骤3创建的socket,去连接 PC的ip,random_port
+    5.PC与target1 创建好TCP 连接,有ACCEPT
+    6.PC send 5 bytes to target1
+    7.target1上对步骤3创建的socket设置so_rcvtimeo属性
+    8.PC send 5 bytes to target1
+  sub module: TCP
+  summary: Test socket with so_rcvtimeo option
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0607
+  SDK: |-
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <random_port> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 random_port
+    2.target1上创建TCP socket
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,random_port
+    4.target1上使用步骤2创建的socket,去连接 PC的ip,random_port, 获取 error code
+  sub module: TCP
+  summary: Test socket with so_error option
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0608
+  SDK: 8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <random_port> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 ram -Q
+    - - R SSC1 A <heapsize>:\+FREEHEAP:(\d+)\r\n
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 socopt -S -s <sock1> -k Linger -o 1
+    - - R SSC1 C +SETOPTION:Linger,OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -T
+    - - P SSC1 RE CLOSE:\d+,OK
+  - - SSC SSC1 ram -Q
+    - - R SSC1 P <heapsize>
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.查询空闲ram
+    3.OK
+    4.OK
+    5.OK
+    6.OK
+    7.查询空闲ram
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 random_port
+    2.查询空闲ram
+    3.target1上创建TCP socket
+    4.target1上对步骤3创建的socket设置so_linger属性
+    5.target1上使用步骤4具有so_linger属性的socket,去连接 PC的ip,random_port
+    6.关闭 socket
+    7.查询空闲ram
+  sub module: TCP
+  summary: Test socket with so_linger option
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_0609
+  SDK: 8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'No'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <random_port> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -T
+    - - R SSC1 C CLOSEALL
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port1>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock2>
+    - - P SSC1 RE LISTEN:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.CLOSEALL
+    5.OK
+    6.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.find ESP8266_RTOS_SDK/include/lwip/lwip/opt.h file, make "#define SO_REUSE  1" instead of "#define SO_REUSE  0"
+    2.switch to ESP8266_RTOS_SDK/third_party, run "./make_lib.sh lwip" risc,then continuely run "ll ../lib"
+    3.switch to ESP8266_RTOS_SDK/SSC, run "./gen_misc_rtos.sh SSC", then run the test case normally
+    4.PC上建立TCP 监听 random_port
+    5.target1上创建TCP socket,bind test_tcp_port1
+    6.target1上使用步骤5创建的socket,去连接 PC的ip,random_port
+    7.关闭socket
+    8.target1上创建TCP socket,bind test_tcp_port1
+    9.target1上建立TCP 监听
+  sub module: TCP
+  summary: Test socket with so_reuseaddr option opened that close TCP connection not
+    react immediately on 8266_RTOS
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_0610
+  SDK: 8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'No'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_udp_port1>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.find ESP8266_RTOS_SDK/include/lwip/lwip/opt.h file, make "#define SO_REUSE  1" instead of "#define SO_REUSE  0"
+    2.switch to ESP8266_RTOS_SDK/third_party, run "./make_lib.sh lwip" risc,then continuely run "ll ../lib"
+    3.switch to ESP8266_RTOS_SDK/SSC, run "./gen_misc_rtos.sh SSC", then run the test case normally
+    4.target1上创建TCP socket,bind test_udp_port1
+    5.target1上创建TCP socket,bind test_udp_port1
+  sub module: TCP
+  summary: Test socket with so_reuseaddr option opened that build two tcp sockets
+    by binding same ip and port on 8266_RTOS
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0611
+  SDK: 8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <random_port> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SOC SOC1 ACCEPT SOC2
+    - - R SOC_COM L OK
+  - - SOC SOC2 SEND 5
+    - - R SSC1 SL <sock1>+5
+  - - SSC SSC1 soc -S -s <sock1> -l 5
+    - - P SSC1 RE SEND:\d+,OK
+  - - SSC SSC1 socopt -S -s <sock1> -k Sndtimeo -o 1
+    - - R SSC1 C +SETOPTION:Sndtimeo,OK
+  - - NIC <pc_nic> DISABLED
+    - - R PC_COM C OK
+  - - SSC SSC1 soc -S -s <sock1> -l 1500
+    - - P SSC1 RE SEND:\d+,OK
+  - - SSC SSC1 soc -S -s <sock1> -l 1500
+    - - P SSC1 RE SEND:\d+,ERROR,11
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+    8.OK
+    9.OK
+    10.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 random_port
+    2.target1上创建TCP socket
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,random_port
+    4.PC与target1 创建好TCP 连接,有ACCEPT
+    5.PC send 5 bytes to target1
+    6.target1 send 5 bytes to PC
+    7.target1上对步骤2创建的socket设置so_sndtimeo属性
+    8.PC上网卡禁止掉
+    9.target1 send 1500 bytes to PC
+    10.target1 send 1500 bytes to PC
+  sub module: TCP
+  summary: Test socket with so_sndtimeo option on 8266_RTOS
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0612
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SOC SOC2 LISTEN <test_tcp_port2> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 socopt -S -s <sock1> -k Maxconnect -o 1
+    - - R SSC1 C +SETOPTION:Maxconnect,OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port2>
+    - - P SSC1 RE CONNECT:\d+,ERROR
+  - - SSC SSC1 soc -T
+    - - R SSC1 C CLOSE
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+    6.OK
+    7.ERROR
+    8.CLOSE
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 test_tcp_port1
+    2.PC上建立TCP 监听 test_tcp_port2
+    3.target1上创建TCP socket
+    4.target1上对步骤3创建的socket设置 Maxconnect属性
+    5.target1上使用步骤4具有Maxconnect属性的socket,去连接 PC的ip,test_tcp_port1
+    6.target1上创建TCP socket
+    7.target1上使用步骤6创建的socket,去连接 PC的ip,test_tcp_port2
+    8.关闭socket
+  sub module: TCP
+  summary: Test socket with Maxconnect option
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0613
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - PING <target_ip> -c 1
+    - - R PC_COM C +PING
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <random_port>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - P SSC1 RE LISTEN:\d+,OK
+  - - SSC SSC1 socopt -S -s <sock1> -k MaxConnectNum -o 1
+    - - R SSC1 C +SETOPTION:MaxConnectNum,OK
+  - - SOC SOC1 CONNECT <random_port> <target_ip>
+    - - R SSC1 A <sock2>:ACCEPT:(\d+),\d+,.+,\d+
+  - - SOC SOC2 CONNECT <random_port> <target_ip>
+    - - P SOC_COM C ERROR
+  - - SSC SSC1 soc -T
+    - - R SSC1 C CLOSE
+  execution time: 0.0
+  expected result: |-
+    1.PING <target_ip>
+    2.OK
+    3.OK
+    4.OK
+    5.PC TCP client accept
+    6.ERROR
+    7.CLOSE
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PING <target_ip>
+    2.target1上创建TCP socket,bind random_port
+    3.target1上使用步骤2创建的socket1,建立TCP 监听
+    4.target1上对步骤2创建的socket设置 MaxConnectNum属性
+    5.PC TCP 连接到target1  <random_port>,<target_ip>
+    6.PC TCP 连接到target1  <random_port>,<target_ip>
+    7.关闭socket
+  sub module: TCP
+  summary: Test socket with MaxConnectNum option
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0614
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - PING <target_ip> -c 1
+    - - R PC_COM C +PING
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 socopt -S -s <sock1> -k Registtime -o 20
+    - - R SSC1 C +SETOPTION:Registtime,OK
+  - - SSC SSC1 soc -L -s <sock1>
+    - - P SSC1 RE LISTEN:\d+,OK
+  - - SOC SOC1 CONNECT <test_tcp_port1> <target_ip>
+    - - R SSC1 A <sock1>:ACCEPT:(\d+),\d+,.+,\d+
+  - - DELAY 30
+    - - P SOC_COM NC SOC_CLOSED
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.PC TCP client accept
+    6.等待30s
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PING <target_ip>
+    2.target1上创建TCP socket,bind test_tcp_port1
+    3.target1上对步骤2创建的socket设置 Registtime 属性
+    4.target1上使用步骤3具有Registtime属性的socket1,建立TCP 监听
+    5.PC TCP 连接到target1 <test_tcp_port1>, <target_ip>
+    6.等待30s
+  sub module: TCP
+  summary: Test socket with Registtime option
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0615
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <random_port> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 socopt -S -s <sock1> -k Abort
+    - - R SSC1 C CLOSED
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.CLOSED
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 random_port
+    2.target1上创建TCP socket
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,random_port
+    4.target1上对步骤2创建的socket设置 Abort 属性
+  sub module: TCP
+  summary: Test socket with Abort option
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0616
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 LISTEN <random_port> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <random_port>
+    - - P SSC1 RE CONNECT:\d+,OK
+  - - SSC SSC1 soc -T
+    - - R SSC1 C CLOSEALL
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_tcp_port1>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -L -s <sock2>
+    - - P SSC1 RE LISTEN:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.CLOSEALL
+    5.OK
+    6.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上建立TCP 监听 random_port
+    2.target1上创建TCP socket,bind test_tcp_port1
+    3.target1上使用步骤2创建的socket,去连接 PC的ip,random_port
+    4.关闭socket
+    5.target1上创建TCP socket,bind test_tcp_port1
+    6.target1上建立TCP 监听
+  sub module: TCP
+  summary: Test socket with so_reuseaddr option opened that close TCP connection not
+    react immediately on 8266_NonOS
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_0617
+  SDK: 8266_NonOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t TCP -i <target_ip> -p <test_udp_port1>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上创建TCP socket,bind test_udp_port1
+    2.target1上创建TCP socket,bind test_udp_port1
+  sub module: TCP
+  summary: Test socket with so_reuseaddr option opened that build two tcp sockets
+    by binding same ip and port on 8266_NonOS
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_5001
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPConnection
+  - - max_connection = 5
+    - - dummy
+  - - execute_time = 300
+    - - ''
+  - - connect_method = ["C_01", "C_02", "C_05", "C_07"]
+    - - ''
+  - - disconnect_method = ["D_01", "D_03", "D_05", "D_06"]
+    - - ''
+  - - pc_ip = "pc_ip"
+    - - ''
+  - - target_ip = "target_ip"
+    - - ''
+  execution time: 5.0
+  expected result: 1. succeed
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. random choose connect method to do connect, random choose a method to close
+    Loop executing step 1
+  sub module: TCP
+  summary: test possible TCP connect/disconnect method
+  test environment: SSC_T1_1
+  test point 1: function + stress
+  test point 2: TCP connect and disconnect test
+  version: v2 (2016-11-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_5101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stable
+  cmd set:
+  - TCPStress/TCPAPNSTA
+  - - send_len = 1460
+    - - dummy
+  - - test_time = 720
+    - - ''
+  - - server_port = "<test_tcp_port1>"
+    - - ''
+  - - server_echo = True
+    - - ''
+  - - sta_number = 4
+    - - ''
+  - - send_delay = 50
+    - - ''
+  - - ap_ip = "<target_ap_ip>"
+    - - ''
+  execution time: 12.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. all TCP connection not disconnected
+  initial condition: None
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. all sta connect to softap
+    2. create tcp server on softap
+    3. all sta connect to softap tcp server
+    4. do bi-direction send on all tcp connections
+  sub module: TCP
+  summary: 1 AP 4 STA TCP stable test
+  test environment: SSC_T5_1
+  test point 1: stable
+  test point 2: TCP stable test
+  version: v2 (2016-11-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_5102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stable
+  cmd set:
+  - TCPStress/TCPRandomSend
+  - - delay_config = [0, 0.01, 0.1, 0.5, 1]
+    - - dummy
+  - - send_count = 1000
+    - - ''
+  - - test_time = 300
+    - - ''
+  execution time: 12.0
+  expected result: |-
+    1. succeed
+    2. succeed
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. create TCP connection
+    2. PC send random length data to target
+  sub module: TCP
+  summary: send random length segment to target
+  test environment: SSC_T1_1
+  test point 1: stable
+  test point 2: TCP stable test
+  version: v2 (2016-11-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_5103
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stable
+  cmd set:
+  - TCPStress/TCPSoftAPSTASendRecv
+  - - send_len = 1460
+    - - dummy
+  - - test_time = 720
+    - - ''
+  - - test_count = 0xFFFFFF
+    - - ''
+  - - server_port = "<test_tcp_port1>"
+    - - ''
+  - - server_port_2 = "<test_tcp_port2>"
+    - - ''
+  - - server_echo = True
+    - - ''
+  - - sta_number = 3
+    - - ''
+  - - send_delay = 50
+    - - ''
+  - - pass_standard = (4*3600)
+    - - ''
+  - - ap_ip = "<target_ap_ip>"
+    - - ''
+  execution time: 12.0
+  expected result: |-
+    1. succeed
+    2. verify reciveid data on target and PC succeed
+  initial condition: None
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. create TCP connection
+    2. send specified pattern on both direction
+  sub module: TCP
+  summary: TCP SoftSTA send/recv stress test
+  test environment: SSC_T5_1
+  test point 1: stable
+  test point 2: TCP stable test
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_5104
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPMultiSTASendRecv
+  - - send_len = 1460
+    - - dummy
+  - - test_time = 300
+    - - ''
+  - - server_echo = True
+    - - ''
+  - - sta_number = 5
+    - - ''
+  - - send_delay = 500
+    - - ''
+  execution time: 5.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: None
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. 5 sta connect to softap
+    2. create TCP socket on all sta
+    3. all sta do TCP send/recv
+  sub module: TCP
+  summary: 1 SoftAP 5 STA, create TCP server on one STA, create TCP client on other
+    STA, do TCP send/recv
+  test environment: SSC_T6_1
+  test point 1: stress
+  test point 2: TCP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_5105
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPSTAMuitiSockSendRecv
+  - - send_len = 1460
+    - - dummy
+  - - test_time = 300
+    - - ''
+  - - server_echo = True
+    - - ''
+  - - sta_number = 2
+    - - ''
+  - - conn_number = 6
+    - - ''
+  - - send_delay = 500
+    - - ''
+  execution time: 5.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: None
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. 2 sta connect to softap
+    2. create multi tcp socket on all sta
+    3. all sta do tcp send/recv
+  sub module: TCP
+  summary: 1 SoftAP 2 STA, create multi TCP socket between STA, do TCP send/recv
+  test environment: SSC_T3_1
+  test point 1: stress
+  test point 2: TCP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_5201
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPSendRecv
+  - - send_len = 1460
+    - - dummy
+  - - test_time = 300
+    - - ''
+  - - duplex = True
+    - - ''
+  - - conn_num = 5
+    - - ''
+  - - send_delay = 20
+    - - ''
+  execution time: 12.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. all TCP connection not disconnected
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. sta connect to softap
+    2. create multiple tcp connection
+    3. do send/recv on all tcp connections
+  sub module: TCP
+  summary: TCP send/recv stress test
+  test environment: SSC_T2_1
+  test point 1: stress
+  test point 2: TCP stress test
+  version: v2 (2016-11-15)
+- CI ready: 'Yes'
+  ID: TCPIP_TCP_5202
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPDataValidation
+  - - test_time = 1440
+    - - dummy
+  - - tx_enable = True
+    - - ''
+  - - rx_enable = True
+    - - ''
+  - - conn_num = 1
+    - - ''
+  - - send_len = 1024
+    - - ''
+  execution time: 24.0
+  expected result: |-
+    1. succeed
+    2. verify reciveid data on target and PC succeed
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. create TCP connection
+    2. send specified pattern on both direction
+  sub module: TCP
+  summary: TCP send/recv data validation
+  test environment: SSC_T1_1
+  test point 1: stress
+  test point 2: TCP stress test
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_5203
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPRandomSend
+  - - delay_config = [0, 0.01, 0.1, 0.5, 1]
+    - - dummy
+  - - send_count = 1000
+    - - ''
+  - - test_time = 300
+    - - ''
+  execution time: 12.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. 不断开
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. ESP8089在同一信道进行iperf测试
+    2. create TCP connection
+    3. PC send random length data to target
+  sub module: TCP
+  summary: TCP 信道竞争测试
+  test environment: SSC_T1_8089
+  test point 1: stress
+  test point 2: TCP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_5301
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPThroughput
+  - - send_len = 1460
+    - - dummy
+  - - tx_enable = True
+    - - ''
+  - - rx_enable = False
+    - - ''
+  - - measure_period = 5
+    - - ''
+  execution time: 2.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config attenuator (0-59)
+    2. scan AP to get AP RSSI
+    3. create TCP connection and send data for several seconds
+    Loop step 1 - 3
+  sub module: TCP
+  summary: TCP throughput Tx in shield box
+  test environment: SSC_T1_ShieldBox
+  test point 1: performance
+  test point 2: TCP throughput
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_5302
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPThroughput
+  - - send_len = 1460
+    - - dummy
+  - - tx_enable = False
+    - - ''
+  - - rx_enable = True
+    - - ''
+  - - measure_period = 5
+    - - ''
+  execution time: 2.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config attenuator (0-59)
+    2. scan AP to get AP RSSI
+    3. create TCP connection and recv data for several seconds
+    Loop step 1 - 3
+  sub module: TCP
+  summary: TCP throughput Rx in shield box
+  test environment: SSC_T1_ShieldBox
+  test point 1: performance
+  test point 2: TCP throughput
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_5401
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/EthTCPThroughput
+  - - send_len = 1460
+    - - dummy
+  - - tx_enable = True
+    - - ''
+  - - rx_enable = False
+    - - ''
+  - - measure_period = 30
+    - - ''
+  - - test_count = 5
+    - - ''
+  execution time: 0.5
+  expected result: |-
+    1. succeed
+    2. succeed
+  initial condition: T1_ETH
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. DUT open eth and get ip
+    2. DUT band socket and send packet to PC for several secends
+    Loop for step 1-2
+  sub module: TCP
+  summary: TCP throughput Tx for Ethernet
+  test environment: SSC_T1_1
+  test point 1: stress
+  test point 2: TCP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_5402
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/EthTCPThroughput
+  - - send_len = 1460
+    - - dummy
+  - - tx_enable = False
+    - - ''
+  - - rx_enable = True
+    - - ''
+  - - measure_period = 30
+    - - ''
+  - - test_count = 5
+    - - ''
+  execution time: 0.5
+  expected result: |-
+    1. succeed
+    2. succeed
+  initial condition: T1_ETH
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. DUT open eth and get ip
+    2. DUT band socket and PC send packet to DUT for several secends
+    Loop for step 1-2
+  sub module: TCP
+  summary: TCP throughput Rx for Ethernet
+  test environment: SSC_T1_1
+  test point 1: stress
+  test point 2: TCP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_5501
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/EthTCPSocketTest
+  - - send_len = 1460
+    - - dummy
+  - - test_count = 1000
+    - - ''
+  - - tx_enable = True
+    - - ''
+  - - rx_enable = False
+    - - ''
+  execution time: 1.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: T1_ETH
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. DUT open eth and get ip
+    2. PC bind socket and send packet to DUT for several secends
+    3. DUT close eth randomly
+    Loop for step 1-3
+  sub module: TCP
+  summary: Eth random close while sending packets
+  test environment: SSC_T1_1
+  test point 1: stress
+  test point 2: TCP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_5601
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPSoftAPSTAThroughput
+  - - send_len = 1460
+    - - dummy
+  - - sta_rx_enable = False
+    - - ''
+  - - sta_tx_enable = True
+    - - ''
+  - - measure_period = 15
+    - - ''
+  execution time: 1.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. STA connect softAP
+    2. create TCP socket connect
+    3. send TCP packet
+    4. calculate the troughput
+  sub module: TCP
+  summary: STA TCP throughput while connecting with softAP
+  test environment: SSC_T2_ShieldBox2
+  test point 1: Performance test
+  test point 2: TCP throughput
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: TCPIP_TCP_5602
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPSoftAPSTAThroughput
+  - - send_len = 1460
+    - - dummy
+  - - sta_rx_enable = True
+    - - ''
+  - - sta_tx_enable = False
+    - - ''
+  - - measure_period = 15
+    - - ''
+  execution time: 1.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. STA connect softAP
+    2. create TCP socket connect
+    3. send TCP packet
+    4. calculate the troughput
+  sub module: TCP
+  summary: STA TCP throughput while connecting with softAP
+  test environment: SSC_T2_ShieldBox2
+  test point 1: Performance test
+  test point 2: TCP throughput
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: TCPIP_TCP_6001
+  SDK: ESP32_IDF, 8266_NonOS, 8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Stable
+  cmd set:
+  - StableTest/TCPStable
+  - - send_delay = 5
+    - - ''
+  - - timeout = 20
+    - - ''
+  - - test_time = 7*24*60
+    - - ''
+  - - conn_num = 1
+    - - ''
+  - - send_len = 100
+    - - ''
+  execution time: 168
+  expected result: 1. succeed 2. DUT1 receive PC echo in timeout 3. succeed 4. succeed
+  initial condition: STAO2
+  level: Integration
+  module: TCPIP
+  steps: 1. create TCP connection 2. DUT send data to PC, PC do echo 3. delay for
+    send_delay 4. repeat step 2-3
+  sub module: TCP
+  summary: TCP send receive delay stable test
+  test environment: SSC_T1_1
+  test point 1: Stable
+  test point 2: TCP send receive stable test
+  version: v1 (2017-04-21)
+- CI ready: 'No'
+  ID: TCPIP_TCP_9901
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: IOT
+  cmd set:
+  - TCPStress/TCPThroughputCompatibility
+  - - send_len = 1460
+    - - dummy
+  - - test_times = 10
+    - - ''
+  - - tx_enable = True
+    - - ''
+  - - rx_enable = False
+    - - ''
+  - - measure_period = 30
+    - - ''
+  execution time: 2.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. scan AP to get AP RSSI
+    2. create TCP connection and send data for several seconds
+    3. calculate the throughput
+    Loop step 1 - 3
+  sub module: TCP
+  summary: TCP throughput Tx Compatibility test in shield box
+  test environment: SSC_T1_ShieldBox
+  test point 1: performance
+  test point 2: TCP throughput Compatibility test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_TCP_9902
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: IOT
+  cmd set:
+  - TCPStress/TCPThroughputCompatibility
+  - - send_len = 1460
+    - - dummy
+  - - test_times = 10
+    - - ''
+  - - tx_enable = False
+    - - ''
+  - - rx_enable = True
+    - - ''
+  - - measure_period = 30
+    - - ''
+  execution time: 2.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. scan AP to get AP RSSI
+    2. create TCP connection and send data for several seconds
+    3. calculate the throughput
+    Loop step 1 - 3
+  sub module: TCP
+  summary: TCP throughput Rx Compatibility test in shield box
+  test environment: SSC_T1_ShieldBox
+  test point 1: performance
+  test point 2: TCP throughput Compatibility test
+  version: v1 (2016-8-15)
diff --git a/components/idf_test/integration_test/TC_IT_TCPIP_UDP.yml b/components/idf_test/integration_test/TC_IT_TCPIP_UDP.yml
new file mode 100644 (file)
index 0000000..e38256d
--- /dev/null
@@ -0,0 +1,1874 @@
+test cases:
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p <test_udp_port2>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 C BIND:ERROR
+  - - SSC SSC1 soc -B -t TCP -p <test_udp_port1>
+    - - R SSC1 RE BIND:(\d+),OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.ERROR
+    4.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2
+    3.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    4.target1上创建TCP socket3, target_udp_port1
+  sub module: UDP
+  summary: STA mode, udp bind test. use different ip, port
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 2/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SOC SOC2 BIND <test_udp_port2> <pc_ip2>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 10
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 10
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip2> -p <test_udp_port2> -l 10
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC2 UL 10
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.PC上SOC2 UDP传输,bing <test_udp_port2> <pc_ip2>
+    3.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据
+    5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据
+  sub module: UDP
+  summary: STA mode, sendto test. use different ip, port
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0103
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 1
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1472
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 1472
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1473
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC_COM NC SOC_RECVFROM
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1472 -n 10 -j 20
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 14720
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK,没有到UDP包
+    6.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据
+    4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据
+    5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据
+    6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据
+  sub module: UDP
+  summary: STA mode, sendto test with different length
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0103
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 1
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1472
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 1472
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1473
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC_COM NC SOC_RECVFROM
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据
+    4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据
+    5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据
+  sub module: UDP
+  summary: STA mode, sendto test with different length
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0104
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SOC SOC1 SENDTO 1 <test_udp_port1> <target_ip>
+    - - R SSC1 SL <sock1>+1
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
+    - - R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(<sock1>,<pc_ip>,<test_udp_port1>)
+  - - SOC SOC1 SENDTO 1473 <test_udp_port1> <target_ip>
+    - - P SSC1 NC +RECVFROM
+      - P SOC_COM C OK
+  - - SOC SOC2 BIND <test_udp_port2> <pc_ip2>
+    - - R SOC_COM L OK
+  - - SOC SOC2 SENDTO 1472 <test_udp_port1> <target_ip>
+    - - R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(<sock1>,<pc_ip2>,<test_udp_port2>)
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK,没收到UDP包
+    6.OK
+    7.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    3.PC往8266上发送1字节数据
+    4.PC往8266上发送1472字节数据
+    5.PC往8266上发送1473字节数据
+    6.PC上SOC2 UDP传输,bing <test_udp_port2> <pc_ip2>
+    7.PC往8266上发送1472字节数据
+  sub module: UDP
+  summary: STA mode, recvfrom basic test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0105
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    2.关闭socket1
+  sub module: UDP
+  summary: STA mode, close UDP sockets test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0106
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port2>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port3>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port4>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port5>
+    - - R SSC1 RE BIND:(\d+),OK
+  execution time: 0.0
+  expected result: |-
+    1.ok
+    2.ok
+    3.ok
+    4.ok
+    5.ok
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    2.target1上UDP传输,Bind socket2,本地ip target_udp_port2
+    3.target1上UDP传输,Bind socket3,本地ip target_udp_port3
+    4.target1上UDP传输,Bind socket4,本地ip target_udp_port4
+    5.target1上UDP传输,Bind socket5,本地ip target_udp_port5
+  sub module: UDP
+  summary: STA mode, create max udp socket test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0107
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -I
+    - - P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(<sock1>,<test_udp_port1>)
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    2.target1上查询创建socket信息
+  sub module: UDP
+  summary: STA mode, get active socket info test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0108
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p <test_udp_port2>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 C BIND:ERROR
+  - - SSC SSC1 soc -B -t TCP -p <test_udp_port1>
+    - - R SSC1 RE BIND:(\d+),OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.ERROR
+    4.OK
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2
+    3.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    4.target1上创建TCP socket3, target_udp_port1
+  sub module: UDP
+  summary: AP mode, udp bind test. use different ip, port
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0109
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
+      <target_encryption>
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC2 ip
+    - - R SSC2 A <ssc2_ip>:STAIP:(.+)\r\n
+  - - SSC SSC2 soc -B -t UDP -p <test_udp_port2>
+    - - R SSC2 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock2> -i <pc_ip_wifi> -p <test_udp_port1> -l 5
+    - - R SOC1 UL 5
+  - - SSC SSC1 soc -S -s <sock2> -i <ssc2_ip> -p <test_udp_port2> -l 5
+    - - R SSC2 RE "RECVFROM:%%s,5,%%s,%%u"%%(<sock1>,<target_ap_ip>,<test_udp_port1>)
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+  initial condition: T2O_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.PC上SOC2 UDP传输,bing <test_udp_port2> <pc_ip2>
+    3.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据
+    5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据
+  sub module: UDP
+  summary: AP mode, sendto test. use different ip, port
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0110
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 1
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1472
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 1472
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1473
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC_COM NC SOC_RECVFROM
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1472 -n 10
+      -j 20
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 14720
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK,没收到UDP包
+    6.OK
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据
+    4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据
+    5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据
+    6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据
+  sub module: UDP
+  summary: AP mode, sendto test with different length
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0110
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 1
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1472
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 1472
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1473
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC_COM C SOC_RECVFROM
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据
+    4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据
+    5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据
+  sub module: UDP
+  summary: AP mode, sendto test with different length
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0111
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
+      <target_encryption>
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC2 ip
+    - - R SSC2 A <ssc2_ip>:STAIP:(.+)\r\n
+  - - SSC SSC2 soc -B -t UDP -p <test_udp_port2>
+    - - R SSC2 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  - - SOC SOC1 SENDTO 5 <test_udp_port1> <target_ap_ip>
+    - - R SSC1 RE "RECVFROM:%%s,5,%%s,%%u"%%(<sock2>,<pc_ip_wifi>,<test_udp_port1>)
+  - - SSC SSC2 soc -S -s <sock1> -i <target_ap_ip> -p <test_udp_port1> -l 5
+    - - R SSC1 RE "RECVFROM:%%s,5,%%s,%%u"%%(<sock2>,<ssc2_ip>,<test_udp_port2>)
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK,没收到UDP包
+    6.OK
+    7.OK
+  initial condition: T2O_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    3.PC往8266上发送1字节数据
+    4.PC往8266上发送1472字节数据
+    5.PC往8266上发送1473字节数据
+    6.PC上SOC2 UDP传输,bing <test_udp_port2> <pc_ip2>
+    7.PC往8266上发送1472字节数据
+  sub module: UDP
+  summary: AP mode, recvfrom basic test
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0112
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    2.关闭socket1
+  sub module: UDP
+  summary: AP mode, close UDP sockets test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0113
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port2>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port3>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port4>
+    - - R SSC1 RE BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port5>
+    - - R SSC1 RE BIND:(\d+),OK
+  execution time: 0.0
+  expected result: |-
+    1.ok
+    2.ok
+    3.ok
+    4.ok
+    5.ok
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    2.target1上UDP传输,Bind socket2,本地ip target_udp_port2
+    3.target1上UDP传输,Bind socket3,本地ip target_udp_port3
+    4.target1上UDP传输,Bind socket4,本地ip target_udp_port4
+    5.target1上UDP传输,Bind socket5,本地ip target_udp_port5
+  sub module: UDP
+  summary: AP mode, create max udp socket test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0114
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -I
+    - - P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(<sock1>,<test_udp_port1>)
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    2.target1上查询创建socket信息
+  sub module: UDP
+  summary: AP mode, get active socket info test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use UDP SAP (socket/espconn API) with different parameter
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0201
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1> -w 0
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
+    - - ''
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
+    - - ''
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
+    - - ''
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
+    - - ''
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
+    - - ''
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.PC OK
+    5.PC OK
+    6.PC OK
+    7.PC OK
+    8.PC OK SOC_CLOSE=SOC1
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    3.target1上关闭工作线程
+    4.PC往8266上发送1472字节数据
+    5.PC往8266上发送1472字节数据
+    6.PC往8266上发送1472字节数据
+    7.PC往8266上发送1472字节数据
+    8.PC往8266上发送1472字节数据
+  sub module: UDP
+  summary: STA mode, recv buffer test
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: use UDP SAP (socket/espconn API) in different state
+  version: v2 (2016-10-19)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0202
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
+    - - ''
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
+    - - ''
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
+    - - ''
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
+    - - ''
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
+    - - ''
+  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
+    - - ''
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.PC OK
+    5.PC OK
+    6.PC OK
+    7.PC OK
+    8.PC OK SOC_CLOSE=SOC1
+  initial condition: APM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    3.target1上关闭工作线程
+    4.PC往8266上发送1472字节数据
+    5.PC往8266上发送1472字节数据
+    6.PC往8266上发送1472字节数据
+    7.PC往8266上发送1472字节数据
+    8.PC往8266上发送1472字节数据
+  sub module: UDP
+  summary: AP mode, recv buffer test
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: use UDP SAP (socket/espconn API) in different state
+  version: v2 (2016-10-19)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0301
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -i <target_ip> -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 5
+  - - SSC SSC1 sta -D
+    - - P SSC1 C +QAP:OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
+    - - P SSC1 RE SEND:\d+,ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据
+    4.断开与AP 连接
+    5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据
+  sub module: UDP
+  summary: do UDP send after WIFI disconnected
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: UDP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0302
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 2/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 5
+  - - SSC SSC1 sta -D
+    - - P SSC1 C +QAP:OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
+    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
+    3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据
+    4.断开与AP 连接
+    5.关闭建立的socket1连接
+  sub module: UDP
+  summary: "close UDP  socket after WIFI \ndisconnected"
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: UDP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0303
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 5
+  - - SSC SSC1 op -S -o 2
+    - - P SSC1 C +MODE:OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
+    - - P SSC1 RE SEND:(\d+),OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>\n2.target1上UDP传输,Bind socket1,本地ip
+    target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n4.修改8266的Mode为softAP
+    mode \n5.8266往PC上发送5字节数据"
+  sub module: UDP
+  summary: do UDP  send after mode changed
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: UDP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0304
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 5
+  - - SSC SSC1 op -S -o 2
+    - - P SSC1 C +MODE:OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>\n2.target1上UDP传输,Bind socket1,本地ip
+    target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n4.修改8266的Mode为softAP
+    mode \n5.关闭建立的socket1连接"
+  sub module: UDP
+  summary: close UDP  socket after mode changed
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: UDP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0305
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 5
+  - - NIC <pc_nic> DISABLED
+    - - R PC_COM C OK
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK
+    4.OK
+    5.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>\n2.target1上UDP传输,Bind socket1,本地ip
+    target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n4.PC上网卡禁止掉
+    \n5.关闭建立的socket1连接"
+  sub module: UDP
+  summary: close UDP socket after PC NIC disabled
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: UDP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0306
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 5
+  - - SSC SSC1 dhcp -E -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 ip -S -o 1 -i 192.168.111.210
+    - - P SSC1 C +IP:OK
+  - - SSC SSC1 ip -Q -o 1
+    - - R SSC1 C +STAIP:192.168.111.210
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1
+    - - P SSC1 RE SEND:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>\n2.target1上UDP传输,Bind socket1,本地ip
+    target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n4.关闭8266的DHCP
+    1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.8266往PC上发送5字节数据"
+  sub module: UDP
+  summary: do UDP send after IP changed
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: UDP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0307
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: 1/3
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
+    - - R SOC_COM L OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
+    - - P SSC1 RE SEND:(\d+),OK
+      - P SOC1 UL 5
+  - - SSC SSC1 dhcp -E -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 ip -S -o 1 -i 192.168.111.210
+    - - P SSC1 C +IP:OK
+  - - SSC SSC1 ip -Q -o 1
+    - - R SSC1 C +STAIP:192.168.111.210
+  - - SSC SSC1 soc -T -s <sock1>
+    - - R SSC1 RE CLOSE:\d+,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+    3.OK; PC TCP server accept 成功
+    4.OK
+    5.OK
+    6.OK
+    7.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: "1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>\n2.target1上UDP传输,Bind socket1,本地ip
+    target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n4.关闭8266的DHCP
+    1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.关闭建立的socket1连接"
+  sub module: UDP
+  summary: close UDP  socket after IP changed
+  test environment: SSC_T1_1
+  test point 1: abnormal/special use
+  test point 2: UDP handling abnormal event
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0401
+  SDK: |-
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 C +BIND:ERROR
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ERROR
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.target1上创建UDP socket,bind test_udp_port1
+    2.target1上创建UDP socket,bind test_udp_port1
+  sub module: UDP
+  summary: Test socket with so_reuseaddr option closed on UDP submodule
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_0402
+  SDK: ESP32_IDF
+  Test App: SSC_OPTION
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.find esp-idf/components/lwip/include/lwip/lwip/opt.h file, make "#define SO_REUSE  1" instead of "#define SO_REUSE  0"
+    2.switch to esp-idf/SSC, run "./gen_misc_ng.sh SSC_OPTION" and "make flash", then run the test case normally
+    3.target1上创建UDP socket,bind test_udp_port1
+    4.target1上创建UDP socket,bind test_udp_port1
+  sub module: UDP
+  summary: Test socket with so_reuseaddr option opened that build two udp sockets
+    by binding same port on ESP32
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_UDP_0403
+  SDK: 8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'No'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock2>:BIND:(\d+),OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.OK
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.find ESP8266_RTOS_SDK/include/lwip/lwip/opt.h file, make "#define SO_REUSE  1" instead of "#define SO_REUSE  0"
+    2.switch to ESP8266_RTOS_SDK/third_party, run "./make_lib.sh lwip" risc,then continuely run "ll ../lib"
+    3.switch to ESP8266_RTOS_SDK/SSC, run "./gen_misc_rtos.sh SSC", then run the test case normally
+    4.target1上创建UDP socket,bind test_udp_port1
+    5.target1上创建UDP socket,bind test_udp_port1
+  sub module: UDP
+  summary: Test socket with so_reuseaddr option opened that build two udp sockets
+    by binding same port on 8266_RTOS
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: socket test with different option
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: TCPIP_UDP_5001
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/UDPSendRecv
+  - - send_len = 1460
+    - - dummy
+  - - test_time = 300
+    - - ''
+  - - duplex = True
+    - - ''
+  - - conn_num = 5
+    - - ''
+  - - send_delay = 20
+    - - ''
+  execution time: 12.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. sta connect to softap
+    2. create multiple udp
+    3. do send/recv on all udp
+  sub module: UDP
+  summary: UDP send/recv stress test
+  test environment: SSC_T2_1
+  test point 1: stress
+  test point 2: UDP stress test
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5002
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/UDPPacketLose
+  - - test_time = 5
+    - - dummy
+  - - send_len = 1460
+    - - ''
+  - - pc_send = True
+    - - ''
+  - - target_send = False
+    - - ''
+  - - delay = 10
+    - - ''
+  execution time: 1.0
+  expected result: |-
+    1. succeed
+    2. succeed
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. scan AP to get AP RSSI
+    2. create UDP and recv data for several seconds
+  sub module: UDP
+  summary: UDP loss rate on DUT Rx
+  test environment: SSC_T1_1
+  test point 1: Performance test
+  test point 2: UDP stress test
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5003
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/UDPPacketLose
+  - - test_time = 5
+    - - dummy
+  - - send_len = 1460
+    - - ''
+  - - pc_send = False
+    - - ''
+  - - target_send = True
+    - - ''
+  - - delay = 10
+    - - ''
+  execution time: 1.0
+  expected result: |-
+    1. succeed
+    2. succeed
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. scan AP to get AP RSSI
+    2. create UDP and recv data for several seconds
+  sub module: UDP
+  summary: UDP loss rate on DUT Tx
+  test environment: SSC_T1_1
+  test point 1: Performance test
+  test point 2: UDP stress test
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5004
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/UDPBroadcast
+  - - test_time = 0.2
+    - - dummy
+  - - send_len = 20
+    - - ''
+  - - pc_send = True
+    - - ''
+  - - target_send = False
+    - - ''
+  - - delay = 10
+    - - ''
+  execution time: 1.0
+  expected result: |-
+    1. succeed
+    2. succeed
+  initial condition: STAM2
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. scan AP to get AP RSSI
+    2. create UDP and recv data for several seconds
+  sub module: UDP
+  summary: UDP broadcase loss rate on DUT Rx
+  test environment: SSC_T1_1
+  test point 1: Performance test
+  test point 2: UDP stress test
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5005
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/UDPMultiSTASendRecv
+  - - send_len = 1460
+    - - dummy
+  - - test_time = 300
+    - - ''
+  - - server_echo = True
+    - - ''
+  - - sta_number = 5
+    - - ''
+  - - send_delay = 500
+    - - ''
+  execution time: 5.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: None
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. 5 sta connect to softap
+    2. create udp socket on all sta
+    3. all sta do udp send/recv
+  sub module: UDP
+  summary: 1 SoftAP 5 STA, create UDP server on one STA, create UDP client on other
+    STA, do UDP send/recv
+  test environment: SSC_T6_1
+  test point 1: stress
+  test point 2: UDP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5006
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/UDPSTAMultiSocketSendRecv
+  - - send_len = 1460
+    - - dummy
+  - - test_time = 300
+    - - ''
+  - - server_echo = True
+    - - ''
+  - - sta_number = 2
+    - - ''
+  - - conn_number = 6
+    - - ''
+  - - send_delay = 500
+    - - ''
+  execution time: 5.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: None
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. 2 sta connect to softap
+    2. create multi udp socket on all sta
+    3. all sta do udp send/recv
+  sub module: UDP
+  summary: 1 SoftAP 2 STA, create multi UDP socket on STA, do UDP send/recv
+  test environment: SSC_T3_1
+  test point 1: stress
+  test point 2: UDP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5007
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/SoftAPSTAUDPLose
+  - - test_time = 60
+    - - dummy
+  - - send_len = 1460
+    - - ''
+  - - softap_send = False
+    - - ''
+  - - sta_send = True
+    - - ''
+  - - delay = 10
+    - - ''
+  execution time: 1.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.sta connect to softAP
+    2.sta softAP bind UPD socket
+    3.sta send UDP to softAP, softAP calculate the packet lose
+  sub module: UDP
+  summary: STA connect to softAP, STA send UDP to softAP, calculate the UDP lose on
+    softAP
+  test environment: SSC_T2_1
+  test point 1: Performance test
+  test point 2: UDP stress test
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5008
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/SoftAPSTAUDPLose
+  - - test_time = 60
+    - - dummy
+  - - send_len = 1460
+    - - ''
+  - - softap_send = True
+    - - ''
+  - - sta_send = False
+    - - ''
+  - - delay = 10
+    - - ''
+  execution time: 1.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1.sta connect to softAP
+    2.sta softAP bind UPD socket
+    3.softAP send UDP to STA, STA calculate the packet lose
+  sub module: UDP
+  summary: STA connect to softAP, softAP send UDP to STA, calculate the UDP lose on
+    STA
+  test environment: SSC_T2_1
+  test point 1: Performance test
+  test point 2: UDP stress test
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Performance
+  cmd set:
+  - UDPStress/UDPThroughput
+  - - send_len = 1460
+    - - dummy
+  - - tx_enable = True
+    - - ''
+  - - rx_enable = False
+    - - ''
+  - - measure_period = 30
+    - - ''
+  execution time: 2.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config attenuator (0-59)
+    2. scan AP to get AP RSSI
+    3. create UDP and send data for several seconds
+    Loop step 1 - 3
+  sub module: UDP
+  summary: UDP throughput Tx in shield box
+  test environment: SSC_T1_ShieldBox
+  test point 1: performance
+  test point 2: UDP throughput
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Performance
+  cmd set:
+  - UDPStress/UDPThroughput
+  - - send_len = 1460
+    - - dummy
+  - - tx_enable = False
+    - - ''
+  - - rx_enable = True
+    - - ''
+  - - measure_period = 30
+    - - ''
+  execution time: 2.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. config attenuator (0-59)
+    2. scan AP to get AP RSSI
+    3. create UDP and recv data for several seconds
+    Loop step 1 - 3
+  sub module: UDP
+  summary: UDP throughput Rx in shield box
+  test environment: SSC_T1_ShieldBox
+  test point 1: performance
+  test point 2: UDP throughput
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5201
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/EthUDPThroughput
+  - - send_len = 1460
+    - - dummy
+  - - tx_enable = True
+    - - ''
+  - - rx_enable = False
+    - - ''
+  - - measure_period = 30
+    - - ''
+  - - test_count = 5
+    - - ''
+  execution time: 0.5
+  expected result: |-
+    1. succeed
+    2. succeed
+  initial condition: T1_ETH
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. DUT open eth and get ip
+    2. DUT band socket and send packet to PC for several secends
+    Loop for step 1-2
+  sub module: UDP
+  summary: UDP throughput Tx for Ethernet
+  test environment: SSC_T1_1
+  test point 1: stress
+  test point 2: UDP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5202
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/EthUDPThroughput
+  - - send_len = 1460
+    - - dummy
+  - - tx_enable = False
+    - - ''
+  - - rx_enable = True
+    - - ''
+  - - measure_period = 30
+    - - ''
+  - - test_count = 5
+    - - ''
+  execution time: 0.5
+  expected result: |-
+    1. succeed
+    2. succeed
+  initial condition: T1_ETH
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. DUT open eth and get ip
+    2. DUT band socket and PC send packet to DUT for several secends
+    Loop for step 1-2
+  sub module: UDP
+  summary: UDP throughput Rx for Ethernet
+  test environment: SSC_T1_1
+  test point 1: stress
+  test point 2: UDP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5301
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/EthUDPPacketLose
+  - - test_time = 30
+    - - dummy
+  - - send_len = 1460
+    - - ''
+  - - pc_send = True
+    - - ''
+  - - target_send = False
+    - - ''
+  - - delay = 10
+    - - ''
+  execution time: 0.5
+  expected result: |-
+    1. succeed
+    2. succeed
+  initial condition: T1_ETH
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. DUT open eth and get ip
+    2. DUT band socket,PC send packet to DUT for several secends
+    3. DUT calculate the packet lose rate
+  sub module: UDP
+  summary: UDP loss rate on DUT Rx for Eth
+  test environment: SSC_T1_1
+  test point 1: Performance test
+  test point 2: UDP stress test
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5401
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/UDPSoftAPSTAThroughput
+  - - send_len = 1460
+    - - dummy
+  - - sta_rx_enable = False
+    - - ''
+  - - sta_tx_enable = True
+    - - ''
+  - - measure_period = 15
+    - - ''
+  execution time: 1.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. STA connect softAP
+    2. bind UDP socket
+    3. send UDP packet
+    4. calculate the troughput
+  sub module: UDP
+  summary: STA UDP throughput while connecting with softAP
+  test environment: SSC_T2_ShieldBox2
+  test point 1: Performance test
+  test point 2: UDP throughput
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: TCPIP_UDP_5402
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - UDPStress/UDPSoftAPSTAThroughput
+  - - send_len = 1460
+    - - dummy
+  - - sta_rx_enable = True
+    - - ''
+  - - sta_tx_enable = False
+    - - ''
+  - - measure_period = 15
+    - - ''
+  execution time: 1.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: T2_1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. STA connect softAP
+    2. bind UDP socket
+    3. send UDP packet
+    4. calculate the troughput
+  sub module: UDP
+  summary: STA UDP throughput while connecting with softAP
+  test environment: SSC_T2_ShieldBox2
+  test point 1: Performance test
+  test point 2: UDP throughput
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: TCPIP_UDP_9901
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: IOT
+  cmd set:
+  - UDPStress/UDPThroughputCompatibility
+  - - send_len = 1460
+    - - dummy
+  - - test_times = 10
+    - - ''
+  - - tx_enable = True
+    - - ''
+  - - rx_enable = False
+    - - ''
+  - - measure_period = 30
+    - - ''
+  execution time: 2.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. scan AP to get AP RSSI
+    2. create TCP connection and send data for several seconds
+    3. calculate the throughput
+    Loop step 1 - 3
+  sub module: UDP
+  summary: UDP throughput Tx Compatibility test in shield box
+  test environment: SSC_T1_ShieldBox
+  test point 1: performance
+  test point 2: UDP throughput Compatibility test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: TCPIP_UDP_9902
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: IOT
+  cmd set:
+  - UDPStress/UDPThroughputCompatibility
+  - - send_len = 1460
+    - - dummy
+  - - test_times = 10
+    - - ''
+  - - tx_enable = False
+    - - ''
+  - - rx_enable = True
+    - - ''
+  - - measure_period = 30
+    - - ''
+  execution time: 2.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: STAM1
+  level: Integration
+  module: TCPIP
+  steps: |-
+    1. scan AP to get AP RSSI
+    2. create TCP connection and send data for several seconds
+    3. calculate the throughput
+    Loop step 1 - 3
+  sub module: UDP
+  summary: UDP throughput Rx Compatibility test in shield box
+  test environment: SSC_T1_ShieldBox
+  test point 1: performance
+  test point 2: UDP throughput Compatibility test
+  version: v1 (2016-8-15)
diff --git a/components/idf_test/integration_test/TC_IT_WIFI_ADDR.yml b/components/idf_test/integration_test/TC_IT_WIFI_ADDR.yml
new file mode 100644 (file)
index 0000000..9ed3745
--- /dev/null
@@ -0,0 +1,99 @@
+test cases:
+- CI ready: 'Yes'
+  ID: WIFI_ADDR_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 1 -m 44:55:66:77:88:99
+    - - R SSC1 C +MAC:STA,OK
+  - - SSC SSC1 mac -S -o 2 -m 22:33:44:55:66:77
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 mac -Q -o 3
+    - - R SSC1 C +STAMAC:44:55:66:77:88:99 C +APMAC:22:33:44:55:66:77
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ok
+    3.ok
+    4.ok
+    5.ok
+    6.ok
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: "1.target1 设置mode 为sta+softAP mode\n2.target1 设置sta mode 下的mac \n3.target1
+    设置softAP mode 下的mac\n4.target1 查询softAP+sta 下的mac\n5.target1 设置sta mode 下的mac
+    为target1_mac\n6.target1 设置softAP mode 下的mac 为target1_ap_mac\n"
+  sub module: MAC Address
+  summary: set mac, query mac
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: mac address function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_ADDR_0102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 mac -S -o 2 -m 44:55:66:77:88:99
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - ''
+  - - SSC SSC2 sta -S -b 44:55:66:77:88:99
+    - - R SSC2 RE \+SCAN:.+,44:55:66:77:88:99,
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC2 mac -Q -o 1
+    - - R SSC2 A <target2_mac_tmp>:\+STAMAC:(.+)\r\n
+  - - SSC SSC2 mac -S -o 1 -m 22:33:44:55:66:77
+    - - R SSC2 C +MAC:STA,OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 ap -L
+    - - R SSC1 C +LSTA:22:33:44:55:66:77
+  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
+    - - R SSC2 C +MAC:STA,OK
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ok
+    3.ok
+    4.ok
+    5.ok
+    6.ok
+    7.ok
+    8.ok
+    9.ok
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: "1.target1 设置sta mode下的mac 44:55:66:77:88:99\n2.target1下设置ssid 和pwd 加密方式\n3.target2
+    查询mac为44:55:66:77:88:99的ssid\n4.target1 设置sta mode下的mac target_ap_mac\n5.target2
+    查询sta mode 下的mac 为target2_mac_tmp\n6.target2 设置sta mode 下的mac 为22:33:44:55:66:77\n7.target2
+    jap target1\n8.target1 查询连接到的sta \n9.target2 设置sta mode 下的mac 为 target2_mac\n"
+  sub module: MAC Address
+  summary: set mac and do scan/JAP/SAP
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: mac address function test
+  version: v1 (2016-8-15)
diff --git a/components/idf_test/integration_test/TC_IT_WIFI_AMSDU.yml b/components/idf_test/integration_test/TC_IT_WIFI_AMSDU.yml
new file mode 100644 (file)
index 0000000..b411380
--- /dev/null
@@ -0,0 +1,29 @@
+test cases:
+- CI ready: 'Yes'
+  ID: WIFI_AMSDU_5001
+  SDK: ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - TCPStress/TCPAMSDUsendrecv
+  - - delay_config = [0, 0.01, 0.1, 0.5, 1]
+    - - dummy
+  - - send_count = 1000
+    - - ''
+  - - test_time = 300
+    - - ''
+  execution time: 12.0
+  expected result: 1. do not disconnect
+  initial condition: STAM2
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. PC and SSC1 connected to 天猫魔盒,do TCP pkts send/recv for a long time.
+    2.Loop executing step 1
+  sub module: A-MSDU
+  summary: test AMSDU send/rev
+  test environment: SSC_T1_AMSDU
+  test point 1: function + stress
+  test point 2: AMSDU send recv
+  version: v2 (2016-11-15)
diff --git a/components/idf_test/integration_test/TC_IT_WIFI_CONN.yml b/components/idf_test/integration_test/TC_IT_WIFI_CONN.yml
new file mode 100644 (file)
index 0000000..74a7fe0
--- /dev/null
@@ -0,0 +1,1985 @@
+test cases:
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -t 0
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 2
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 4
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 1
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -S
+    - - R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%(<target_ssid>) C +SCANDONE
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 5
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -S
+    - - R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%(<target_ssid>) C +SCANDONE
+  execution time: 0.0
+  expected result: "1.target1 set AP,open, \n2.target 2 jap succeed\n3.target1 set
+    AP,wpa_psk \n4.target 2 jap succeed\n5.target1 set AP, wpa2_psk \n6.target 2 jap
+    succeed\n7.target1 set AP,wap_wpa2_psk\n8.target 2 jap succeed\n9.target1 set
+    AP,加密方式为t 1\n10.target 2 上查询到target_ssid\n11.target1 set AP,加密方式为t 5\n12.target
+    2 上查询到target_ssid"
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: "1.target1下设置ssid 和pwd,加密方式 open\n2.target2 jap target1\n3.target1下设置ssid
+    和pwd,加密方式 wpa_psk \n4.target2 jap target1\n5.target1下设置ssid 和pwd,加密方式 wpa2_psk
+    \n6.target 2 jap target1\n7.target1下设置ssid 和pwd,加密方式 wap_wpa2_psk\n8.target2 jap
+    target1\n9.target1下设置ssid 和pwd,加密方式 wep \n10.target2上查询target_ssid\n11.target1下设置ssid
+    和pwd,加密方式 t 5 错误的加密方式\n12.target2上查询 target_ssid"
+  sub module: WIFI Connect
+  summary: station SAP+JAP test, different encryption
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: SAP/JAP with different config
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -t 0 -n 1
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - SSC SSC1 ap -S -s <target_ssid> -t 0 -n 13
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - SSC SSC1 ap -S -s <target_ssid> -n 15
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - SSC SSC2 sta -S
+    - - R SSC2 RE "\+SCAN:%%s,.+,\d+,1"%%(<target_ssid>)
+  execution time: 0.0
+  expected result: |-
+    1. target1 set AP,set channel 1
+    2.target 2 jap succeed
+    3.target1 set AP,set channel 10
+    4.target 2 jap succeed
+    5.target1 set AP,set channel 15
+    6.target 2 上查询到target_ssid
+  initial condition: T2O_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. target1下设置ssid 和pwd 加密方式,set channel 1
+    2.target2 jap target 1
+    3.target1下设置ssid 和pwd 加密方式,set channel 10
+    4.target2 jap target 1
+    5.target1下设置ssid 和pwd 加密方式,set channel 15
+    6.target 2 上查询target_ssid
+  sub module: WIFI Connect
+  summary: station SAP+JAP test, different channel
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: SAP/JAP with different config
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0103
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum> -h
+      0
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -S -h 0
+    - - R SSC2 P <target_ap_mac>
+      - R SSC2 C +SCANDONE
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum> -h
+      1
+    - - R SSC1 C +SAP:OK
+  - - DELAY 3
+    - - ''
+  - - SSC SSC2 sta -S -h 0
+    - - R SSC2 C +SCANDONE
+  - - DELAY 3
+    - - ''
+  - - SSC SSC2 sta -S -h 0
+    - - R SSC2 NP <target_ap_mac> C +SCANDONE
+  execution time: 0.0
+  expected result: |-
+    1.target1 set AP,set ssid broad cast
+    2.target 2上scan target_ap_mac
+    3.target1 set AP,set ssid hidden,
+    4.target 2上不能scan target_ap_mac
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. target1下设置ssid 和pwd 加密方式,set ssid broad cast
+    2.target 2上scan target_ap_mac
+    3. target1下设置ssid 和pwd 加密方式,set ssid hidden,
+    4.target 2上scan target_ap_mac
+  sub module: WIFI Connect
+  summary: station SAP+JAP test, ssid hidden
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: SAP/JAP with different config
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0104
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: '1/2'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum> -m
+      1
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> DISCONN
+    - - R PC_COM C +WIFIDISCONN:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
+      <target_encryption>
+    - - R PC_COM C +WIFICONN:ERROR
+  execution time: 0.0
+  expected result: |-
+    1. target1 set AP,set max allowed sta as 1
+    2. use PC disconnect,
+    3.target 2 jap succeed
+    4.PC WIFI can not CONN
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1下设置ssid 和pwd 加密方式,set max allowed sta as 1
+    2.use PC disconnect target1
+    3.target 2 jap target1
+    4.PC WIFI CONNECT target1
+  sub module: WIFI Connect
+  summary: station SAP test, max allowed sta
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: SAP/JAP with different config
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0201
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  - - SSC SSC1 sta -Q
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s,%%s"%%(<ap_mac>,<ap_ssid>)
+  - - SSC SSC1 sta -D
+    - - R SSC1 C +QAP:OK
+  - - SSC SSC1 sta -Q
+    - - R SSC1 C +JAP:DISCONNECTED
+  execution time: 0.0
+  expected result: |-
+    1.target1 jion AP 成功
+    2.查询JAP的状态
+    3.target1 断开AP
+    4.查询target1 JAP 是DISCONN
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1 jion AP 成功
+    2.查询JAP的状态
+    3.target1 断开AP
+    4.查询target1 JAP 是DISCONN
+  sub module: WIFI Connect
+  summary: JAP query test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: query JAP status
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0301
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum> -h
+      0 -m 8
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 ap -Q
+    - - R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,3,0,8,\d+"%%(<target_ssid>,<target_password>)
+  execution time: 0.0
+  expected result: |
+    1. target1 set AP
+    2.target 1上查询到跟设置AP时一致
+  initial condition: APM1
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. target1 set AP
+    2.target 1上查询到跟设置AP时一致
+  sub module: WIFI Connect
+  summary: AP config query test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: query AP config
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0401
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -R -a 0
+    - - R SSC1 C +AUTORECONN:OK
+  - - SSC SSC1 sta -R -a 2
+    - - R SSC1 C +AUTORECONN:0
+  - - SSC SSC1 reboot
+    - - ''
+  - - DELAY 15
+    - - ''
+  - - SSC SSC1 sta -Q
+    - - R SSC1 C JAP:DISCONNECTED
+  - - SSC SSC1 sta -R -a 1
+    - - R SSC1 C +AUTORECONN:OK
+  - - SSC SSC1 sta -R -a 2
+    - - R SSC1 C +AUTORECONN:1
+  - - SSC SSC1 reboot
+    - - R SSC1 C +JAP:CONNECTED
+  execution time: 0.0
+  expected result: |-
+    1.设置autoreconn,关闭
+    2.查询当前autoreconn状态是否关闭
+    3.重启系统,等待15s
+    4.查询target1 未自动重连AP
+    5.设置autoreconn,开启
+    6.查询当前autoreconn状态是否开启
+    7.系统重启后target1 自动重连AP
+  initial condition: STAM2
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.设置autoreconn,关闭
+    2.查询当前autoreconn状态是否关闭
+    3.重启系统,等待15s
+    4.查询target1 未自动重连AP
+    5.设置autoreconn,开启
+    6.查询当前autoreconn状态是否开启
+    7.系统重启后target1 自动重连AP
+  sub module: WIFI Connect
+  summary: auto reconnect test
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: power on auto reconnect test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0501
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC2 sta -R -r 1
+    - - R SSC2 C +RECONN:OK
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - DELAY 10
+    - - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - DELAY 15
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -R -r 0
+    - - R SSC2 C +RECONN:OK
+  - - SSC SSC2 sta -R -r 2
+    - - R SSC2 C +RECONN:0
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - DELAY 10
+    - - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - DELAY 15
+    - - P PC_COM C +DELAYDONE
+      - P SSC2 NC +JAP:CONNECTED
+  - - SSC SSC2 sta -R -r 1
+    - - R SSC2 C +RECONN:OK
+  execution time: 0.0
+  expected result: |-
+    1.设置reconn,开启(此功能不需要重启系统)
+    2.target1 set AP
+    3.target2 JAP target1 成功
+    4.target2 断开target1 连接
+    5.等待10s,target2 自动重连target1
+    6.成功
+    7.查询reconn状态,关闭
+    8.修改mode 成功
+    9.等待15s,target2 不会自动重连target1
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: "1.设置reconn,开启(此功能不需要重启系统)\n2.target1下设置ssid 和pwd 加密方式\n3.target2 JAP target1
+    \n4.target1 修改mode 为sta mode\n5.等待10s,target1 修改mode 为softAP mode\n6.设置reconn,关闭\n7.查询reconn状态,关闭\n8.target1
+    修改mode 为sta mode\n9.等待15s,target1 修改mode 为softAP mode"
+  sub module: WIFI Connect
+  summary: reconnect policy test
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: reconnect policy test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0502
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -R -r 1
+    - - R SSC2 C +RECONN:OK
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - DELAY 5
+    - - R SSC2 C +JAP:DISCONNECTED
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - DELAY 10
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +QAP:OK
+  - - DELAY 10
+    - - P PC_COM C +DELAYDONE
+      - P SSC2 NC +JAP:CONNECTED
+  execution time: 0.0
+  expected result: |-
+    1.target1 set AP
+    2.target2 jap target 1
+    3.设置reconn,开启(此功能不需要重启系统)
+    4.target2 断开target1 连接
+    5.等待10s,target2 自动重连target1
+    6.target2 断开target1 连接
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1下设置ssid 和pwd 加密方式
+    2.target2 jap target 1
+    3.设置reconn,开启(此功能不需要重启系统)
+    4.target2 断开target1 连接
+    5.等待10s,target2 自动重连target1
+    6.target2 断开target1 连接
+  sub module: WIFI Connect
+  summary: will not do reconnect after manually disconnected
+  test environment: SSC_T2_1
+  test point 1: abnormal/special use
+  test point 2: reconnect policy test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0503
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -R -r 0
+    - - R SSC1 C OK
+  - - SSC SSC1 sta -C -s <random_string> -p <random_string>
+    - - R SSC1 C +JAP:OK
+      - R SSC1 NC +JAP:DISCONNECTED,1 C +JAP:DISCONNECTED,3
+  - - DELAY 5
+    - - R SSC1 NC +JAP:DISCONNECTED
+      - P PC_COM C +DELAYDONE
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <random_string>
+    - - R SSC1 C +JAP:OK
+      - R SSC1 NC +JAP:DISCONNECTED,1 C +JAP:DISCONNECTED,2
+  - - DELAY 5
+    - - R SSC1 NC +JAP:DISCONNECTED
+      - P PC_COM C +DELAYDONE
+  - - SSC SSC1 sta -R -r 1
+    - - SSC SSC1 C OK
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. not reconnect when connect failed, status when recv disconnect event is correct
+    3. not reconnect when connect failed, status when recv disconnect event is correct
+    4. succeed
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. set sta reconnect policy as not reconnect
+    2. sta connect to ap not exist
+    3. sta connect to ap with wrong password
+    4. reset sta reconnect policy as auto reconnect
+  sub module: WIFI Connect
+  summary: reconnect policy interact with failed STA connect/reconnect
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: reconnect policy test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0601
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
+      <target_encryption>
+    - - R PC_COM C +WIFICONN:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 ap -L
+    - - 'R SSC1 C +LSTA:'
+      - 'R SSC1 C +LSTA:'
+      - R SSC1 C +LSTADONE
+  execution time: 0.0
+  expected result: |-
+    1.target1 set AP
+    2.PC WIFI CONNECTED
+    3.target2 jap target 1
+    4.查询到两个sta 连接到target1 上
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. target1下设置ssid 和pwd 加密方式
+    2.PC WIFI CONNECTED target1
+    3.target2 jap target 1
+    4.查询到两个sta 连接到target1 上
+  sub module: WIFI Connect
+  summary: list stations connected to soft ap test
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: list SoftAP connected station
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0701
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -D
+    - - R SSC1 C QAP
+  - - SSC SSC1 sta -Q
+    - - R SSC1 C +STA_STATUS:0
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 C +JAP:OK
+  - - SSC SSC1 sta -Q
+    - - R SSC1 C +STA_STATUS:1
+      - R SSC1 C +JAP:CONNECTED
+  - - SSC SSC1 sta -Q
+    - - R SSC1 C +STA_STATUS:5
+  - - APC <APC1> OFF <ap_apc>
+    - - P PC_COM L OK
+      - P SSC1 C bcn_timout
+  - - SSC SSC1 sta -Q
+    - - R SSC1 C +STA_STATUS:4
+  - - APC <APC1> ON <ap_apc>
+    - - P PC_COM L OK
+  execution time: 0.0
+  expected result: |-
+    1. idle state
+    2. connecting state
+    3. got IP state
+    4. connect fail state
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. sta disconnected, query status
+    2. sta connect to AP, query status
+    3. got IP, query status
+    4. AP power off, query status when beacon timeout
+  sub module: WIFI Connect
+  summary: check wifi status idle, connecting, got ip and connect fail
+  test environment: SSC_T1_APC
+  test point 1: basic function
+  test point 2: wifi connect status check
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0702
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <random_string> -p <random_string>
+    - - R SSC1 C +JAP:OK
+      - R SSC1 C +JAP:DISCONNECTED,3
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <random_string>
+    - - R SSC1 C +JAP:OK
+      - R SSC1 C +JAP:DISCONNECTED,2
+  execution time: 0.0
+  expected result: |-
+    1. get status AP not exist in disconnect event
+    2. get status wrong password in disconnect event
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. sta connect to ap not exist
+    2. sta connect to ap with wrong password
+  sub module: WIFI Connect
+  summary: check wifi status wrong password, no ap found
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: wifi connect status check
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0703
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <wep_ap_ssid> -p bacfd
+    - - R SSC1 C +JAP:DISCONNECTED,4,2
+  execution time: 0.0
+  expected result: 1. connect status connect fail in disconnect evnet
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: 1. connect WEP ap with error password (valid wep password)
+  sub module: WIFI Connect
+  summary: check wifi status connect fail
+  test environment: SSC_T1_WEP
+  test point 1: basic function
+  test point 2: wifi connect status check
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0801
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 0
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 2
+    - - P SSC1 C +SAP:OK
+      - P SSC2 C +JAP:AUTHCHANGED,2,0
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 3
+    - - P SSC1 C +SAP:OK
+      - P SSC2 C +JAP:AUTHCHANGED,3,2
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
+    - - P SSC1 C +SAP:OK
+      - P SSC2 C +JAP:AUTHCHANGED,4,3
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 0
+    - - P SSC1 C +SAP:OK
+      - P SSC2 C +JAP:AUTHCHANGED,0,4
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. succeed
+    3. auth change event old mode 0 new mode 2
+    4. auth change event old mode 2 new mode 3
+    5. auth change event old mode 3 new mode 4
+    6. auth change event old mode 4 new mode 0
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. set target1 softap auth mode 0
+    2. target2 connect to target1
+    3. set target1 softap auth mode 2, wait sta connected
+    4. set target1 softap auth mode 3, wait sta connected
+    5. set target1 softap auth mode 4, wait sta connected
+    6. set target1 softap auth mode 0, wait sta connected
+  sub module: WIFI Connect
+  summary: test auth change event
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: wifi auth changed event test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0901
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: basic function
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 C +JAP:CONNECTED
+  - - SSC SSC1 sta -D
+    - - R SSC1 RE JAP:DISCONNECTED,\d+,8
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <random_string>
+    - - R SSC1 RE JAP:DISCONNECTED,\d+,15
+  - - SSC SSC1 sta -C -s <random_string> -p <ap_password>
+    - - R SSC1 RE JAP:DISCONNECTED,\d+,201
+  execution time: 0.0
+  expected result: |-
+    1. disconnect event reason REASON_ASSOC_LEAVE
+    2. disconnect event reason REASON_4WAY_HANDSHAKE_TIMEOUT
+    3. disconnect event reason REASON_NO_AP_FOUND
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. sta connect to AP, and disconnect
+    2. connect to AP with wrong password
+    3. connect to AP not exist
+  sub module: WIFI Connect
+  summary: test wifi disconnect reason REASON_ASSOC_LEAVE, REASON_4WAY_HANDSHAKE_TIMEOUT,
+    REASON_NO_AP_FOUND
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: wifi disconnect reason test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0902
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 C +JAP:CONNECTED
+  - - APC <APC1> OFF <ap_apc>
+    - - P PC_COM L OK
+      - R SSC1 RE JAP:DISCONNECTED,\d+,200
+  - - APC <APC1> ON <ap_apc>
+    - - P PC_COM L OK
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. disconnect event REASON_BEACON_TIMEOUT
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. connect to AP
+    2. AP power off
+  sub module: WIFI Connect
+  summary: test wifi disconnect reason REASON_BEACON_TIMEOUT
+  test environment: SSC_T1_APC
+  test point 1: basic function
+  test point 2: wifi disconnect reason test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_CONN_0903
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: '1/2'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <wep_ap_ssid> -p bacfd
+    - - R SSC1 RE JAP:DISCONNECTED,\d+,2
+  execution time: 0.0
+  expected result: 1. disconect event reason REASON_AUTH_EXPIRE
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: 1. connect WEP ap with error password (valid wep password)
+  sub module: WIFI Connect
+  summary: test wifi disconnect reason REASON_AUTH_EXPIRE
+  test environment: SSC_T1_WEP
+  test point 1: basic function
+  test point 2: wifi disconnect reason test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_0904
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: '2/3'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 3 -m 1
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <random_string> -p 1234567890
+    - - R SSC2 RE JAP:DISCONNECTED,\d+,204
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +QAP:OK
+  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> <pc_ip_wifi>
+    - - R PC_COM NC ERROR C +WIFICONN:OK
+  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
+    - - R SSC2 RE JAP:DISCONNECTED,\d+,5
+  - - WIFI <pc_wifi_nic> DISCONN
+    - - P PC_COM C OK
+      - R SSC2 C +JAP:CONNECTED
+  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 3 -m 1
+    - - P SSC1 C +SAP:OK
+      - P SSC2 RE JAP:DISCONNECTED,\d+,4
+  execution time: 0.0
+  expected result: |-
+    1. succeed
+    2. disconnect event REASON_HANDSHAKE_TIMEOUT
+    3. succeed
+    4. succeed
+    5. disconnect event REASON_ASSOC_TOOMANY
+    6. succeed, target2 connect succeed
+    7. disconnect event REASON_ASSOC_EXPIRE
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. config target1 softap max sta allowed 1
+    2. target2 connect to target1 with wrong password
+    3. target2 disconnect
+    4. PC WIFI NIC connect to target1
+    5. target2 connect to target1 with correct password
+    6. PC WIFI NIC disconnect
+    7. reconfig softap
+  sub module: WIFI Connect
+  summary: test wifi disconnect reason REASON_ASSOC_TOOMANY, REASON_HANDSHAKE_TIMEOUT,
+    REASON_ASSOC_EXPIRE
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: wifi disconnect reason test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_CONN_1001
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'No'
+  category: Function
+  cmd set: ''
+  execution time: 1.0
+  expected result: 4.平均beacon delay时间小于10ms
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target设置成AP 模式
+    2.PC 端启动wireshark 抓包工具抓取target beacon包
+    3.停止抓包将抓取的beacon 包以txt格式导出
+    4.利用脚本计算beacon delay时间
+  sub module: WIFI Connect
+  summary: beacon delay
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: beacon delay
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1101
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ram -Q
+    - - R SSC1 A <FREg>:\+FREEHEAP:(\d+)\r\n
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 ram -Q
+    - - R SSC1 P <FREg>
+  execution time: 0
+  expected result: |
+    1. get current heap size
+    2.OK
+    3.OK
+    4.heap size unchanged
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. check heap size
+    2. wifi start
+    3. wifi stop
+    4. check heap size
+  sub module: WIFI Connect
+  summary: wifi start and stop, heap size unchanged
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: wifi start and stop, heap size unchanged
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1201
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 C +JAP:ERROR
+  execution time: 0
+  expected result: |
+    1. ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. sta connect
+  sub module: WIFI Connect
+  summary: sta connect after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1202
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -R -a 1
+    - - R SSC1 C +AUTORECONN:OK
+  - - SSC SSC1 sta -Q
+    - - R SSC1 C +JAP:DISCONNECTED
+  execution time: 0
+  expected result: |
+    1. OK
+    2. DISCONNECTED
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. sta reconnect start
+    2. query sta state
+  sub module: WIFI Connect
+  summary: sta reconnect start and connect fail after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1203
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -D
+    - - R SSC1 C +QAP:ERROR
+  execution time: 0
+  expected result: |
+    1. ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. sta disconnect
+  sub module: WIFI Connect
+  summary: station disconnect after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1204
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -Q
+    - - R SSC1 C +JAP:DISCONNECTED
+  execution time: 0
+  expected result: |
+    1. DISCONNECTED
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. query sta state
+  sub module: WIFI Connect
+  summary: query sta state after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1205
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -S -s <ap_ssid>
+    - - R SSC1 C +SCAN:ERROR,1
+  execution time: 0
+  expected result: |
+    1. ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. sta scan ssid and pwd
+  sub module: WIFI Connect
+  summary: sta scan after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1206
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -C -s <target_ssid> -p <target_password>
+    - - R SSC1 C +JAP:ERROR
+  execution time: 0
+  expected result: |
+    1. ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. ap connect ssid and pwd
+  sub module: WIFI Connect
+  summary: ap connect after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1207
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -D
+    - - R SSC1 C +QAP:ERROR
+  execution time: 0
+  expected result: |
+    1. ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. ap disconnect
+  sub module: WIFI Connect
+  summary: ap disconnect after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1208
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -L
+    - - R SSC1 C +LSTADONE
+  execution time: 0
+  expected result: |
+    1. +LSTADONE
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. ap list station
+  sub module: WIFI Connect
+  summary: ap list station after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1209
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -Q
+    - - 'R SSC1 C +APCONFIG:'
+  execution time: 0
+  expected result: |
+    1. +APCONFIG:ssid and pwd
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. query ap config
+  sub module: WIFI Connect
+  summary: query ap config after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1210
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password>
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password>
+    - - R SSC1 C +SAP:ERROR
+  execution time: 0
+  expected result: |
+    1. OK
+    2. OK
+    3. OK
+    4. ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. set ap mode
+    2. ap set ssid and pwd
+    3. set station mode
+    4. ap set ssid and pwd
+  sub module: WIFI Connect
+  summary: ap set ssid and pwd after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1211
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 mac -Q
+    - - 'R SSC1 C MAC:'
+  execution time: 0
+  expected result: |
+    1. MAC:
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. query mac
+  sub module: WIFI Connect
+  summary: query mac after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1212
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,OK
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,ERROR
+  execution time: 0
+  expected result: |
+    1. OK
+    2. OK
+    3. ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. set ap mode
+    2. set ap mac
+    3. set station mac
+  sub module: WIFI Connect
+  summary: set mac after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1213
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  - - SSC SSC1 mac -Q -o 1
+    - - 'R SSC1 C +STAMAC:'
+  execution time: 0
+  expected result: |
+    1. OK
+    2. OK
+    3. get station mac
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. set station mode
+    2. set station mac
+    3. query station mac
+  sub module: WIFI Connect
+  summary: query mac after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1214
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 mac -S -o 1 -m <target_mac>
+    - - R SSC1 C +MAC:STA,OK
+  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
+    - - R SSC1 C +MAC:AP,ERROR
+  execution time: 0
+  expected result: |
+    1. OK
+    2. OK
+    3. ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. set station mode
+    2. set station mac
+    3. set ap mac
+  sub module: WIFI Connect
+  summary: set mac after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1215
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 channel -S -c 13
+    - - R SSC1 C +CHANNEL:ERROR
+  execution time: 0
+  expected result: |
+    1. +CHANNEL:ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. set channel
+  sub module: WIFI Connect
+  summary: set channel after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1216
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 channel -S -c 13
+    - - R SSC1 C +CHANNEL:ERROR
+  - - SSC SSC1 channel -G
+    - - R SSC1 C +CHANNEL
+  execution time: 0
+  expected result: |
+    1. +CHANNEL:ERROR
+    2. +CHANNEL
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. set channel
+    2. query channel
+  sub module: WIFI Connect
+  summary: query channel after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1217
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -Q
+    - - R SSC1 C +MODE:OK
+  execution time: 0
+  expected result: |
+    1. +CURMODE:2
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. query current mode
+  sub module: WIFI Connect
+  summary: be AP mode after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1218
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  execution time: 0
+  expected result: |
+    1. OK
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. set STA mode
+  sub module: WIFI Connect
+  summary: set STA mode after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1219
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 2
+    - - R SSC1 C +MODE:OK
+  execution time: 0
+  expected result: |
+    1. OK
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. set AP mode
+  sub module: WIFI Connect
+  summary: set ap mode after WiFi stop
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: use WiFi API after WiFi stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1301
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a deinit
+    - - R SSC1 C +MODE:ERROR
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  execution time: 0
+  expected result: |
+    1. OK
+    2. OK
+    3. ERROR
+    4. OK
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. wifi init
+    2. wifi start
+    3. wifi deinit
+    4. wifi stop
+  sub module: WIFI Connect
+  summary: incorrect deinit stop flow
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: WiFi deinit and stop
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1302
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a deinit
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:ERROR
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:ERROR
+  execution time: 0
+  expected result: |
+    1. OK
+    2. OK
+    3. ERROR
+    4. ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. wifi init
+    2. wifi deinit
+    3. wifi start
+    4. wifi stop
+  sub module: WIFI Connect
+  summary: incorrect deinit start flow
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: WiFi deinit and start
+  version: v1 (2016-12-31)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_1303
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a init
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a deinit
+    - - R SSC1 C +MODE:ERROR
+  - - SSC SSC1 op -W -a deinit
+    - - R SSC1 C +MODE:ERROR
+  - - SSC SSC1 op -W -a stop
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a deinit
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 op -W -a start
+    - - R SSC1 C +MODE:ERROR
+  execution time: 0
+  expected result: |
+    1. OK
+    2. OK
+    3. OK
+    4. ERROR
+    5. ERROR
+    6. OK
+    7. OK
+    8. ERROR
+  initial condition: WIFISTO
+  level: Integration
+  module: WIFI MAC
+  steps: |
+    1. wifi init
+    2. wifi init
+    3. wifi start
+    4. wifi deinit
+    5. wifi deinit
+    6. wifi stop
+    7. wifi deinit
+    8. wifi start
+  sub module: WIFI Connect
+  summary: incorrect deinit stop flow
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: WiFi deinit and stop
+  version: v1 (2016-12-31)
+- CI ready: 'No'
+  ID: WIFI_CONN_5001
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiJAP
+  - - target_ap_num = 10
+    - - '["TENDA123456", 11, "1234567890", 10, 10, 3, 2]'
+  - - test_count = 500
+    - - '["not_pig_head", 12, "", 0, 10, 0, 3]'
+  - - join_test_method = ["Normal", "OFF_ON"]
+    - - '["MW300R_T", 8, "12345", 5, 9, 0, 5]'
+  - - join_delay = [[0, 4], [0, 5]]
+    - - '["AC750", 5, "1234567890", 10, 1, 0, 8]'
+  - - step_config = [0x0B, 0x07, 0x02]
+    - - '["AUF", 3, "1234567890", 10, 9, 0, 1]'
+  - - reconnect_test_method = ["OFF_ON"]
+    - - ''
+  - - reconnect_delay = [[0, 10], [2, 10]]
+    - - ''
+  execution time: 5.0
+  expected result: |-
+    1. SAP succeed
+    2. JAP succeed
+    3. reconnect succeed
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. random generate test parameter (ssid, password, auth type, ssid hidden/broadcast), SAP and JAP
+    2. power off AP during JAP, power on AP
+    3. power off AP after JAP succeed, power on AP
+    Loop step 1-3
+  sub module: WIFI Connect
+  summary: 使用各种可能的 ssid+password+auth type 组合进行SAP和JAP;JAP过程中AP随机断电或更改设置;AP随机断电后重连
+  test environment: SSC_T2_JAP
+  test point 1: function + performance + stress
+  test point 2: JAP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_5101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/SoftAPNSTA
+  - - sta_num = 4
+    - - dummy
+  - - max_sta = 4
+    - - ''
+  - - test_time = 300
+    - - ''
+  - - delay1 = [0, 1]
+    - - ''
+  - - delay2 = [0, 1]
+    - - ''
+  - - change_mac = True
+    - - ''
+  - - channel = 1
+    - - ''
+  execution time: 5.0
+  expected result: |-
+    1. succeed
+    2. JAP succeed
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 1 target set to softap mode and rest set to sta mode
+    2. all sta random join and disconnect from softap
+    Loop step 2
+  sub module: WIFI Connect
+  summary: max sta connect to SotfAP and disconnect
+  test environment: SSC_T5_1
+  test point 1: stress
+  test point 2: SoftAP WIFI connect/disconnect stress test
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: WIFI_CONN_5102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiJAPAtt
+  - - test_count = 5
+    - - dummy
+  execution time: 5.0
+  expected result: |-
+    2. Scan succeed with RSSI > -90
+    3. Join succeed with RSSI > -90
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. config attenuator (0-59)
+    2. scan AP to get AP RSSI
+    3. try to join AP
+    Loop step 1 - 3
+  sub module: WIFI Connect
+  summary: connect AP with rssi from -50 to -100
+  test environment: SSC_T1_ShieldBox
+  test point 1: stress
+  test point 2: JAP with different RSSI
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_CONN_5103
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiJAPAtt
+  - - test_count = 5
+    - - dummy
+  - - att_test_list = range(30, 50)
+    - - ''
+  execution time: 5.0
+  expected result: |-
+    2. Scan succeed with RSSI > -90
+    3. Join succeed with RSSI > -90
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. config attenuator (30-59)
+    2. scan AP to get AP RSSI
+    3. try to join AP
+    Loop step 1 - 3
+  sub module: WIFI Connect
+  summary: connect AP with rssi from -80 to -100
+  test environment: SSC_T1_ShieldBox
+  test point 1: stress
+  test point 2: JAP with different RSSI
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_CONN_5104
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiJAPScanSpecified
+  - - target_ap_num = 6
+    - []
+  - - test_count = 50
+    - []
+  - - test_times = 2
+    - []
+  execution time: 5.0
+  expected result: |-
+    1. JAP succeed
+    2. reconnect succeed and connection time less than 1.5s
+    3. connect succeed, and connection time less than 1.5s
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: 1. SSC target connect the first five AP, first 5 AP which will be stored
+    to connected AP cached of DUT. 2. SSC target reconnect ap. 3. SSC target connect
+    the last AP, last AP will not be stored in AP cache and DUT do not know the channel
+    of this AP. Loop step 1-3
+  sub module: WIFI Connect
+  summary: 1 STA 6 AP, count connect AP requires time by scanning the specified channel.
+  test environment: SSC_T1_SCANSPECIFIED
+  test point 1: function + performance + stress
+  test point 2: JAP stress test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_CONN_5105
+  SDK: ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiJAPCSA
+  - - test_count = 2
+    - - ''
+  - - test_times = 10
+    - - ''
+  execution time: 5.0
+  expected result: 3. connect success 4. PC stay connected
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 1 SSC target connect PC by Uart.
+    2. SSC target set as softap+sta mode.
+    3. PC wireless NIC connect softap.
+    4. sta connect AP ,softap and AP should in different channel
+  sub module: WIFI Connect
+  summary: channel switch announcements verify
+  test environment: SSC_T1_1
+  test point 1: function + stress
+  test point 2: channel switch announcements
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: WIFI_CONN_5106
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stable
+  cmd set:
+  - WiFiStress/WifiConnStable
+  - - check_count = 1440
+    - - dummy
+  - - check_time = 60
+    - - ''
+  - - sleep_mode = "NoneSleep"
+    - - ''
+  execution time: 24.0
+  expected result: 3. no disconnected
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. set SSC as sta mode and disable sleep function
+    2. 1 SSC connect with AP
+    3. check connection status within 24 hours
+  sub module: WIFI Connect
+  summary: connection stable
+  test environment: SSC_T1_1
+  test point 1: stress + function
+  test point 2: connection keep alive stress test
+  version: v2 (2016-10-23)
+- CI ready: 'No'
+  ID: WIFI_CONN_5107
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stable
+  cmd set:
+  - WiFiStress/WifiSendpktSwitchChan
+  - - test_count = 1000
+    - - dummy
+  - - test_time = 20
+    - - ''
+  - - send_len = 1000
+    - - ''
+  - - send_count = 1000
+    - - ''
+  - - send_delay = 20
+    - - ''
+  execution time: 24.0
+  expected result: 4. connect suc
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. set SSC as sta mode send UDP broadcast pkt
+    2. switch SSC send pkt channel
+    3. SSC stop send pkt
+    4. SSC connect ap
+  sub module: WIFI Connect
+  summary: connection stable
+  test environment: SSC_T1_1
+  test point 1: stress
+  test point 2: connect ap
+  version: v2 (2016-10-23)
+- CI ready: 'No'
+  ID: WIFI_CONN_5201
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: IOT
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  execution time: TBD
+  expected result: |-
+    1. 配置成功,如有需要就重启路由
+    2. target 连接AP成功
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 将每个需要测试的AP手动配置为该AP所有可能的模式(bgn),带宽,加密模式的组合
+    2. 控制 target 连接 AP
+  sub module: WIFI Connect
+  summary: basic join ap
+  test environment: SSC_T1_IOT1
+  test point 1: interoperability
+  test point 2: JAP inter operablity test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_CONN_5202
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: IOT
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  - - DELAY 60
+    - - P PC_COM C +DELAYDONE
+      - P SSC1 NC +JAP:DISCONNECTED
+  execution time: TBD
+  expected result: |-
+    1. 配置成功,如有需要就重启路由
+    2. target 连接AP成功
+    3. target 没有从AP断开
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 将每个需要测试的AP手动配置为该AP所有可能的模式(bgn),带宽,加密模式的组合
+    2. 控制 target 连接 AP
+    3. 等待60s
+  sub module: WIFI Connect
+  summary: join ap not disconnected in 60 seconds
+  test environment: SSC_T1_IOT1
+  test point 1: interoperability
+  test point 2: JAP inter operablity test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_CONN_5203
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'No'
+  category: IOT
+  cmd set: ''
+  execution time: TBD
+  expected result: |-
+    1. 配置成功,如有需要就重启路由
+    2. 开始连接AP
+    3. target 最终连接AP成功
+    4. target 从 AP 断开
+    5. target 重连AP成功
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 将每个需要测试的AP手动配置为该AP所有可能的模式(bgn),带宽,加密模式的组合
+    2. 控制 target 连接 AP
+    3. 快速在连接AP过程中对AP断电上电
+    4. AP断电后再上电
+    5. 等待 target 重连 AP
+  sub module: WIFI Connect
+  summary: power off and power on AP during JAP, reconnect after AP power off and
+    power on
+  test environment: SSC_T1_IOT1
+  test point 1: interoperability
+  test point 2: JAP inter operablity test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_CONN_5301
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'No'
+  category: IOT
+  cmd set: ''
+  execution time: TBD
+  expected result: 3. get test result form smart phone APK
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. setup a few SoftAP with different configs (special character in ssid/passwd, differnt auth type)
+    2. install and config APK on all smart phones
+    3. use APK to test WiFi connect
+  sub module: WIFI Connect
+  summary: connect to softap IOT test
+  test environment: SSC_T5_IOT1
+  test point 1: interoperability
+  test point 2: Connect to SoftAP inter operablity test
+  version: v1 (2016-10-18)
+- CI ready: 'No'
+  ID: WIFI_CONN_9901
+  SDK: All
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Performance
+  cmd set:
+  - WiFiStress/WifiJAPCompatibility
+  - - test_count = 10
+    - - ''
+  - - retry_count = 1
+    - - ''
+  execution time: 1
+  expected result: 1. set succeed 2. disconnect succeed 3. connect succeed
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: 1. set sta mode 2. disconnect sta 3. sta connect ap
+  sub module: WIFI Connect
+  summary: sta connect ap
+  test environment: SSC_T1_IOT1
+  test point 1: Compatibility Test test point
+  test point 2: WIFI compatibility test
+  version: v1 (2016-10-23)
diff --git a/components/idf_test/integration_test/TC_IT_WIFI_MODE.yml b/components/idf_test/integration_test/TC_IT_WIFI_MODE.yml
new file mode 100644 (file)
index 0000000..0833054
--- /dev/null
@@ -0,0 +1,135 @@
+test cases:
+- CI ready: 'Yes'
+  ID: WIFI_MODE_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 op -S -o 1
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  - - SSC SSC2 sta -S
+    - - R SSC2 NP <target_ssid> C +SCANDONE
+  - - SSC SSC1 sta -D
+    - - R SSC1 C +QAP:OK
+  execution time: 0.0
+  expected result: |-
+    1.target1下设置ssid 和pwd 、加密方式成功
+    2.修改target 1的mode 为sta mode
+    3.target1的dhcp打开
+    4.target1成功连接上AP
+    5.target2上不能查询到target_ssid
+    6.target1断开AP
+  initial condition: T2O_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1下设置ssid 和pwd 加密方式
+    2.修改target1的mode 为sta mode
+    3.target1的dhcp打开
+    4.target1连接AP
+    5.target2查询target_ssid
+    6.target1断开AP
+  sub module: WIFI Mode
+  summary: mode switch test (sta mode)
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: wifi mode fucntion
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_MODE_0102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -S
+    - - R SSC2 P <target_ssid>
+      - R SSC2 C +SCANDONE
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 C +JAP:ERROR
+  - - SSC SSC1 sta -D
+    - - R SSC1 C +QAP:ERROR
+  execution time: 0.0
+  expected result: |-
+    1. target1 set AP
+    2.target 2 上查询到target_ssid
+    3. target1 can't join AP
+    4. target1 can't QAP
+  initial condition: T2O_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1下设置ssid 和pwd 加密方式
+    2.target 2 上查询target_ssid
+    3.target1 join AP
+    4.target1 DISCONN AP
+  sub module: WIFI Mode
+  summary: mode switch test (AP mode)
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: wifi mode fucntion
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_MODE_0103
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 3
+    - - R SSC1 C +MODE:OK
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 dhcp -S -o 1
+    - - R SSC1 C +DHCP:STA,OK
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
+  - - SSC SSC2 sta -S
+    - - R SSC2 P <target_ssid>
+      - R SSC2 C +SCANDONE
+  execution time: 0.0
+  expected result: |-
+    1.target1 change to AP mode
+    2.target1 set AP
+    3.target 1 的dhcp 打开
+    4.target 1 成功连接上AP
+    5.target 2 上查询到target_ssid
+  initial condition: T2O_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1 change to AP mode
+    2.target1下设置ssid 和pwd 加密方式
+    3.target1 的dhcp 打开
+    4.target1 连接AP
+    5.target2 上查询target_ssid
+  sub module: WIFI Mode
+  summary: mode switch test (STA+AP mode)
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: wifi mode fucntion
+  version: v1 (2016-8-15)
diff --git a/components/idf_test/integration_test/TC_IT_WIFI_SCAN.yml b/components/idf_test/integration_test/TC_IT_WIFI_SCAN.yml
new file mode 100644 (file)
index 0000000..e0b0190
--- /dev/null
@@ -0,0 +1,848 @@
+test cases:
+- CI ready: 'Yes'
+  ID: WIFI_SCAN_0101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC2 sta -S -s .,juhg123
+    - - 'R SSC2 NC +SCAN: C +SCANDONE'
+  - - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -S -s <target_tmp_ssid>
+    - - 'R SSC2 C +SCAN:'
+      - R SSC2 P <target_tmp_ssid>
+      - 'R SSC2 NC +SCAN: C +SCANDONE'
+  execution time: 0.0
+  expected result: |-
+    1.target 2上不能scan  .,juhg123
+    2.target1 set AP
+    3.target2上查询到<target_tmp_ssid>
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target 2  scan  .,juhg123
+    2.target1下设置ssid 和pwd 加密方式
+    3.target2  scan <target_tmp_ssid>
+  sub module: WIFI Scan
+  summary: scan with scan config ssid
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: scan with different config
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_SCAN_0102
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC2 sta -S -b ff:ff:ff:ff:ff:11
+    - - 'R SSC2 NC +SCAN: C +SCANDONE'
+  - - SSC SSC2 sta -S -b <target_ap_mac>
+    - - R SSC2 RE "\+SCAN:.+,%%s"%%(<target_ap_mac>)
+      - 'R SSC2 NC +SCAN: C +SCANDONE'
+  execution time: 0.0
+  expected result: |-
+    1.target2 上不能查询到此mac
+    2.target2上查询到<target_ap_mac>
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target2 上查询此macff:ff:ff:ff:ff:11
+    2.target2上查询<target_ap_mac>
+  sub module: WIFI Scan
+  summary: scan with scan config bssid
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: scan with different config
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_SCAN_0103
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3 -n 6
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -S -n 5
+    - - R SSC2 NP <target_tmp_ssid> C +SCANDONE
+  - - SSC SSC2 sta -S -n 6
+    - - 'R SSC2 C +SCAN:'
+      - R SSC2 P <target_tmp_ssid>
+  execution time: 0.0
+  expected result: |-
+    1.target1 QAP
+    2. target1 set AP,set channel 6
+    3.target2 上scan不到 channel 5
+    4.target2 上查询channel 6的<target_tmp_ssid>
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1 断开连接AP
+    2.target1下设置ssid 和pwd 加密方式,set channel 6
+    3.target2 上scan channel 5
+    4.target2 上查询channel 6的<target_tmp_ssid>
+  sub module: WIFI Scan
+  summary: scan with scan config channel
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: scan with different config
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_SCAN_0104
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3 -h 0
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -D
+    - - R SSC2 C OK
+  - - SSC SSC2 sta -S -h 0
+    - - R SSC2 P <target_tmp_ssid> C +SCANDONE
+  - - SSC SSC2 sta -S -h 1
+    - - R SSC2 P <target_tmp_ssid> C +SCANDONE
+  - - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -h 1
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -S -h 0
+    - - R SSC2 NP <target_tmp_ssid> C +SCANDONE
+  - - SSC SSC2 sta -S -h 1
+    - - R SSC2 P <target_ap_mac> C +SCANDONE
+  execution time: 0.0
+  expected result: |-
+    1.target1 set AP,set ssid broad cast
+    2.target 2上scan <target_tmp_ssid>
+    3.target 2上scan <target_tmp_ssid>
+    4.target1 set AP,set ssid hidden,
+    5.target 2上不能查询到 <target_tmp_ssid>
+    6.target 2上查询到<target_ap_mac>
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1下设置ssid 和pwd 加密方式,set ssid broad cast
+    2.target 2上scan <target_tmp_ssid>
+    3.target 2上scan <target_tmp_ssid>
+    4.target1下设置ssid 和pwd 加密方式,set ssid hidden,
+    5.target 2上查询 <target_tmp_ssid>
+    6.target 2上查询<target_ap_mac>
+  sub module: WIFI Scan
+  summary: scan with scan config show hidden
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: scan with different config
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_SCAN_0105
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -D
+    - - 'R SSC1 C +QAP:'
+  - - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3 -h 0 -n 11
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -S -s <target_tmp_ssid> -b <target_ap_mac> -n 11
+    - - R SSC2 P <target_tmp_ssid> C +SCANDONE
+  - - SSC SSC2 sta -S -s <target_ssid> -b <target_ap_mac> -n 11
+    - - R SSC2 NP <target_tmp_ssid> C +SCANDONE
+  - - SSC SSC2 sta -S -s <target_tmp_ssid> -b ff:ff:ff:ff:ff:11 -n 11
+    - - R SSC2 P <target_tmp_ssid>
+      - R SSC2 NP <target_tmp_ssid> C +SCANDONE
+  - - SSC SSC2 sta -S -s <target_tmp_ssid> -b <target_ap_mac> -n 10
+    - - R SSC2 P <target_tmp_ssid>
+      - R SSC2 NP <target_tmp_ssid> C +SCANDONE
+  execution time: 0.0
+  expected result: |-
+    1.target1 QAP
+    2. target1 set AP,set ssid broad cast,set channel 11
+    3.target2 上查询到<target_tmp_ssid>
+    4.target2 上查询不到<target_tmp_ssid>
+    5.target2 上查询不到<target_tmp_ssid>
+    6.target2 上查询不到<target_tmp_ssid>
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1 QAP
+    2. target1 set AP,set ssid broad cast,set channel 11
+    3.target2 上查询到<target_tmp_ssid>
+    4.target2 上查询不到<target_tmp_ssid>
+    5.target2 上查询不到<target_tmp_ssid>
+    6.target2 上查询不到<target_tmp_ssid>
+  sub module: WIFI Scan
+  summary: scan with several configs
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: scan with different config
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_0202
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -d 0 -b <target1_ap_mac>
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -d 1 -b <target1_ap_mac>
+    - - P SSC2 C +JAP:CONNECTED
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ok
+    3.ok
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1下设置ssid 和pwd 加密方式
+    2.target2 jap
+    3.target2 conn target1 by bssid
+  sub module: WIFI Scan
+  summary: do scan/JAP/SAP
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: scan function test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_0203
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 3
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -j 0
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -j 1
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -j 2
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -j 3
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -j 5
+    - - ''
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -j 1
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -j 2
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -j 3
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -j 0
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -j 4
+    - - ''
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 3 -j 0
+    - - P SSC2 C +JAP:CONNECTED
+  execution time: 0.0
+  expected result: |-
+    1.OK 2.ok
+    3.ok
+    4.ok
+    5.ok
+    7.ok
+    8.ok
+    9.ok
+    10.ok
+    12.ok
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1下设置ssid 和pwd 加密方式
+    2.target2 fast scan and jap target1
+    3.target2 jap target1 except open encrypt
+    4.target2 jap target1 except open and  wep encrypt
+    5.target2 jap target1 only wpa2 encrypt can be connect
+    6.target2 scan all channel jap target1 except open encrypt
+    7.target2 scan all channel jap target1 except open encrypt
+    8.target2 scan all channel jap target1 except open and wep encrypt
+    9.target2 scan all channel jap target1 only wpa2 encrypt can be connected
+    10.target2 scan all channel jap target1
+    11.target2 scan all channel jap target1
+    12.target2 jap target1
+  sub module: WIFI Scan
+  summary: do scan/JAP/SAP
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: scan function test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_0204
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 2
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -q 0
+    - - ''
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -q 128
+    - - ''
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -q 80
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -q 128
+    - - ''
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -q 0
+    - - ''
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -q 80
+    - - P SSC2 C +JAP:CONNECTED
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.no exception
+    3.no exception
+    4.ok
+    5.no exception
+    6.no exception
+    7.ok
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1下设置ssid 和pwd 加密方式
+    2.target2 fast scan and jap target1 rssi>-1
+    3.target2 fast scan and jap rssi>-127
+    4.target2 scan all channel and jap target1 rssi>-80
+    5.target2 scan all channel and jap rssi > -127
+    6.target2 scan all channel and jap rssi > -1
+    7.target2 scan all channel and jap target1 rssi > -80
+  sub module: WIFI Scan
+  summary: do scan/JAP/SAP
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: scan function test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_0205
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 3
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -x 0
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -x 1
+    - - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -x 2
+    - - P SSC2 C +JAP:CONNECTED
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ok
+    3.ok
+    4.ok
+  initial condition: T2_1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target1下设置ssid 和pwd 加密方式
+    2.target2 scan ap all channel and jap target1 by rssi sort
+    3.target2 scan ap all channel and jap target1 by auth
+    4.target2 scan ap all channel jap target1 by auth
+  sub module: WIFI Scan
+  summary: do scan/JAP/SAP
+  test environment: SSC_T2_1
+  test point 1: basic function
+  test point 2: scan function test
+  version: v1 (2016-8-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_0206
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 op -S -o 1
+    - - P SSC1 C +MODE:OK
+  - - SSC SSC1 op -Q
+    - - P SSC1 C +CURMODE:1
+  - - SSC SSC1 sta -S -t 0 -l 0 -m 0
+    - - 'R SSC1 C +SCAN: C +SCANDONE'
+  - - SSC SSC1 sta -S -t 0 -l 1000 -m 100
+    - - 'R SSC1 C +SCAN: C +SCANDONE'
+  - - SSC SSC1 sta -S -t 1 -k 0
+    - - 'R SSC1 C +SCAN: C +SCANDONE'
+  - - SSC SSC1 sta -S -t 1 -k 2000
+    - - 'R SSC1 C +SCAN: C +SCANDONE'
+  - - SSC SSC1 sta -S -t 5 -k 100
+    - - 'R SSC1 C +SCAN: C +SCANDONE'
+  execution time: 0.0
+  expected result: |-
+    1.OK
+    2.ok
+    3.scan ok
+    4.scan ok
+    5.scan ok
+    6.scan ok
+    7.scan ok
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1.target set as sta
+    2.check target1 work mode
+    3.target1 active scan max and min time set to 0ms
+    4.target1 active scan max time 1000ms min time 100ms
+    5.target1 passive scan scan time 0ms
+    6.target passive scan scan time 10000ms
+    7.target1 scan type set to 5
+  sub module: WIFI Scan
+  summary: do active/passive scan
+  test environment: SSC_T1_1
+  test point 1: basic function
+  test point 2: scan function test
+  version: v1 (2016-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_SCAN_0301
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -S
+    - - ''
+  - - SSC SSC1 sta -S
+    - - P SSC1 C +SCANFAIL
+      - 'P SSC1 C +SCAN:'
+      - R SSC1 C +SCANDONE
+  execution time: 0.0
+  expected result: |-
+    1. second scan failed
+    2. first scan succeed
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. do all channel scan
+    2. do scan before scan finished
+  sub module: WIFI Scan
+  summary: reject scan request before scan finished
+  test environment: SSC_T1_1
+  test point 1: interaction
+  test point 2: Scan interact with other WiFi operation
+  version: v1 (2015-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_SCAN_0302
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: '2/3'
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 C +JAP:CONNECTED
+  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
+    - - R SSC1 A <sock1>:BIND:(\d+),OK
+  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -n 1000000 -j 5
+    - - ''
+  - - SSC SSC2 phy -S -o 1 -m b
+    - - R SSC2 C +SPHY:protocol
+  - - SSC SSC2 sta -S -n <ap_channel>
+    - - R SSC2 P <ap_ssid>
+  - - SSC SSC2 phy -S -o 1 -m g
+    - - R SSC2 C +SPHY:protocol
+  - - SSC SSC2 sta -S -n <ap_channel>
+    - - R SSC2 P <ap_ssid>
+  - - SSC SSC2 phy -S -o 1 -m n -b 20
+    - - R SSC2 C +SPHY:protocol
+  - - SSC SSC2 sta -S -n <ap_channel>
+    - - R SSC2 P <ap_ssid>
+  - - SSC SSC2 phy -S -o 1 -m n -b 40
+    - - R SSC2 C +SPHY:protocol
+  - - SSC SSC2 sta -S -n <ap_channel>
+    - - R SSC2 P <ap_ssid>
+  execution time: 0.0
+  expected result: 3. target 2 able to scan AP
+  initial condition: T2_2
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. target 1 connect to AP
+    2. target 1 start sending UDP packets
+    3. target 2 scan in AP channel in 11b.g,n,ht40 mode
+  sub module: WIFI Scan
+  summary: scan in congest channel
+  test environment: SSC_T2_1
+  test point 1: interaction
+  test point 2: Scan interact with other WiFi operation
+  version: v1 (2015-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_SCAN_0303
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - R SSC1 C +JAP:OK
+  - - SSC SSC1 sta -S
+    - - P SSC1 C +SCANDONE
+      - P SSC1 C +JAP:CONNECTED
+  - - SSC SSC1 sta -D
+    - - R SSC1 C +QAP:OK
+  - - SSC SSC1 sta -S
+    - - ''
+  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
+    - - P SSC1 C +SCANDONE
+      - P SSC1 C +JAP:CONNECTED
+  execution time: 0.0
+  expected result: |-
+    2. scan succeed, JAP succeed
+    5. JAP succeed, scan succeed
+  initial condition: STAM1
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. target 1 STA join AP
+    2. target 1 STA scan before JAP succeed
+    3. target 1 quite AP
+    4. target 1 scan
+    5. target 1 JAP before scan succeed
+  sub module: WIFI Scan
+  summary: scan during JAP
+  test environment: SSC_T1_1
+  test point 1: interaction
+  test point 2: Scan interact with other WiFi operation
+  version: v1 (2015-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_SCAN_0304
+  SDK: ESP32_IDF
+  Test App: SSC
+  allow fail: ''
+  auto test: 'Yes'
+  category: Function
+  cmd set:
+  - ''
+  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
+    - - R SSC1 C +SAP:OK
+  - - SSC SSC1 sta -D
+    - - R SSC1 C OK
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - R SSC2 C +JAP:OK
+  - - SSC SSC1 sta -S
+    - - P SSC1 C +SCANDONE
+      - P SSC2 C +JAP:CONNECTED
+  - - SSC SSC2 sta -D
+    - - R SSC2 C +QAP:OK
+  - - SSC SSC1 sta -S
+    - - ''
+  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
+    - - P SSC1 C +SCANDONE
+      - P SSC2 C +JAP:CONNECTED
+  execution time: 0.0
+  expected result: |-
+    2. scan succeed, JAP succeed
+    5. JAP succeed, scan succeed
+  initial condition: T2_2
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. target 2 STA join target 1 SoftAP
+    2. target 1 STA scan before target 2 JAP succeed
+    3. target 2 STA QAP
+    4. target 1 STA scan
+    5. target 2 STA JAP before target 1 STA scan succeed
+  sub module: WIFI Scan
+  summary: scan during ext STA join SoftAP
+  test environment: SSC_T2_1
+  test point 1: interaction
+  test point 2: Scan interact with other WiFi operation
+  version: v1 (2015-8-15)
+- CI ready: 'Yes'
+  ID: WIFI_SCAN_5101
+  SDK: |-
+    8266_NonOS
+    8266_RTOS
+    ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiSCANTime
+  - - test_time = 300
+    - - ''
+  - - active_scan_max_time = 120
+    - - ''
+  - - active_scan_min_time = 20
+    - - ''
+  - - passive_scan_max_time = 100
+    - - ''
+  - - scan_mode_list = ["active_scan","passive_scan"]
+    - - ''
+  execution time: 5.0
+  expected result: "1. succeed\n3. scan time less than 1.15 test time "
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 1 target set to sta mode
+    2. set scan mode
+    3. start scan ap and check scan time
+  sub module: WIFI Scan
+  summary: test differnt scan mode scan time
+  test environment: SSC_T1_1
+  test point 1: stress
+  test point 2: Sta active/passive scan stress test
+  version: v2 (2017-05-10)
+- CI ready: 'No'
+  ID: WIFI_SCAN_5201
+  SDK: ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiScanOptimize
+  - - test_times = 10
+    - - ''
+  - - test_mode = "conn_by_bssid"
+    - - ''
+  execution time: 5.0
+  expected result: 2. connect success
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 1 SSC target connect PC by Uart.
+    2. SSC target connect ap by bssid
+  sub module: WIFI Scan
+  summary: connect specify ap test
+  test environment: SSC_T1_SCANSPECIFIED
+  test point 1: function + stress
+  test point 2: connect ap by bssid
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_5202
+  SDK: ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiScanOptimize
+  - - test_times = 10
+    - - ''
+  - - test_mode = "conn_max_rssi_ap"
+    - - ''
+  execution time: 5.0
+  expected result: 2. connect success
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 1 SSC target connect PC by Uart.
+    2. SSC connect max rssi ap.
+  sub module: WIFI Scan
+  summary: connect max rssi ap
+  test environment: SSC_T1_SCANSPECIFIED
+  test point 1: function + stress
+  test point 2: connect max rssi ap
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_5203
+  SDK: ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiScanOptimize
+  - - test_times = 10
+    - - ''
+  - - test_mode = "conn_most_security_ap"
+    - - ''
+  execution time: 5.0
+  expected result: 2. connect success
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 1 SSC target connect PC by Uart.
+    2. SSC connect max rssi ap
+  sub module: WIFI Scan
+  summary: connect most security ap
+  test environment: SSC_T1_SCANSPECIFIED
+  test point 1: function + stress
+  test point 2: connect most security ap
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_5204
+  SDK: ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiScanOptimize
+  - - test_times = 10
+    - - ''
+  - - test_mode = "conn_setting_ap"
+    - - ''
+  execution time: 5.0
+  expected result: 2. connect success
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 1 SSC target connect PC by Uart.
+    2. SSC connect setting ap
+  sub module: WIFI Scan
+  summary: connect setting ap
+  test environment: SSC_T1_SCANSPECIFIED
+  test point 1: function + stress
+  test point 2: connect setting ap
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_5205
+  SDK: ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiScanOptimize
+  - - test_times = 10
+    - - ''
+  - - test_mode = "reconn_same_ssid_ap"
+    - - ''
+  - - apc_num_list = [1,3]
+    - - ''
+  execution time: 5.0
+  expected result: 2. connect success
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 1 SSC target connect PC by Uart.
+    2. ap1 power on by apc
+    3. SSC connect ap
+    4. ap1 power off and ap2 power on
+    5. SSC auto connect ap2.
+  sub module: WIFI Scan
+  summary: reconnect same ssid ap
+  test environment: SSC_T1_SCANSPECIFIED
+  test point 1: function + stress
+  test point 2: reconnect same ssid ap
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_5206
+  SDK: ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiScanOptimize
+  - - test_times = 10
+    - - ''
+  - - test_mode = "quick_conn_ap"
+    - - ''
+  - - rssi_threshold = 60
+    - - ''
+  execution time: 5.0
+  expected result: 2. connect success
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 1 SSC target connect PC by Uart.
+    2. SSC1 connect ap
+  sub module: WIFI Scan
+  summary: quick connect ap
+  test environment: SSC_T1_SCANSPECIFIED
+  test point 1: function + stress
+  test point 2: quick connect ap
+  version: v2 (2016-11-15)
+- CI ready: 'No'
+  ID: WIFI_SCAN_5207
+  SDK: ESP32_IDF
+  Test App: SSC
+  auto test: 'Yes'
+  category: Stress
+  cmd set:
+  - WiFiStress/WifiScanOptimize
+  - - test_times = 10
+    - - ''
+  execution time: 5.0
+  expected result: 2. connect success
+  initial condition: None
+  level: Integration
+  module: WIFI MAC
+  steps: |-
+    1. 1 SSC target connect PC by Uart.
+    2. make menuconfig
+    3. write ap ssid
+    4. connect ap auto
+  sub module: WIFI Scan
+  summary: connect open security ap
+  test environment: SSC_T1_SCANSPECIFIED
+  test point 1: function
+  test point 2: connect open security mode ap
+  version: v2 (2016-11-15)
diff --git a/components/idf_test/integration_test/TEST_ENV_SSC.yml b/components/idf_test/integration_test/TEST_ENV_SSC.yml
new file mode 100644 (file)
index 0000000..e9675ec
--- /dev/null
@@ -0,0 +1,240 @@
+.TEST_ENV: &TEST_ENV
+  PC OS: ''
+  Special: N
+  test script: EnvBase
+
+test environment:
+- tag: SSC_T1_1
+  <<: *TEST_ENV
+  Target Count: 1
+  test environment detail: |-
+    PC has 2 wired NIC connected to AP.
+    PC has 1 WiFi NIC.
+    1 SSC target connect with PC by UART.
+- tag: SSC_T1_2
+  <<: *TEST_ENV
+  Target Count: 1
+  test environment detail: |-
+    Able to access WAN after connect to AP.
+    1 SSC target connect with PC by UART.
+- tag: SSC_T1_3
+  <<: *TEST_ENV
+  Target Count: 1
+  test environment detail: PC has one BT adapter (dongle). 1 SSC target connect with
+    PC by UART.
+- tag: SSC_T1_8089
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    PC has 1 wired NIC connected to AP.
+    1 8089 tablet able to run iperf test placed near SSC1.
+    1 SSC target connect with PC by UART.
+- tag: SSC_T1_ADC
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    PC has 1 wired NIC connected to AP.
+    Analog input connect to SSC1 TOUT.
+    Multimeter connect to input, able to measure input voltage.
+    1 SSC target connect with PC by UART.
+- tag: SSC_T1_AMSDU
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    1 SSC target connect PC by UART.
+    PC 无线网卡和 SSC target 均连接到天猫魔盒AP.
+- tag: SSC_T1_APC
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    PC has 1 wired NIC connected to AP.
+    PC has 1 wired NIC connected to APC (static IP within the same subnet with APC).
+    APC control AP power supply.
+    PC has 1 WiFi NIC.
+    1 SSC target connect with PC by UART.
+- tag: SSC_T1_Enterprise
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: "AP use WPA2-Etherprise is placed near SSC1. \n1 SSC target
+    connect with PC by UART."
+- tag: SSC_T1_IOT1
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    PC has 1 WiFi NIC.
+    1 SSC target connect with PC by UART.
+    AP todo IOT test are placed near SSC1.
+- tag: SSC_T1_InitData
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 2
+  test environment detail: |-
+    2 SSC target connect with PC by UART.
+    SSC1 use 40M crystal oscillator.
+    SSC2 use normal 26M crystal oscillator.
+    SSC2 GPIO connect to SSC1 power control pin.
+- tag: SSC_T1_SCANSPECIFIED
+  <<: *TEST_ENV
+  Special: N
+  Target Count: 1
+  test environment detail: 1 SSC target connect with PC by UART. All APs power on.
+- tag: SSC_T1_ShieldBox
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    refer to figure.
+    All APs and APC should be set to the same IP subnet.
+    PC wired NIC should set static IP address within the same subnet with AP.
+    Must use onboard wired NIC.
+- tag: SSC_T1_Sleep1
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    AP support DTIM placed with AT target.
+    SSC target connect with Raspberry Pi by UART.
+    Multimeter connect with Raspberry Pi via GPIB.
+    Series multimeter between GND and VCC of SSC1.
+    SSC1's light sleep wakeup pin and wakeup indication connect with Raspberry Pi's GPIO.
+    SSC1's XPD connect with RSTB.
+- tag: SSC_T1_Sleep2
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    AP support DTIM placed with AT target.
+    SSC target connect with Raspberry Pi by UART.
+    Multimeter connect with Raspberry Pi via GPIB.
+    Series multimeter between GND and VCC of SSC1.
+    SSC1's RSTB pin connect with Raspberry Pi's GPIO.
+- tag: SSC_T1_Sleep3
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    AP support DTIM placed with AT target.
+    SSC target connect with Raspberry Pi by UART.
+    Multimeter connect with Raspberry Pi via GPIB.
+    Series multimeter between GND and VCC of SSC1.
+- tag: SSC_T1_Sniffer
+  <<: *TEST_ENV
+  Target Count: 1
+  test environment detail: |-
+    PC has 1 wired NIC connected to AP. PC has 1 WiFi NIC.
+    1 SSC target connect with PC by UART.
+- tag: SSC_T1_TempBox
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    1 SSC target connect with PC by UART.
+    Put SSC target to temperature box.
+- tag: SSC_T1_VDD33
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |-
+    1 SSC target connect with PC by UART.
+    Multimeter connect to VDD33, able to measure voltage.
+- tag: SSC_T1_WEP
+  <<: *TEST_ENV
+  Target Count: 1
+  test environment detail: |-
+    1 SSC target connect with PC by UART.
+    One WEP share key AP placed near SSC1.
+- tag: SSC_T2_1
+  <<: *TEST_ENV
+  Target Count: 2
+  test environment detail: |-
+    PC has 1 wired NIC connected to AP.
+    PC has 1 WiFi NIC.
+    2 SSC target connect with PC by UART.
+- tag: SSC_T2_JAP
+  <<: *TEST_ENV
+  Target Count: 2
+  test environment detail: |-
+    PC has 1 wired NIC connected to APC.
+    APC control the power supply of multiple APs.
+    2 SSC target connect with PC by UART.
+- tag: SSC_T2_PhyMode
+  <<: *TEST_ENV
+  PC OS: 'linux'
+  Target Count: 2
+  test environment detail: |-
+    2 SSC target connect with PC by UART.
+    PC has one WiFi NIC support capture wlan packet using libpcap.
+    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
+    Put 4 APs near SSC targets.
+- tag: SSC_T2_ShieldBox
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 2
+  test environment detail: |-
+    2 SSC target connect with PC by UART.
+    Put them to Shield box.
+- tag: SSC_T2_ShieldBox2
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |
+    refer to figure.
+    2 SSC target connect with PC by UART. Put target board to different Shield boxes.
+    2 shield boxes are connected with programmable attenuator.
+- tag: SSC_T2_Sniffer
+  <<: *TEST_ENV
+  PC OS: 'linux'
+  Special: N
+  Target Count: 2
+  test environment detail: |-
+    PC has 1 wired NIC connected to AP.
+    PC has 1 WiFi NIC.
+    2 SSC target connect with PC by UART.
+- tag: SSC_T2_TempBox
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 1
+  test environment detail: |
+    refer to figure.
+    2 SSC target connect with PC by UART. Put 1 target board to temperature box.
+- tag: SSC_T3_1
+  <<: *TEST_ENV
+  Special: N
+  Target Count: 1
+  test environment detail: |-
+    PC has 1 wired NIC connected to AP.
+    PC has 1 WiFi NIC.
+    3 SSC target connect with PC by UART.
+- tag: SSC_T3_PhyMode
+  <<: *TEST_ENV
+  PC OS: 'linux'
+  Target Count: 3
+  test environment detail: |-
+    3 SSC target connect with PC by UART.
+    PC has one WiFi NIC support capture wlan packet using libpcap.
+    Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2).
+    Put 4 APs near SSC targets.
+- tag: SSC_T5_1
+  <<: *TEST_ENV
+  Target Count: 5
+  test environment detail: 5 SSC target connect with PC by UART.
+- tag: SSC_T5_IOT1
+  <<: *TEST_ENV
+  Special: Y
+  Target Count: 5
+  test environment detail: |-
+    5 SSC targets connect with PC by UART.
+    some Android smart phone are placed near SSC targets.
+- tag: SSC_T6_1
+  <<: *TEST_ENV
+  Target Count: 1
+  test environment detail: |-
+    PC has 1 wired NIC connected to AP.
+    PC has 1 WiFi NIC.
+    6 SSC target connect with PC by UART.
diff --git a/components/idf_test/integration_test/TestCaseAll.yml b/components/idf_test/integration_test/TestCaseAll.yml
deleted file mode 100644 (file)
index 00fa245..0000000
+++ /dev/null
@@ -1,8466 +0,0 @@
-test cases:
-- CI ready: 'Yes'
-  ID: SYS_MISC_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 reboot
-    - [R SSC1 C !!!ready!!!]
-  comment: ''
-  execution time: 0.0
-  expected result: 重启成功
-  initial condition: None
-  initial condition description (auto): none
-  level: Integration
-  module: System
-  steps: 系统重启
-  sub module: Misc
-  summary: test reboot function
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: sw reboot
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: SYS_MISC_0201
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ram -H
-    - ['R SSC1 RE FREEHEAP:\d+\r\n']
-  comment: ''
-  execution time: 0.0
-  expected result: '
-
-    可以查询到一个数值
-
-    '
-  initial condition: None
-  initial condition description (auto): none
-  level: Integration
-  module: System
-  steps: 查询空闲ram
-  sub module: Misc
-  summary: get heap size test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: 'get heap size '
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 dhcp -E -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 ip -S -i 0.0.0.0
-    - [R SSC1 C +IP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['']
-  - - DELAY 20
-    - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED']
-  - - SSC SSC1 dhcp -S -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 ip -Q
-    - ['R SSC1 C +STAIP:0.0.0.0']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC1 ip -Q
-    - ['R SSC1 RE "\+STAIP:%%s"%%(<target_ip>)']
-  comment: ''
-  execution time: 0.0
-  expected result: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n\
-    4.target1 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip"
-  initial condition: STAM1
-  initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a
-    TC with initial condition STAAP1
-  level: Integration
-  module: TCPIP
-  steps: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1\
-    \ 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip"
-  sub module: DHCP
-  summary: dhcp client function test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP client function test
-  version: v2 (2016-10-19)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0103
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 3
-    - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK']
-  - - SSC SSC1 dhcp -Q -o 3
-    - ['R SSC1 C +DHCP:STA,STARTED C +DHCP:AP,STARTED']
-  - - SSC SSC1 dhcp -Q -o 1
-    - ['R SSC1 C +DHCP:STA,STARTED NC +DHCP:AP,STARTED']
-  - - SSC SSC1 dhcp -Q -o 2
-    - ['R SSC1 NC +DHCP:STA,STARTED C +DHCP:AP,STARTED']
-  - - SSC SSC1 dhcp -E -o 3
-    - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK']
-  - - SSC SSC1 dhcp -Q -o 3
-    - ['R SSC1 C +DHCP:STA,STOPPED C +DHCP:AP,STOPPED']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.STA&AP STARTED
-
-    4.STA STARTED
-
-    5.AP STARTED
-
-    6.OK
-
-    7.STA&AP STOPPED'
-  initial condition: STAM1
-  initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a
-    TC with initial condition STAAP1
-  level: Integration
-  module: TCPIP
-  steps: '1.target1 设置mode 为sta+softAP mode
-
-    2.target1 打开DHCP 3
-
-    3.target1 查询DHCP 状态
-
-    4.target1 查询sta DHCP 状态
-
-    5.target1 查询softAP DHCP 状态
-
-    6.target1 关闭 DHCP 3
-
-    7.target1 查询 DHCP 状态'
-  sub module: DHCP
-  summary: dhcp status query
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP client function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0201
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 ip -S -o 2 -i <target_ap_ip>
-    - ['R SSC1 C +IP:OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.1 -e 192.168.4.10
-    - ['R SSC1 C +DHCP:LEASE,ERROR']
-  - - SSC SSC1 dhcp -L -s 192.168.4.5 -e 192.168.4.2
-    - ['R SSC1 C +DHCP:LEASE,ERROR']
-  - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.5
-    - ['R SSC1 C +DHCP:LEASE,ERROR']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target1 关闭DHCP 2 OK
-
-    2.target1 设置ip 成功
-
-    3.设置dhcp 地址池 OK
-
-    4.ERROR
-
-    5.ERROR
-
-    6.ERROR
-
-    7.target1 打开DHCP ok'
-  initial condition: APM1
-  initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial
-    condition APSTA1
-  level: Integration
-  module: TCPIP
-  steps: "1.target1 关闭DHCP 2 \n2.target1 设置ip \n3.设置dhcp 地址池\n4.设置dhcp错误的参数\n5.设置dhcp错误的参数\n\
-    6.设置dhcp错误的参数\n7.target1 打开DHCP ok"
-  sub module: DHCP
-  summary: server dhcp lease test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0202
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - LOOP 3 4 "['01','02','03']" "[2,3,4]"
-    - ['']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:OK']
-  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s}
-    - ['R SSC2 C +MAC:STA,OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC2 ip -Q -o 1
-    - ['R SSC2 C +STAIP:192.168.4.{%s}']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3,4: get IP from dhcp pool with correct sequence'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. config softap to a random ssid
-
-    2. config DHCP Server on Target1
-
-    3. target change mac, connect to Target1
-
-    4. Loop step3'
-  sub module: DHCP
-  summary: dhcp server ip pool
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0203
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - LOOP 2 4 "['01','02']" "[2,3]"
-    - ['']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:OK']
-  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s}
-    - ['R SSC2 C +MAC:STA,OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC2 ip -Q -o 1
-    - ['R SSC2 C +STAIP:192.168.4.{%s}']
-  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
-    - ['R SSC2 C +MAC:STA,OK']
-  - - DELAY 20
-    - ['']
-  - - SSC SSC2 ip -Q -o 1
-    - ['R SSC2 C +STAIP:0.0.0.0']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. succeed
-
-    4.1 succeed
-
-    4.2 failed'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. config softap to a random ssid
-
-    2. config DHCP Server on Target1(.4.2 - .4.3)
-
-    3. target change mac, connect to Target1
-
-    4. Loop step3 twice'
-  sub module: DHCP
-  summary: dhcp server ip pool empty
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0204
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC2 ip -Q -o 1
-    - ['R SSC2 C +STAIP:192.168.4.2']
-  - - DELAY 90
-    - ['']
-  - - SSC SSC2 ip -Q -o 1
-    - ['R SSC2 C +STAIP:192.168.4.2']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +JAP:DISCONNECTED']
-  - - DELAY 60
-    - ['']
-  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
-    - ['R SSC2 C +MAC:STA,OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC2 ip -Q -o 1
-    - ['R SSC2 C +STAIP:192.168.4.2']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. get IP 192.168.4.2
-
-    5. succeed
-
-    6. succeed
-
-    8. get IP 192.168.4.2'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. config softap to a random ssid
-
-    2. config DHCP timeout as 1 minute
-
-    3. target2 connect to target1
-
-    4. wait 90 seconds
-
-    5. check if target2 IP is same
-
-    6. target2 disconnect
-
-    7. wait 60s
-
-    8. target2 change mac and connect to target1'
-  sub module: DHCP
-  summary: dhcp server timeout test
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0205
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1
-    - ['P SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. target2 wifi disconnected'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. config softap to a random ssid
-
-    2. target2 connect to target1
-
-    3. disable DHCP server, do config and enable'
-  sub module: DHCP
-  summary: disconnect STA if config dhcp server
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0206
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - LOOP 4 4 "['01','02','03','01']" "[2,3,4,2]"
-    - ['']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:OK']
-  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s}
-    - ['R SSC2 C +MAC:STA,OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC2 ip -Q -o 1
-    - ['R SSC2 C +STAIP:192.168.4.{%s}']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    4. get IP 192.168.4.2 - 192.168.4.4
-
-    5. get IP 192.168.4.2'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. config softap to a random ssid
-
-    2. disable DHCP server, do config and enable
-
-    3. target2 change mac, connect to softap, disconnect
-
-    4. Loop step3 twice
-
-    5. change to first mac, connect to softap'
-  sub module: DHCP
-  summary: dhcp server assign same IP to same MAC when it's not released
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0207
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - WIFI <pc_wifi_nic> DISCONN2
-    - ['R PC_COM NC ERROR C +WIFIDISCONN:OK']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:OK']
-  - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
-    - ['R SSC2 C +MAC:STA,OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC2 ip -Q -o 1
-    - ['R SSC2 C +STAIP:192.168.4.2']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. get IP 192.168.4.2
-
-    4. succeed
-
-    5. succeed
-
-    6. get IP 192.168.4.2'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. config softap to a random ssid
-
-    2. disable DHCP server, do config and enable
-
-    3. PC WIFI NIC connect to target1 softap
-
-    4. target2 connect to target1 softap and disnnect
-
-    5. PC release IP and disconnected
-
-    6. target2 change mac and connect to target1'
-  sub module: DHCP
-  summary: dhcp server prefer assign released IP to new client
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0208
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +JAP:DISCONNECTED']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - SSC SSC1 ap -L
-    - [R SSC1 C 192.168.4.2 P <pc_wifi_nic_mac>]
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. succeed
-
-    4. get IP 192.168.4.2
-
-    5. can only find target2 with IP 192.168.4.2'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. config softap to a random ssid
-
-    2. PC NIC connect to target1 softap
-
-    3. disable DHCP server, do config and enable
-
-    4. target2 connect to target1 softap
-
-    5. softap list connected station'
-  sub module: DHCP
-  summary: dhcp server reconfig and new client able to get first IP in pool
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0209
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - DELAY 20
-    - ['']
-  - - SSC SSC1 ap -L
-    - [R SSC1 C 192.168.4.2 C 192.168.4.3 P <pc_wifi_nic_mac> P <target2_mac>]
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. succeed
-
-    4. succeed
-
-    5. find target2 and PC'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. config softap to a random ssid
-
-    2. target2 connect to target1 softap
-
-    3. disable DHCP server, do config and enable
-
-    4. PC NIC connect to target1 softap
-
-    5. softap list connected station'
-  sub module: DHCP
-  summary: dhcp server reconfig, old client and new client able to get IP
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0210
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - WIFI <pc_wifi_nic> CONN2 <random_string> <random_string> 192.168.4.2
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - SSC SSC1 ap -L
-    - [R SSC1 C 192.168.4.2 C 192.168.4.3 P <pc_wifi_nic_mac> P <target2_mac>]
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. succeed
-
-    4. succeed
-
-    5. find target2 and PC'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. config softap to a random ssid
-
-    2. target2 connect to target1 softap
-
-    3. disable DHCP server, do config and enable
-
-    4. PC NIC connect to target1 softap try to renew IP 192.168.4.2
-
-    5. softap list connected station'
-  sub module: DHCP
-  summary: dhcp server reconfig, old client able to get IP (discover with requested
-    IP)
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0211
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - DELAY 30
-    - ['']
-  - - SSC SSC1 ap -L
-    - [R SSC1 C 192.168.4.2 C 192.168.4.3 P <pc_wifi_nic_mac> P <target2_mac>]
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. succeed
-
-    4. succeed
-
-    5. find target2 and PC'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. config softap to a random ssid
-
-    2. target2 connect to target1 softap
-
-    3. disable DHCP server, do config and enable
-
-    4. PC NIC connect to target1 softap try to renew IP 192.168.4.2
-
-    5. softap list connected station'
-  sub module: DHCP
-  summary: dhcp server reconfig, old client able to renew IP (direct send request)
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0212
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['']
-  - - DELAY 20
-    - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED']
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target\
-    \ 1,FAIL \n4.target1 打开DHCP OK\n5.target2 jap target 1,ok"
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target 1,FAIL \n\
-    4.target1 打开DHCP OK\n5.target2 jap target 1,ok"
-  sub module: DHCP
-  summary: dhcp server function test
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DHCP server function test
-  version: v2 (2016-10-19)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0301
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 dhcp -E -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 ip -S -i 192.168.123.123 -o 1
-    - ['R SSC1 C +IP:OK']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC1 ip -S -i 0.0.0.0 -o 1
-    - [R SSC1 C +IP]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['']
-  - - DELAY 10
-    - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.JAP CONNETED
-
-    4.OK
-
-    5.等待10s,JAP fail'
-  initial condition: STAM1
-  initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a
-    TC with initial condition STAAP1
-  level: Integration
-  module: TCPIP
-  steps: '1.target1 关闭DHCP 1
-
-    2.target1 设置sta ip 192.168.123.123
-
-    4.target1 jap AP
-
-    5.target1 设置sta ip 0.0.0.0
-
-    6.target1 jap AP'
-  sub module: DHCP
-  summary: sta dhcp static ip interaction
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: interaction
-  test point 2: static IP and DHCP interaction test
-  version: v2 (2016-10-19)
-- CI ready: 'Yes'
-  ID: TCPIP_DHCP_0302
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 ip -S -i 192.168.123.123 -o 2
-    - ['R SSC1 C +IP:ERROR']
-  - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.10
-    - ['R SSC1 C +DHCP:LEASE,ERROR']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['P SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 ip -S -i 192.168.4.1 -o 2
-    - ['R SSC1 C +IP:OK']
-  - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.10
-    - ['R SSC1 C +DHCP:LEASE,OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['']
-  - - DELAY 10
-    - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target 1 OK
-
-    2.target1 ERROR
-
-    3.target1 ERROR
-
-    4.target2 jap target1 OK
-
-    5.target1 OK
-
-    6.target1 OK
-
-    7.target1 OK
-
-    8.target2 jap target1 OK'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n3.target1 设置地址池\n\
-    4.target1下设置ssid 和pwd 加密方式\n5.target2 连接target1 \n6.target1 关闭DHCP 2\n7.target1\
-    \ 设置softAP ip \n8.target1 设置正确的地址池\n9.target2 连接target1 "
-  sub module: DHCP
-  summary: ap dhcp static ip interaction
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: interaction
-  test point 2: static IP and DHCP interaction test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DNS_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 3/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -H -d iot.espressif.cn
-    - ['R SSC1 C +HOSTIP:OK,115.29.202.58']
-  comment: ''
-  execution time: 0.0
-  expected result: 1.OK
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: 1. get host name "espressif.cn"
-  sub module: DNS
-  summary: get host by name test
-  test environment: SSC_T1_2
-  test environment description (auto): 'Able to access WAN after connect to AP.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DNS function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_DNS_0102
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 3/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -H -d factory.espressif.cn
-    - ['R SSC1 A <ip_addr>:\+HOSTIP:OK,(.+)\r\n']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:\+BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <ip_addr> -p 9001
-    - ['R SSC1 RE \+CONNECT:\d+,OK']
-  - - SSC SSC1 soc -S -s <sock1> -l 10
-    - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL <sock1>+10]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1. get host name "espressif.cn"
-
-    2. connect, send, recv1. get host name "espressif.cn"
-
-    2. connect, send, recv'
-  sub module: DNS
-  summary: TCP connect to iot.espressif.com
-  test environment: SSC_T1_2
-  test environment description (auto): 'Able to access WAN after connect to AP.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DNS function test
-  version: v2 (2016-10-19)
-- CI ready: 'Yes'
-  ID: TCPIP_DNS_0103
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 3/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -H -d factory.espressif.cn
-    - ['R SSC1 A <ip_addr>:\+HOSTIP:OK,(.+)\r\n']
-  - - SSC SSC1 soc -B -t UDP
-    - ['R SSC1 A <sock1>:\+BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <ip_addr> -p 9003 -l 10
-    - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL <sock1>+10]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1. get host name "espressif.cn"
-
-    2. sendto, recvfrom1. get host name "espressif.cn"
-
-    2. sendto, recvfrom'
-  sub module: DNS
-  summary: UDP send to iot.expressif.com
-  test environment: SSC_T1_2
-  test environment description (auto): 'Able to access WAN after connect to AP.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: DNS function test
-  version: v2 (2016-10-19)
-- CI ready: 'Yes'
-  ID: TCPIP_ICMP_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ping -i <pc_ip>
-    - ['R SSC1 C +PING:OK']
-  - - SSC SSC1 ping -i <pc_ip> -c 2
-    - ['R SSC1 C +PING:OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.ok
-
-    2.ok'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.ping -i <pc_ip>
-
-    2.ping -i <pc_ip> -c 2'
-  sub module: ICMP
-  summary: ping function test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: ping function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_IGMP_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  - - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  - - SSC SSC1 igmp -J -h <target_ip> -m 223.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -J -h <target_ip> -m 240.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. success
-
-    2. failed
-
-    3. failed
-
-    4. failed'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1. join group with correct host addr and multicast addr
-
-    2. join group with correct host addr and wrong multicast addr
-
-    3. join group with wrong host addr and correct multicast addr
-
-    4. join group with wrong host addr and wrong multicast addr'
-  sub module: IGMP
-  summary: station IGMP join group address check
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: IGMP API parameter check
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_IGMP_0102
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  - - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.2
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. success
-
-    2. failed
-
-    3. failed
-
-    4. failed
-
-    5. succeed'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1. join group with correct host addr and multicast addr
-
-    2. leave group with correct host addr and wrong multicast addr
-
-    3. leave group with wrong host addr and correct multicast addr
-
-    4. leave group with wrong host addr and wrong multicast addr
-
-    5. leave group with correct host addr and correct multicast addr'
-  sub module: IGMP
-  summary: station IGMP leave group address check
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: IGMP API parameter check
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_IGMP_0103
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  - - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 223.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 240.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. success
-
-    2. failed
-
-    3. failed
-
-    4. failed'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1. join group with correct host addr and multicast addr
-
-    2. join group with correct host addr and wrong multicast addr
-
-    3. join group with wrong host addr and correct multicast addr
-
-    4. join group with wrong host addr and wrong multicast addr'
-  sub module: IGMP
-  summary: softAP IGMP join group address check
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: IGMP API parameter check
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_IGMP_0104
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  - - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.2
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1
-    - ['R SSC1 C +IGMP:ERROR']
-  - - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. success
-
-    2. failed
-
-    3. failed
-
-    4. failed
-
-    5. succeed'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1. join group with correct host addr and multicast addr
-
-    2. leave group with correct host addr and wrong multicast addr
-
-    3. leave group with wrong host addr and correct multicast addr
-
-    4. leave group with wrong host addr and wrong multicast addr
-
-    5. leave group with correct host addr and correct multicast addr'
-  sub module: IGMP
-  summary: softAP IGMP leave group address check
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: IGMP API parameter check
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_IGMP_0201
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:\+BIND:(\d+),OK']
-  - - SOC SOC1 BIND <test_udp_port1>
-    - [R SOC_COM L OK]
-  - - SOC SOC1 SENDTO 1 <test_udp_port1> 224.1.1.1
-    - [R SSC1 SL <sock1>+1]
-  - - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. able to recv packet'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1. join group
-
-    2. create UDP socket using multicast addr
-
-    3. PC send UDP packet to multicast addr'
-  sub module: IGMP
-  summary: station IGMP recv packets
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: IGMP send/recv test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_IGMP_0202
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC2 op -S -o 1
-    - ['R SSC2 C +MODE:OK']
-  - - SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:\+BIND:(\d+),OK']
-  - - SSC SSC2 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC2 A <sock2>:\+BIND:(\d+),OK']
-  - - SSC SSC2 soc -S -s <sock2> -i 224.1.1.1 -p <test_udp_port1> -l 10
-    - [R SSC1 SL <sock1>+1]
-  - - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. succeed
-
-    4. target1 recv multicast packet'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1. target2 set to sta mode and join AP
-
-    2. target1 join group and create UDP socket using multicast addr
-
-    3. target2 create UDP socket
-
-    4. target2 send to multicast addr'
-  sub module: IGMP
-  summary: station send multicast packets
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: IGMP send/recv test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_IGMP_0203
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SOC SOC1 SENDTO 1 <test_udp_port1> 224.1.1.1
-    - [R SSC1 SL <sock1>+1]
-  - - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. able to recv packet'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1. join group
-
-    2. create UDP socket using multicast addr
-
-    3. PC send UDP packet to multicast addr'
-  sub module: IGMP
-  summary: softAP IGMP recv packets
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: IGMP send/recv test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_IGMP_0204
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:\+BIND:(\d+),OK']
-  - - SSC SSC2 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC2 A <sock2>:\+BIND:(\d+),OK']
-  - - SSC SSC2 soc -S -s <sock2> -i 224.1.1.1 -p <test_udp_port1> -l 10
-    - [R SSC1 SL <sock1>+1]
-  - - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
-    - ['R SSC1 C +IGMP:OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. succeed
-
-    4. target1 recv multicast packet'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1. target2 join SoftAP
-
-    2. target1 join group and create UDP socket using multicast addr
-
-    3. target2 create UDP socket
-
-    4. target2 send to multicast addr'
-  sub module: IGMP
-  summary: softAP send multicast packets
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: IGMP send/recv test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_IP_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 dhcp -S -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 ip -S -o 1 -i 192.168.123.123
-    - ['R SSC1 C +IP:ERROR']
-  - - SSC SSC1 dhcp -E -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 ip -S -o 1 -i 192.168.123.123
-    - ['R SSC1 C +IP:OK']
-  - - SSC SSC1 ip -Q -o 1
-    - ['R SSC1 C +STAIP:192.168.123.123']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.ERROR
-
-    3.OK
-
-    4.OK
-
-    5.STAIP:192.168.123.123'
-  initial condition: STAM1
-  initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a
-    TC with initial condition STAAP1
-  level: Integration
-  module: TCPIP
-  steps: '1.target1 打开DHCP 1
-
-    2.target1 设置sta ip 192.168.123.123
-
-    4.target1 关闭DHCP 1
-
-    5.target1 设置sta ip 192.168.123.123
-
-    6.target1 查询 当前sta ip '
-  sub module: IP
-  summary: sta set and query static ip test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: set and query static IP
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_IP_0102
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 dhcp -S -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 ip -S -o 2 -i 192.168.123.123
-    - ['R SSC1 C +IP:ERROR']
-  - - SSC SSC1 dhcp -E -o 2
-    - ['R SSC1 C +DHCP:AP,OK']
-  - - SSC SSC1 ip -S -o 2 -i 192.168.123.123
-    - ['R SSC1 C +IP:OK']
-  - - SSC SSC1 ip -Q -o 2
-    - ['R SSC1 C +APIP:192.168.123.123']
-  - - SSC SSC1 ip -S -o 2 -i <target_ap_ip>
-    - ['R SSC1 C +IP:OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.ERROR
-
-    3.OK
-
-    4.OK
-
-    5.APIP:192.168.123.123
-
-    6.OK'
-  initial condition: APM1
-  initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial
-    condition APSTA1
-  level: Integration
-  module: TCPIP
-  steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n4.target1 关闭DHCP\
-    \ 2\n5.target1 设置softAP ip 192.168.123.123\n6.target1 查询 当前sta ip \n7.target1\
-    \ 设置softAP ip 为target_ap_ip"
-  sub module: IP
-  summary: ap set and query static ip test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: set and query static IP
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [SOCR SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT]
-  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock2> -i 123.456.678.789 -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port2>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.ERROR
-
-    6.ERROR'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0
-
-    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1
-
-    4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0
-
-    5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1
-
-    6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。'
-  sub module: TCP
-  summary: STA mode, connect test. use different ip, port
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0102
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t TCP -p <random_port>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock1>
-    - ['R SSC1 RE LISTEN:\d+,OK']
-  - - SOC SOC1 CONNECT <random_port> <target_ip>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK]
-  - - SOC SOC1 CONNECT <test_tcp_port2> <target_ip>
-    - [P SOC_COM C ERROR, P SSC1 NC ACCEPT]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.PC TCP client accept
-
-    4.error'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.target1上创建TCP socket,bind到本地端口<random_port>
-
-    2.target1上使用步骤1创建的socket,创建TCP 监听
-
-    3.PC TCP 连接到target1  <random_port>,<target_ip>
-
-    4.PC tcp 连接到不存在的port ,<target_ip>'
-  sub module: TCP
-  summary: STA mode, server listen test. use different kinds of port
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0103
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SOC SOC2 SEND 5
-    - [R SSC1 SL <sock1>+5]
-  - - SSC SSC1 soc -S -s <sock1> -l 5
-    - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 5]
-  - - SOC SOC2 SEND 146000
-    - [R SSC1 SL <sock1>+146000]
-  - - SSC SSC1 soc -S -s <sock1> -l 1460 -n 100
-    - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 146000]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK,pc上回accept
-
-    4.OK
-
-    5.target收到5 byte
-
-    6.PC收到5 byte
-
-    7.target收到 146000 byte
-
-    8.OK,PC 回SOC_RECV=SOC2,RECV_LEN=字节数'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1. PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket
-
-    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1
-
-    4.PC与target1 创建好TCP 连接,有ACCEPT
-
-    5.PC send 5 bytes to 8266
-
-    6.8266 send 5 bytes to PC
-
-    7. PC send 100 * 1460 data to 8266,
-
-    8.8266 send 100 * 1460 to PC. '
-  sub module: TCP
-  summary: STA mode, send/recv basic test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0104
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock1> -h B
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock2> -h W
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock3>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock3> -h R
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK,pc tcp server accept OK
-
-    4.OK
-
-    5.OK
-
-    6.OK,pc tcp server accept OK
-
-    7.OK
-
-    8.OK
-
-    9.OK,pc tcp server accept OK
-
-    10.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1. PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket
-
-    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    4.target1 shutdown socket1 B
-
-    5.target1上创建TCP socket
-
-    6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    7.target1 shutdown socket2 W
-
-    8.target1上创建TCP socket
-
-    9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    10.target1 shutdown socket3 R'
-  sub module: TCP
-  summary: STA mode, shutdown basic test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0105
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP -p <random_port>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock1>
-    - ['R SSC1 RE LISTEN:\d+,OK']
-  - - SOC SOC2 CONNECT <random_port> <target_ip>
-    - ['R SSC1 A <sock2>:ACCEPT:(\d+),\d+,.+,\d+']
-  - - SSC SSC1 soc -T -s <sock2>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock1>
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK
-
-    6.OK
-
-    7.target1关闭socket1
-
-    8.target1关闭socket2
-
-    9.OK
-
-    10.OK,pc tcp server accept成功
-
-    11.target1关闭socket1
-
-    12.OK
-
-    13.OK,pc tcp server accept成功
-
-    14.OK
-
-    15.target1关闭socket1'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\
-    4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT<random_port>,<target_ip>\
-    \ ,tcp 连接创建成功,创建socket2             \n7.target1关闭socket1\n8.target1关闭socket2\n\
-    9.target1上创建TCP socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n\
-    11.target1关闭socket1\n12.target1上创建TCP socket1\n13.target1上使用步骤13创建的socket1,去连接\
-    \ PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown socket1\n15.target1关闭socket1"
-  sub module: TCP
-  summary: STA mode, close for different types of TCP sockets test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0106
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock3>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock4>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock4> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock5>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock5> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK,pc tcp server accept成功
-
-    4 OK
-
-    5.OK,pc tcp server accept成功
-
-    6.OK
-
-    7.OK,pc tcp server accept成功
-
-    8 OK
-
-    9.OK,pc tcp server accept成功
-
-    10.OK
-
-    11.OK,pc tcp server accept成功'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket1
-
-    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    4.target1上创建TCP socket2
-
-    5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    6.target1上创建TCP socket3
-
-    7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    8.target1上创建TCP socket4
-
-    9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    10.target1上创建TCP socket5
-
-    11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT'
-  sub module: TCP
-  summary: STA mode, create max TCP sockets test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0107
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t TCP -p <random_port>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock1>
-    - ['R SSC1 RE LISTEN:\d+,OK']
-  - - SOC SOC2 CONNECT <random_port> <target_ip>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+']
-  - - SOC SOC3 CONNECT <random_port> <target_ip>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+']
-  - - SOC SOC4 CONNECT <random_port> <target_ip>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+']
-  - - SOC SOC5 CONNECT <random_port> <target_ip>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+']
-  - - SOC SOC6 CONNECT <random_port> <target_ip>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.+BIND:0,OK,0.0.0.0
-
-    2.OK
-
-    3.OK,pc tcp server accept成功
-
-    4.OK,pc tcp server accept成功
-
-    5.OK,pc tcp server accept成功
-
-    6.OK,pc tcp server accept成功
-
-    7.OK,pc tcp server accept成功'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT<random_port>,<target_ip>\
-    \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket3\
-    \ \n5.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT<random_port>,<target_ip>\
-    \ ,tcp 连接创建成功,创建socket5  \n7.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket6\
-    \    "
-  sub module: TCP
-  summary: STA mode, accept max TCP client by server test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0110
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
-    - [SOCR SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT]
-  - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock2> -i 123.456.678.789 -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port2>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.ERROR
-
-    6.ERROR'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0
-
-    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1
-
-    4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0
-
-    5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1
-
-    6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。'
-  sub module: TCP
-  summary: AP mode, connect test. use different ip, port
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0111
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t TCP -p <random_port>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock1>
-    - ['R SSC1 RE LISTEN:\d+,OK']
-  - - SOC SOC1 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK]
-  - - SOC SOC1 CONNECT <test_tcp_port2> <target_ap_ip> 0 <pc_ip_wifi>
-    - [P SOC_COM C ERROR, P SSC1 NC ACCEPT]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.PC TCP client accept
-
-    4.error'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.target1上创建TCP socket,bind到本地端口<random_port>
-
-    2.target1上使用步骤1创建的socket,创建TCP 监听
-
-    3.PC TCP 连接到target1  <random_port>,<target_ip>
-
-    4.PC tcp 连接到不存在的port ,<target_ip>'
-  sub module: TCP
-  summary: AP mode, server listen test. use different kinds of port
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0112
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SOC SOC2 SEND 5
-    - [R SSC1 SL <sock1>+5]
-  - - SSC SSC1 soc -S -s <sock1> -l 5
-    - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 5]
-  - - SOC SOC2 SEND 146000
-    - [R SSC1 SL <sock1>+146000]
-  - - SSC SSC1 soc -S -s <sock1> -l 1460 -n 100
-    - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 146000]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK,pc tcp server accept成功
-
-    4.OK
-
-    5.target收到5byte数据
-
-    6.PC收到5byte数据
-
-    7.target收到146000 byte数据
-
-    8.OK,PC 收到146000 byte数据'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1. PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket
-
-    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1
-
-    4.PC与target1 创建好TCP 连接,有ACCEPT
-
-    5.PC send 5 bytes to 8266
-
-    6.8266 send 5 bytes to PC
-
-    7. PC send 100 * 1460 data to 8266,
-
-    8.8266 send 100 * 1460 to PC. '
-  sub module: TCP
-  summary: AP mode, send/recv basic test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0113
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock1> -h B
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock2> -h W
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock3>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock3> -h R
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK,pc tcp server accept成功
-
-    4.OK
-
-    5.OK
-
-    6.OK,pc tcp server accept成功
-
-    7.OK
-
-    8.OK
-
-    9.OK,pc tcp server accept成功
-
-    10.OK'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1. PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket
-
-    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    4.target1 shutdown socket1 B
-
-    5.target1上创建TCP socket
-
-    6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    7.target1 shutdown socket2 W
-
-    8.target1上创建TCP socket
-
-    9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    10.target1 shutdown socket3 R'
-  sub module: TCP
-  summary: AP mode, shutdown basic test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0114
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP -p <random_port>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock1>
-    - ['R SSC1 RE LISTEN:\d+,OK']
-  - - SOC SOC2 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
-    - ['R SSC1 A <sock2>:ACCEPT:(\d+),\d+,.+,\d+']
-  - - SSC SSC1 soc -T -s <sock2>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock1>
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK
-
-    6.OK,target1上accept 成功
-
-    7.target1关闭socket1
-
-    8.target1关闭socket2
-
-    9.OK
-
-    10.OK,pc tcp server accept成功
-
-    11.target1关闭socket1
-
-    12.OK
-
-    13.OK,pc tcp server accept成功
-
-    14.OK
-
-    15.target1关闭socket1'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\
-    4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT<random_port>,<target_ip>\
-    \ ,tcp 连接创建成功,创建socket2             \n7.target1关闭socket1\n8.target1关闭socket2\n\
-    9.target1上创建TCP socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n\
-    11.target1关闭socket1\n12.target1上创建TCP socket1\n13.target1上使用步骤13创建的socket1,去连接\
-    \ PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown socket1\n15.target1关闭socket1"
-  sub module: TCP
-  summary: AP mode, close for different types of TCP sockets test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0115
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock3>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock4>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock4> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock5>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock5> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK,pc tcp server accept成功
-
-    4 OK
-
-    5.OK,pc tcp server accept成功
-
-    6.OK
-
-    7.OK,pc tcp server accept成功
-
-    8 OK
-
-    9.OK,pc tcp server accept成功
-
-    10.OK
-
-    11.OK,pc tcp server accept成功'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket1
-
-    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    4.target1上创建TCP socket2
-
-    5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    6.target1上创建TCP socket3
-
-    7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    8.target1上创建TCP socket4
-
-    9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT
-
-    10.target1上创建TCP socket5
-
-    11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT'
-  sub module: TCP
-  summary: AP mode, create max TCP sockets test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0116
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t TCP -p <random_port>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock1>
-    - ['R SSC1 RE LISTEN:\d+,OK']
-  - - SOC SOC2 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+']
-  - - SOC SOC3 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+']
-  - - SOC SOC4 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+']
-  - - SOC SOC5 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+']
-  - - SOC SOC6 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
-    - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.+BIND:0,OK,0.0.0.0
-
-    2.OK
-
-    3.OK,pc tcp server accept成功
-
-    4.OK,pc tcp server accept成功
-
-    5.OK,pc tcp server accept成功
-
-    6.OK,pc tcp server accept成功
-
-    7.OK,pc tcp server accept成功'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT<random_port>,<target_ip>\
-    \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket3\
-    \ \n5.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT<random_port>,<target_ip>\
-    \ ,tcp 连接创建成功,创建socket5  \n7.PC CONNECT<random_port>,<target_ip> ,tcp 连接创建成功,创建socket6\
-    \    "
-  sub module: TCP
-  summary: AP mode, accept max TCP client by server test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0201
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [SOCR SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock2>
-    - ['R SSC1 RE LISTEN:\d+,OK']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock3>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock3> -h B
-    - ['P SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.ok
-
-    2.OK
-
-    3.ERROR
-
-    4.OK
-
-    5.OK
-
-    6.ERROR
-
-    7.OK
-
-    8.OK
-
-    9.OK
-
-    10.OK
-
-    11.OK
-
-    12.ERROR'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0,<test_udp_port1>
-
-    3.target1上使用步骤2创建的socket,去连接 PC的ip,<test_udp_port1>
-
-    4.target1上创建TCP socket
-
-    5.target1上使用步骤4创建的socket,创建TCP 监听
-
-    6.target1上使用步骤4创建的socket,去连接 PC的ip,<test_tcp_port1>
-
-    7.target1上创建TCP socket
-
-    8.target1上使用步骤7创建的socket,去连接 PC的ip,<test_tcp_port1>
-
-    9.target1上关闭步骤7创建的socket
-
-    10.target1上使用步骤7创建的socket,去连接 PC的ip,<test_tcp_port1>
-
-    11.target1上关闭所有创建的socket
-
-    12.target1上使用步骤2创建的socket,去连接 PC的ip,<test_tcp_port1>'
-  sub module: TCP
-  summary: STA mode, connect test. use socket in state that can't connect
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) in different state
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0202
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock1>
-    - ['R SSC1 RE LISTEN:\d+,ERROR']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -L -s <sock2>
-    - ['R SSC1 RE LISTEN:\d+,ERROR']
-  - - SSC SSC1 soc -D -s <sock2>
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -L -s <sock2>
-    - ['R SSC1 RE LISTEN:\d+,ERROR']
-  - - SSC SSC1 soc -L -s 1000
-    - ['R SSC1 RE LISTEN:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.ERROR
-
-    4.OK
-
-    5.OK
-
-    6.ERROR
-
-    7.OK
-
-    8.ERROR
-
-    9.ERROR'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0,<test_udp_port1>
-
-    3.target1上使用步骤2创建的socket,去建立TCP 监听
-
-    4.target1上创建TCP socket
-
-    5.target1上使用步骤4创建的socket,去连接 PC的ip,<test_tcp_port1>
-
-    6.target1上使用步骤4创建的socket,创建TCP 监听
-
-    7.target1上shutdown 步骤4的socket
-
-    8.target1上使用步骤4创建的socket,创建TCP 监听
-
-    9.target1上使用不存在socket,创建TCP 监听'
-  sub module: TCP
-  summary: STA mode, server listen test. use socket in state that can't listen
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) in different state
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0203
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1>
-    - ['R SSC1 RE SEND:\d+,ERROR']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock2>
-    - ['R SSC1 RE SEND:\d+,ERROR']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock2>
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -S -s <sock2>
-    - ['R SSC1 RE SEND:\d+,ERROR']
-  - - SSC SSC1 soc -S -s 1000
-    - ['R SSC1 RE SEND:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.ERROR
-
-    4.OK
-
-    5.ERROR
-
-    6.OK
-
-    7.OK
-
-    8.ERROR
-
-    9.ERROR'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建UDP传输socket1,<test_udp_port1>
-
-    3.target1上使用步骤2创建的socket1,去发送数据
-
-    4.target1上创建TCP socket2
-
-    5.target1上使用步骤4创建的socket2,去发送数据
-
-    6.target1上使用步骤4创建的socket2,创建TCP连接,连接成功
-
-    7.target1上shutdown 步骤4的socket2
-
-    8.target1往socket2发送错误命令发送数据
-
-    9.target1上不指定socket往上发送数据'
-  sub module: TCP
-  summary: send test. use socket in state that can't send
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) in different state
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0204
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP -w 0
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SOC SOC2 SEND 146000
-    - [P SOC_COM R *]
-  - - SSC SSC1 soc -W -s <sock1> -o 1
-    - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL <sock1>+2920]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK,pc server accept OK
-
-    4.OK
-
-    5.OK
-
-    6.OK
-
-    7.target收到146000 byte
-
-    '
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1. PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket
-
-    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1
-
-    4.PC与target1 创建好TCP 连接,有ACCEPT
-
-    5.target上不进行recv
-
-    6.PC send 100 * 1460 data to target,
-
-    7.在target上开始recv'
-  sub module: TCP
-  summary: STA mode, recv buffer test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) in different state
-  version: v2 (2016-10-19)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0206
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP -i <target_ip>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP -i <target_ip>
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock2>
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP -p <random_port>
-    - ['R SSC1 A <sock3>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock3>
-    - ['R SSC1 RE LISTEN:\d+,OK']
-  - - SOC SOC2 CONNECT <random_port> <target_ip>
-    - ['R SSC1 A <sock4>:ACCEPT:(\d+),\d+,.+,\d+']
-  - - SSC SSC1 soc -I
-    - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(<sock1>,<target_ip>,<pc_ip>,<test_tcp_port1>)',
-      'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%(<sock2>)', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d"%%(<sock3>,<random_port>)',
-      'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(<sock4>,<target_ip>,<random_port>,<pc_ip>)']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK,pc tcp server accept成功
-
-    4.OK
-
-    5.OK
-
-    6.OK
-
-    7.OK
-
-    8.OK
-
-    9.PC OK, target1 +ACCEPT:3,2,<pc_ip>,port
-
-    10.+SOCINFO:<sock1>,<target_ip>,<pc_ip>,<test_tcp_port1>
-
-    +SOCINFO:<sock2>,<target_ip>,<pc_ip>,<test_tcp_port1>
-
-    +SOCINFO:<sock3>,<random_port>
-
-    +SOCINFO:<sock4>,<target_ip>,<random_port>,<pc_ip>
-
-    +SOCINF0ALL'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\
-    \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\
-    \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\
-    \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT<random_port>,<target_ip>\
-    \ ,tcp 连接创建成功,创建socket4  \n10.target1 查询the socket information"
-  sub module: TCP
-  summary: STA mode, get active socket info test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) in different state
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0207
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
-    - [SOCR SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock2>
-    - ['R SSC1 RE LISTEN:\d+,OK']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock3>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock3> -h B
-    - ['P SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -C -s <sock3> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  - - SSC SSC1 soc -T
-    - [R SSC1 C +CLOSEALL]
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['P SSC1 RE CONNECT:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.ok
-
-    2 OK
-
-    3.ERROR
-
-    4.OK
-
-    5.OK
-
-    6.ERROR
-
-    7.OK
-
-    8.OK
-
-    9.OK
-
-    10.OK
-
-    11.OK
-
-    12.ERROR'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0,<test_udp_port1>
-
-    3.target1上使用步骤2创建的socket,去连接 PC的ip,<test_udp_port1>
-
-    4.target1上创建TCP socket
-
-    5.target1上使用步骤4创建的socket,创建TCP 监听
-
-    6.target1上使用步骤4创建的socket,去连接 PC的ip,<test_tcp_port1>
-
-    7.target1上创建TCP socket
-
-    8.target1上使用步骤7创建的socket,去连接 PC的ip,<test_tcp_port1>
-
-    9.target1上关闭步骤7创建的socket
-
-    10.target1上使用步骤7创建的socket,去连接 PC的ip,<test_tcp_port1>
-
-    11.target1上关闭所有创建的socket
-
-    12.target1上使用步骤2创建的socket,去连接 PC的ip,<test_tcp_port1>'
-  sub module: TCP
-  summary: AP mode, connect test. use socket in state that can't connect
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) in different state
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0208
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock1>
-    - ['R SSC1 RE LISTEN:\d+,ERROR']
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -L -s <sock2>
-    - ['R SSC1 RE LISTEN:\d+,ERROR']
-  - - SSC SSC1 soc -D -s <sock2>
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -L -s <sock2>
-    - ['R SSC1 RE LISTEN:\d+,ERROR']
-  - - SSC SSC1 soc -L -s 1000
-    - ['R SSC1 RE LISTEN:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.ERROR
-
-    4 OK
-
-    5.OK
-
-    6.ERROR
-
-    7.OK
-
-    8.ERROR
-
-    9.ERROR'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0,<test_udp_port1>
-
-    3.target1上使用步骤2创建的socket,去建立TCP 监听
-
-    4.target1上创建TCP socket
-
-    5.target1上使用步骤4创建的socket,去连接 PC的ip,<test_tcp_port1>
-
-    6.target1上使用步骤4创建的socket,创建TCP 监听
-
-    7.target1上shutdown 步骤4的socket
-
-    8.target1上使用步骤4创建的socket,创建TCP 监听
-
-    9.target1上使用不存在socket,创建TCP 监听'
-  sub module: TCP
-  summary: AP mode, server listen test. use socket in state that can't listen
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) in different state
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0210
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP -w 0
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SOC SOC2 SEND 146000
-    - [P SOC_COM R *]
-  - - SSC SSC1 soc -W -s <sock1> -o 1
-    - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL <sock1>+2920]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK,pc tcp server accept成功
-
-    4.OK
-
-    6.OK
-
-    7.收到 146000 数据
-
-    '
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1. PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket
-
-    3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1
-
-    4.PC与target1 创建好TCP 连接,有ACCEPT
-
-    5.target停止调用recv
-
-    6.PC send 100 * 1460 data to 8266,
-
-    7.target重新调用recv'
-  sub module: TCP
-  summary: AP mode, recv buffer test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) in different state
-  version: v2 (2016-10-19)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0212
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP -i <target_ap_ip>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP -i <target_ap_ip>
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock2> -i <pc_ip_wifi> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SSC SSC1 soc -D -s <sock2>
-    - ['R SSC1 RE SHUTDOWN:\d+,OK']
-  - - SSC SSC1 soc -B -t TCP -p <random_port>
-    - ['R SSC1 A <sock3>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -L -s <sock3>
-    - ['R SSC1 RE LISTEN:\d+,OK']
-  - - SOC SOC2 CONNECT <random_port> <target_ap_ip> 0 <pc_ip_wifi>
-    - ['R SSC1 A <sock4>:ACCEPT:(\d+),\d+,.+,\d+']
-  - - SSC SSC1 soc -I
-    - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(<sock1>,<target_ap_ip>,<pc_ip_wifi>,<test_tcp_port1>)',
-      'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%(<sock2>)', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d"%%(<sock3>,<random_port>)',
-      'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(<sock4>,<target_ap_ip>,<random_port>,<pc_ip_wifi>)']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK,pc tcp server accept成功
-
-    4.OK
-
-    5.OK
-
-    6.OK
-
-    7.OK
-
-    8.OK
-
-    9.PC OK, target1 +ACCEPT:3,2,<pc_ip>,port
-
-    10.+SOCINFO:<sock1>,<target_ip>,<pc_ip>,<test_tcp_port1>
-
-    +SOCINFO:<sock2>,<target_ip>,<pc_ip>,<test_tcp_port1>
-
-    +SOCINFO:<sock3>,<random_port>
-
-    +SOCINFO:<sock4>,<target_ip>,<random_port>,<pc_ip>
-
-    +SOCINF0ALL'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\
-    \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\
-    \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\
-    \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT<random_port>,<target_ip>\
-    \ ,tcp 连接创建成功,创建socket4  \n10.target1 查询the socket information"
-  sub module: TCP
-  summary: AP mode, get active socket info test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use TCP SAP (socket/espconn API) in different state
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0401
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SSC SSC1 sta -D
-    - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0']
-  - - SSC SSC1 soc -S -s <sock1> -l 5
-    - ['P SSC1 RE SEND:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.ERROR'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket1
-
-    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1
-
-    4.PC与target1创建好TCP 连接,有ACCEPT
-
-    5.断开与AP 连接
-
-    6.8266往PC上发送5字节数据'
-  sub module: TCP
-  summary: do TCP send after WIFI disconnected
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: TCP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0402
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SSC SSC1 sta -D
-    - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket1
-
-    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1
-
-    4.PC与target1创建好TCP 连接,有ACCEPT
-
-    5.断开与AP 连接
-
-    6.关闭建立的socket1连接'
-  sub module: TCP
-  summary: "close TCP socket after WIFI \ndisconnected"
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: TCP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0403
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SSC SSC1 op -S -o 2
-    - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0']
-  - - SSC SSC1 soc -S -s <sock1> -l 5
-    - ['P SSC1 RE SEND:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.ERROR'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\
-    \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\
-    \ \n6.8266往PC上发送5字节数据"
-  sub module: TCP
-  summary: do TCP send after mode changed
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: TCP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0404
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SSC SSC1 op -S -o 2
-    - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\
-    \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\
-    \ \n6.关闭建立的socket1连接"
-  sub module: TCP
-  summary: close TCP socket after mode changed
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: TCP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0405
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - NIC <pc_nic> DISABLED
-    - [R PC_COM C OK]
-  - - SSC SSC1 soc -S -s <sock1> -l 1
-    - ['']
-  - - DELAY 5400
-    - ['P SSC1 RE CLOSED:\d+,0']
-  comment: ''
-  execution time: 1.5
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.TCP连接断开'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket1
-
-    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1
-
-    4.PC与target1创建好TCP 连接,有ACCEPT
-
-    5.PC 网卡 disable
-
-    6.target1上使用socket1发送数据,等待 90 分钟'
-  sub module: TCP
-  summary: do TCP send after PC NIC disabled
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: TCP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0406
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - NIC <pc_nic> DISABLED
-    - [R PC_COM C OK]
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\
-    \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.PC上网卡禁止掉 \n6.关闭建立的socket1连接"
-  sub module: TCP
-  summary: close TCP socket after PC NIC disabled
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: TCP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0407
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SSC SSC1 dhcp -E -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 ip -S -o 1 -i 192.168.111.210
-    - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0']
-  - - SSC SSC1 ip -Q -o 1
-    - ['R SSC1 C +STAIP:192.168.111.210']
-  - - SSC SSC1 soc -S -s <sock1> -l 5
-    - ['P SSC1 RE SEND:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.OK
-
-    7.OK
-
-    8.ERROR'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\
-    \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\
-    \ ip \n7.查询sta ip 地址是否生效\n8.8266往PC上发送5字节数据"
-  sub module: TCP
-  summary: do TCP send after IP changed
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: TCP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0408
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SSC SSC1 dhcp -E -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 ip -S -o 1 -i 192.168.111.210
-    - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0']
-  - - SSC SSC1 ip -Q -o 1
-    - ['R SSC1 C +STAIP:192.168.111.210']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.OK
-
-    7.OK
-
-    8.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\
-    \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\
-    \ ip \n7.查询sta ip 地址是否生效\n8.关闭建立的socket1连接"
-  sub module: TCP
-  summary: close TCP socket after IP changed
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: TCP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0411
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock2> -l 5
-    - ['P SSC1 RE SEND:\d+,ERROR']
-  - - SSC SSC1 soc -S -s <sock1> -l 5
-    - ['P SSC1 RE SEND:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.ERROR
-
-    7.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket1
-
-    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1
-
-    4.PC与target1创建好TCP 连接,有ACCEPT
-
-    5.target1上创建TCP socket2
-
-    6.8266往PC socket2上发送5字节数据
-
-    7.8266往PC socket1上发送5字节数据'
-  sub module: TCP
-  summary: do TCP send after socket changed
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: TCP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_0412
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 LISTEN <test_tcp_port1>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -C -s <sock1> -i <pc_ip> -p <test_tcp_port1>
-    - ['R SSC1 RE CONNECT:\d+,OK']
-  - - SOC SOC1 ACCEPT SOC2
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t TCP
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  - - SSC SSC1 soc -T -s <sock2>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.OK
-
-    7.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上建立TCP 监听 test_tcp_port1
-
-    2.target1上创建TCP socket1
-
-    3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1
-
-    4.PC与target1创建好TCP 连接,有ACCEPT
-
-    5.target1上创建TCP socket2
-
-    6.关闭socket1 连接
-
-    7.关闭socket2连接'
-  sub module: TCP
-  summary: close TCP send after socket changed
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: TCP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_5001
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  auto test: 'Yes'
-  category: Stress
-  cmd set:
-  - TCPStress/TCPConnection
-  - - max_connection = 5
-    - [dummy]
-  - - execute_time = 300
-    - ['']
-  - - connect_method = ["C_01", "C_02", "C_05", "C_07"]
-    - ['']
-  - - disconnect_method = ["D_01", "D_03", "D_05", "D_06"]
-    - ['']
-  - - pc_ip = "pc_ip"
-    - ['']
-  - - target_ip = "target_ip"
-    - ['']
-  comment: ''
-  execution time: 5.0
-  expected result: 1. succeed
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on
-  level: Integration
-  module: TCPIP
-  steps: '1. random choose connect method to do connect, random choose a method to
-    close
-
-    Loop executing step 1'
-  sub module: TCP
-  summary: test possible TCP connect/disconnect method
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: function + stress
-  test point 2: TCP connect and disconnect test
-  version: v2 (2016-11-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_5101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  auto test: 'Yes'
-  category: Stable
-  cmd set:
-  - TCPStress/TCPAPNSTA
-  - - send_len = 1460
-    - [dummy]
-  - - test_time = 720
-    - ['']
-  - - server_port = "<test_tcp_port1>"
-    - ['']
-  - - server_echo = True
-    - ['']
-  - - sta_number = 4
-    - ['']
-  - - send_delay = 50
-    - ['']
-  - - ap_ip = "<target_ap_ip>"
-    - ['']
-  comment: ''
-  execution time: 12.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. succeed
-
-    4. all TCP connection not disconnected'
-  initial condition: None
-  initial condition description (auto): none
-  level: Integration
-  module: TCPIP
-  steps: '1. all sta connect to softap
-
-    2. create tcp server on softap
-
-    3. all sta connect to softap tcp server
-
-    4. do bi-direction send on all tcp connections'
-  sub module: TCP
-  summary: 1 AP 4 STA TCP stable test
-  test environment: SSC_T5_1
-  test environment description (auto): 5 SSC target connect with PC by UART.
-  test point 1: stable
-  test point 2: TCP stable test
-  version: v2 (2016-11-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_5102
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  auto test: 'Yes'
-  category: Stable
-  cmd set:
-  - TCPStress/TCPRandomSend
-  - - delay_config = [0, 0.01, 0.1, 0.5, 1]
-    - [dummy]
-  - - send_count = 1000
-    - ['']
-  - - test_time = 300
-    - ['']
-  comment: ''
-  execution time: 12.0
-  expected result: '1. succeed
-
-    2. succeed'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on
-  level: Integration
-  module: TCPIP
-  steps: '1. create TCP connection
-
-    2. PC send random length data to target'
-  sub module: TCP
-  summary: send random length segment to target
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: stable
-  test point 2: TCP stable test
-  version: v2 (2016-11-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_5103
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  auto test: 'Yes'
-  category: Stable
-  cmd set:
-  - TCPStress/TCPSoftAPSTASendRecv
-  - - send_len = 1460
-    - [dummy]
-  - - test_time = 720
-    - ['']
-  - - server_port = "<test_tcp_port1>"
-    - ['']
-  - - server_port_2 = "<test_tcp_port2>"
-    - ['']
-  - - server_echo = True
-    - ['']
-  - - sta_number = 3
-    - ['']
-  - - send_delay = 50
-    - ['']
-  - - ap_ip = "<target_ap_ip>"
-    - ['']
-  comment: ''
-  execution time: 12.0
-  expected result: '1. succeed
-
-    2. verify reciveid data on target and PC succeed'
-  initial condition: None
-  initial condition description (auto): none
-  level: Integration
-  module: TCPIP
-  steps: '1. create TCP connection
-
-    2. send specified pattern on both direction'
-  sub module: TCP
-  summary: TCP SoftSTA send/recv stress test
-  test environment: SSC_T5_1
-  test environment description (auto): 5 SSC target connect with PC by UART.
-  test point 1: stable
-  test point 2: TCP stable test
-  version: v2 (2016-11-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_5201
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  auto test: 'Yes'
-  category: Stress
-  cmd set:
-  - TCPStress/TCPSendRecv
-  - - send_len = 1460
-    - [dummy]
-  - - test_time = 300
-    - ['']
-  - - duplex = True
-    - ['']
-  - - conn_num = 5
-    - ['']
-  - - send_delay = 20
-    - ['']
-  comment: ''
-  execution time: 12.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. all TCP connection not disconnected'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA
-  level: Integration
-  module: TCPIP
-  steps: '1. sta connect to softap
-
-    2. create multiple tcp connection
-
-    3. do send/recv on all tcp connections'
-  sub module: TCP
-  summary: TCP send/recv stress test
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: stress
-  test point 2: TCP stress test
-  version: v2 (2016-11-15)
-- CI ready: 'Yes'
-  ID: TCPIP_TCP_5202
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  auto test: 'Yes'
-  category: Stress
-  cmd set:
-  - TCPStress/TCPDataValidation
-  - - test_time = 1440
-    - [dummy]
-  - - tx_enable = True
-    - ['']
-  - - rx_enable = True
-    - ['']
-  - - conn_num = 1
-    - ['']
-  - - send_len = 1024
-    - ['']
-  comment: ''
-  execution time: 24.0
-  expected result: '1. succeed
-
-    2. verify reciveid data on target and PC succeed'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on
-  level: Integration
-  module: TCPIP
-  steps: '1. create TCP connection
-
-    2. send specified pattern on both direction'
-  sub module: TCP
-  summary: TCP send/recv data validation
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: stress
-  test point 2: TCP stress test
-  version: v2 (2016-11-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p <test_udp_port2>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 C BIND:ERROR']
-  - - SSC SSC1 soc -B -t TCP -p <test_udp_port1>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.ERROR
-
-    4.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2
-
-    3.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    4.target1上创建TCP socket3, target_udp_port1'
-  sub module: UDP
-  summary: STA mode, udp bind test. use different ip, port
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0102
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SOC SOC2 BIND <test_udp_port2> <pc_ip2>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 10
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 10]
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip2> -p <test_udp_port2> -l 10
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC2 UL 10]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
-
-    2.PC上SOC2 UDP传输,bing <test_udp_port2> <pc_ip2>
-
-    3.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据
-
-    5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据'
-  sub module: UDP
-  summary: STA mode, sendto test. use different ip, port
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0103
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1]
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1472
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472]
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1473
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM]
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1472 -n 10 -j 20
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK,没有到UDP包
-
-    6.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
-
-    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据
-
-    4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据
-
-    5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据
-
-    6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据'
-  sub module: UDP
-  summary: STA mode, sendto test with different length
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0104
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SOC SOC1 SENDTO 1 <test_udp_port1> <target_ip>
-    - [R SSC1 SL <sock1>+1]
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
-    - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(<sock1>,<pc_ip>,<test_udp_port1>)']
-  - - SOC SOC1 SENDTO 1473 <test_udp_port1> <target_ip>
-    - [P SSC1 NC +RECVFROM, P SOC_COM C OK]
-  - - SOC SOC2 BIND <test_udp_port2> <pc_ip2>
-    - [R SOC_COM L OK]
-  - - SOC SOC2 SENDTO 1472 <test_udp_port1> <target_ip>
-    - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(<sock1>,<pc_ip2>,<test_udp_port2>)']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK,没收到UDP包
-
-    6.OK
-
-    7.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
-
-    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    3.PC往8266上发送1字节数据
-
-    4.PC往8266上发送1472字节数据
-
-    5.PC往8266上发送1473字节数据
-
-    6.PC上SOC2 UDP传输,bing <test_udp_port2> <pc_ip2>
-
-    7.PC往8266上发送1472字节数据'
-  sub module: UDP
-  summary: STA mode, recvfrom basic test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0105
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    2.关闭socket1'
-  sub module: UDP
-  summary: STA mode, close UDP sockets test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0106
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port2>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port3>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port4>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port5>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.ok
-
-    2.ok
-
-    3.ok
-
-    4.ok
-
-    5.ok'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    2.target1上UDP传输,Bind socket2,本地ip target_udp_port2
-
-    3.target1上UDP传输,Bind socket3,本地ip target_udp_port3
-
-    4.target1上UDP传输,Bind socket4,本地ip target_udp_port4
-
-    5.target1上UDP传输,Bind socket5,本地ip target_udp_port5'
-  sub module: UDP
-  summary: STA mode, create max udp socket test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0107
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -I
-    - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(<sock1>,<test_udp_port1>)']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    2.target1上查询创建socket信息'
-  sub module: UDP
-  summary: STA mode, get active socket info test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0108
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p <test_udp_port2>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 C BIND:ERROR']
-  - - SSC SSC1 soc -B -t TCP -p <test_udp_port1>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.ERROR
-
-    4.OK'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2
-
-    3.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    4.target1上创建TCP socket3, target_udp_port1'
-  sub module: UDP
-  summary: AP mode, udp bind test. use different ip, port
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0109
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC2 ip
-    - ['R SSC2 A <ssc2_ip>:STAIP:(.+)\r\n']
-  - - SSC SSC2 soc -B -t UDP -p <test_udp_port2>
-    - ['R SSC2 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock2> -i <pc_ip_wifi> -p <test_udp_port1> -l 5
-    - [R SOC1 UL 5]
-  - - SSC SSC1 soc -S -s <sock2> -i <ssc2_ip> -p <test_udp_port2> -l 5
-    - ['R SSC2 RE "RECVFROM:%%s,5,%%s,%%u"%%(<sock1>,<target_ap_ip>,<test_udp_port1>)']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK'
-  initial condition: T2O_1
-  initial condition description (auto): same as T2_1 but will NOT autogen a TC with
-    initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
-
-    2.PC上SOC2 UDP传输,bing <test_udp_port2> <pc_ip2>
-
-    3.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据
-
-    5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据'
-  sub module: UDP
-  summary: AP mode, sendto test. use different ip, port
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0110
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1]
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1472
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472]
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1473
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM]
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip_wifi> -p <test_udp_port1> -l 1472 -n 10
-      -j 20
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK,没收到UDP包
-
-    6.OK'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
-
-    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据
-
-    4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据
-
-    5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据
-
-    6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据'
-  sub module: UDP
-  summary: AP mode, sendto test with different length
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0111
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC2 ip
-    - ['R SSC2 A <ssc2_ip>:STAIP:(.+)\r\n']
-  - - SSC SSC2 soc -B -t UDP -p <test_udp_port2>
-    - ['R SSC2 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock2>:BIND:(\d+),OK']
-  - - SOC SOC1 SENDTO 5 <test_udp_port1> <target_ap_ip>
-    - ['R SSC1 RE "RECVFROM:%%s,5,%%s,%%u"%%(<sock2>,<pc_ip_wifi>,<test_udp_port1>)']
-  - - SSC SSC2 soc -S -s <sock1> -i <target_ap_ip> -p <test_udp_port1> -l 5
-    - ['R SSC1 RE "RECVFROM:%%s,5,%%s,%%u"%%(<sock2>,<ssc2_ip>,<test_udp_port2>)']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK,没收到UDP包
-
-    6.OK
-
-    7.OK'
-  initial condition: T2O_1
-  initial condition description (auto): same as T2_1 but will NOT autogen a TC with
-    initial condition T2_2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
-
-    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    3.PC往8266上发送1字节数据
-
-    4.PC往8266上发送1472字节数据
-
-    5.PC往8266上发送1473字节数据
-
-    6.PC上SOC2 UDP传输,bing <test_udp_port2> <pc_ip2>
-
-    7.PC往8266上发送1472字节数据'
-  sub module: UDP
-  summary: AP mode, recvfrom basic test
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0112
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    2.关闭socket1'
-  sub module: UDP
-  summary: AP mode, close UDP sockets test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0113
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port2>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port3>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port4>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port5>
-    - ['R SSC1 RE BIND:(\d+),OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.ok
-
-    2.ok
-
-    3.ok
-
-    4.ok
-
-    5.ok'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    2.target1上UDP传输,Bind socket2,本地ip target_udp_port2
-
-    3.target1上UDP传输,Bind socket3,本地ip target_udp_port3
-
-    4.target1上UDP传输,Bind socket4,本地ip target_udp_port4
-
-    5.target1上UDP传输,Bind socket5,本地ip target_udp_port5'
-  sub module: UDP
-  summary: AP mode, create max udp socket test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0114
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -I
-    - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(<sock1>,<test_udp_port1>)']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    2.target1上查询创建socket信息'
-  sub module: UDP
-  summary: AP mode, get active socket info test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: use UDP SAP (socket/espconn API) with different parameter
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0201
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1> -w 0
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
-    - ['']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
-    - ['']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
-    - ['']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
-    - ['']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ip>
-    - ['']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.PC OK
-
-    5.PC OK
-
-    6.PC OK
-
-    7.PC OK
-
-    8.PC OK SOC_CLOSE=SOC1'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
-
-    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    3.target1上关闭工作线程
-
-    4.PC往8266上发送1472字节数据
-
-    5.PC往8266上发送1472字节数据
-
-    6.PC往8266上发送1472字节数据
-
-    7.PC往8266上发送1472字节数据
-
-    8.PC往8266上发送1472字节数据'
-  sub module: UDP
-  summary: STA mode, recv buffer test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: use UDP SAP (socket/espconn API) in different state
-  version: v2 (2016-10-19)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0202
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
-    - ['']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
-    - ['']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
-    - ['']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
-    - ['']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
-    - ['']
-  - - SOC SOC1 SENDTO 1472 <test_udp_port1> <target_ap_ip>
-    - ['']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.PC OK
-
-    5.PC OK
-
-    6.PC OK
-
-    7.PC OK
-
-    8.PC OK SOC_CLOSE=SOC1'
-  initial condition: APM2
-  initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen
-    a TC with initial condition APSTA2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
-
-    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    3.target1上关闭工作线程
-
-    4.PC往8266上发送1472字节数据
-
-    5.PC往8266上发送1472字节数据
-
-    6.PC往8266上发送1472字节数据
-
-    7.PC往8266上发送1472字节数据
-
-    8.PC往8266上发送1472字节数据'
-  sub module: UDP
-  summary: AP mode, recv buffer test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: use UDP SAP (socket/espconn API) in different state
-  version: v2 (2016-10-19)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0301
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -i <target_ip> -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5]
-  - - SSC SSC1 sta -D
-    - ['P SSC1 C +QAP:OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
-    - ['P SSC1 RE SEND:\d+,ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.ERROR'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
-
-    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据
-
-    4.断开与AP 连接
-
-    5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据'
-  sub module: UDP
-  summary: do UDP send after WIFI disconnected
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: UDP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0302
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5]
-  - - SSC SSC1 sta -D
-    - ['P SSC1 C +QAP:OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK
-
-    '
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: '1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>
-
-    2.target1上UDP传输,Bind socket1,本地ip target_udp_port1
-
-    3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据
-
-    4.断开与AP 连接
-
-    5.关闭建立的socket1连接'
-  sub module: UDP
-  summary: "close UDP  socket after WIFI \ndisconnected"
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: UDP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0303
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5]
-  - - SSC SSC1 op -S -o 2
-    - ['P SSC1 C +MODE:OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
-    - ['P SSC1 RE SEND:(\d+),OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.ERROR'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>\n2.target1上UDP传输,Bind socket1,本地ip\
-    \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\
-    4.修改8266的Mode为softAP mode \n5.8266往PC上发送5字节数据"
-  sub module: UDP
-  summary: do UDP  send after mode changed
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: UDP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0304
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5]
-  - - SSC SSC1 op -S -o 2
-    - ['P SSC1 C +MODE:OK']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>\n2.target1上UDP传输,Bind socket1,本地ip\
-    \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\
-    4.修改8266的Mode为softAP mode \n5.关闭建立的socket1连接"
-  sub module: UDP
-  summary: close UDP  socket after mode changed
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: UDP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0305
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5]
-  - - NIC <pc_nic> DISABLED
-    - [R PC_COM C OK]
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK
-
-    4.OK
-
-    5.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>\n2.target1上UDP传输,Bind socket1,本地ip\
-    \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\
-    4.PC上网卡禁止掉 \n5.关闭建立的socket1连接"
-  sub module: UDP
-  summary: close UDP socket after PC NIC disabled
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: UDP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0306
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5]
-  - - SSC SSC1 dhcp -E -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 ip -S -o 1 -i 192.168.111.210
-    - ['P SSC1 C +IP:OK']
-  - - SSC SSC1 ip -Q -o 1
-    - ['R SSC1 C +STAIP:192.168.111.210']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 1
-    - ['P SSC1 RE SEND:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.OK
-
-    7.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>\n2.target1上UDP传输,Bind socket1,本地ip\
-    \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\
-    4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.8266往PC上发送5字节数据"
-  sub module: UDP
-  summary: do UDP send after IP changed
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: UDP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_0307
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: 1/5
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SOC SOC1 BIND <test_udp_port1> <pc_ip>
-    - [R SOC_COM L OK]
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -l 5
-    - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5]
-  - - SSC SSC1 dhcp -E -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 ip -S -o 1 -i 192.168.111.210
-    - ['P SSC1 C +IP:OK']
-  - - SSC SSC1 ip -Q -o 1
-    - ['R SSC1 C +STAIP:192.168.111.210']
-  - - SSC SSC1 soc -T -s <sock1>
-    - ['R SSC1 RE CLOSE:\d+,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.OK
-
-    3.OK; PC TCP server accept 成功
-
-    4.OK
-
-    5.OK
-
-    6.OK
-
-    7.OK'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: TCPIP
-  steps: "1.PC上SOC1 UDP传输,bing <test_udp_port1> <pc_ip>\n2.target1上UDP传输,Bind socket1,本地ip\
-    \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\
-    4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.关闭建立的socket1连接"
-  sub module: UDP
-  summary: close UDP  socket after IP changed
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: UDP handling abnormal event
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: TCPIP_UDP_5001
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  auto test: 'Yes'
-  category: Stress
-  cmd set:
-  - UDPStress/UDPSendRecv
-  - - send_len = 1460
-    - [dummy]
-  - - test_time = 300
-    - ['']
-  - - duplex = True
-    - ['']
-  - - conn_num = 5
-    - ['']
-  - - send_delay = 20
-    - ['']
-  comment: ''
-  execution time: 12.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. succeed'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA
-  level: Integration
-  module: TCPIP
-  steps: '1. sta connect to softap
-
-    2. create multiple udp
-
-    3. do send/recv on all udp'
-  sub module: UDP
-  summary: UDP send/recv stress test
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: stress
-  test point 2: UDP stress test
-  version: v2 (2016-11-15)
-- CI ready: 'Yes'
-  ID: WIFI_ADDR_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 mac -S -o 1 -m 44:55:66:77:88:99
-    - ['R SSC1 C +MAC:STA,OK']
-  - - SSC SSC1 mac -S -o 2 -m 22:33:44:55:66:77
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 mac -Q -o 3
-    - ['R SSC1 C +STAMAC:44:55:66:77:88:99 C +APMAC:22:33:44:55:66:77']
-  - - SSC SSC1 mac -S -o 1 -m <target_mac>
-    - ['R SSC1 C +MAC:STA,OK']
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.ok
-
-    3.ok
-
-    4.ok
-
-    5.ok
-
-    6.ok'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: "1.target1 设置mode 为sta+softAP mode\n2.target1 设置sta mode 下的mac \n3.target1\
-    \ 设置softAP mode 下的mac\n4.target1 查询softAP+sta 下的mac\n5.target1 设置sta mode 下的mac\
-    \ 为target1_mac\n6.target1 设置softAP mode 下的mac 为target1_ap_mac\n"
-  sub module: MAC Address
-  summary: set mac, query mac
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: mac address function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_ADDR_0102
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 mac -S -o 2 -m 44:55:66:77:88:99
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['']
-  - - SSC SSC2 sta -S -b 44:55:66:77:88:99
-    - ['R SSC2 RE \+SCAN:.+,44:55:66:77:88:99,']
-  - - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
-    - ['R SSC1 C +MAC:AP,OK']
-  - - SSC SSC2 mac -Q -o 1
-    - ['R SSC2 A <target2_mac_tmp>:\+STAMAC:(.+)\r\n']
-  - - SSC SSC2 mac -S -o 1 -m 22:33:44:55:66:77
-    - ['R SSC2 C +MAC:STA,OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['P SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 ap -L
-    - ['R SSC1 C +LSTA:22:33:44:55:66:77']
-  - - SSC SSC2 mac -S -o 1 -m <target2_mac>
-    - ['R SSC2 C +MAC:STA,OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.OK
-
-    2.ok
-
-    3.ok
-
-    4.ok
-
-    5.ok
-
-    6.ok
-
-    7.ok
-
-    8.ok
-
-    9.ok'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: "1.target1 设置sta mode下的mac 44:55:66:77:88:99\n2.target1下设置ssid 和pwd 加密方式\n\
-    3.target2 查询mac为44:55:66:77:88:99的ssid\n4.target1 设置sta mode下的mac target_ap_mac\n\
-    5.target2 查询sta mode 下的mac 为target2_mac_tmp\n6.target2 设置sta mode 下的mac 为22:33:44:55:66:77\n\
-    7.target2 jap target1\n8.target1 查询连接到的sta \n9.target2 设置sta mode 下的mac 为 target2_mac\n"
-  sub module: MAC Address
-  summary: set mac and do scan/JAP/SAP
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: mac address function test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -t 0
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 2
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 4
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 1
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -S
-    - ['R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%(<target_ssid>)']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 5
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -S
-    - ['R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%(<target_ssid>)']
-  comment: ''
-  execution time: 0.0
-  expected result: "1.target1 set AP,open, \n2.target 2 jap succeed\n3.target1 set\
-    \ AP,wpa_psk \n4.target 2 jap succeed\n5.target1 set AP, wpa2_psk \n6.target 2\
-    \ jap succeed\n7.target1 set AP,wap_wpa2_psk\n8.target 2 jap succeed\n9.target1\
-    \ set AP,加密方式为t 1\n10.target 2 上查询到target_ssid\n11.target1 set AP,加密方式为t 5\n12.target\
-    \ 2 上查询到target_ssid"
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: "1.target1下设置ssid 和pwd,加密方式 open\n2.target2 jap target1\n3.target1下设置ssid\
-    \ 和pwd,加密方式 wpa_psk \n4.target2 jap target1\n5.target1下设置ssid 和pwd,加密方式 wpa2_psk\
-    \ \n6.target 2 jap target1\n7.target1下设置ssid 和pwd,加密方式 wap_wpa2_psk\n8.target2\
-    \ jap target1\n9.target1下设置ssid 和pwd,加密方式 wep \n10.target2上查询target_ssid\n11.target1下设置ssid\
-    \ 和pwd,加密方式 t 5 错误的加密方式\n12.target2上查询 target_ssid"
-  sub module: WIFI Connect
-  summary: station SAP+JAP test, different encryption
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: SAP/JAP with different config
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0102
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -t 0 -n 1
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - SSC SSC1 ap -S -s <target_ssid> -t 0 -n 13
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - SSC SSC1 ap -S -s <target_ssid> -n 15
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - SSC SSC2 sta -S
-    - ['R SSC2 RE "\+SCAN:%%s,.+,\d+,1"%%(<target_ssid>)']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. target1 set AP,set channel 1
-
-    2.target 2 jap succeed
-
-    3.target1 set AP,set channel 10
-
-    4.target 2 jap succeed
-
-    5.target1 set AP,set channel 15
-
-    6.target 2 上查询到target_ssid'
-  initial condition: T2O_1
-  initial condition description (auto): same as T2_1 but will NOT autogen a TC with
-    initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target1下设置ssid 和pwd 加密方式,set channel 1
-
-    2.target2 jap target 1
-
-    3.target1下设置ssid 和pwd 加密方式,set channel 10
-
-    4.target2 jap target 1
-
-    5.target1下设置ssid 和pwd 加密方式,set channel 15
-
-    6.target 2 上查询target_ssid'
-  sub module: WIFI Connect
-  summary: station SAP+JAP test, different channel
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: SAP/JAP with different config
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0103
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum> -h
-      0
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -S -h 0
-    - [R SSC2 P <target_ap_mac>, R SSC2 C +SCANDONE]
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum> -h
-      1
-    - ['R SSC1 C +SAP:OK']
-  - - DELAY 3
-    - ['']
-  - - SSC SSC2 sta -S -h 0
-    - [R SSC2 C +SCANDONE]
-  - - DELAY 3
-    - ['']
-  - - SSC SSC2 sta -S -h 0
-    - [R SSC2 NP <target_ap_mac> C +SCANDONE]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target1 set AP,set ssid broad cast
-
-    2.target 2上scan target_ap_mac
-
-    3.target1 set AP,set ssid hidden,
-
-    4.target 2上不能scan target_ap_mac'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target1下设置ssid 和pwd 加密方式,set ssid broad cast
-
-    2.target 2上scan target_ap_mac
-
-    3. target1下设置ssid 和pwd 加密方式,set ssid hidden,
-
-    4.target 2上scan target_ap_mac'
-  sub module: WIFI Connect
-  summary: station SAP+JAP test, ssid hidden
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: SAP/JAP with different config
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0104
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum> -m
-      1
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> DISCONN
-    - ['R PC_COM C +WIFIDISCONN:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM C +WIFICONN:ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. target1 set AP,set max allowed sta as 1
-
-    2. use PC disconnect,
-
-    3.target 2 jap succeed
-
-    4.PC WIFI can not CONN'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target1下设置ssid 和pwd 加密方式,set max allowed sta as 1
-
-    2.use PC disconnect target1
-
-    3.target 2 jap target1
-
-    4.PC WIFI CONNECT target1'
-  sub module: WIFI Connect
-  summary: station SAP test, max allowed sta
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: SAP/JAP with different config
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0201
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  - - SSC SSC1 sta -Q
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:OK']
-  - - SSC SSC1 sta -Q
-    - ['R SSC1 C +JAP:DISCONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target1 jion AP 成功
-
-    2.查询JAP的状态
-
-    3.target1 断开AP
-
-    4.查询target1 JAP 是DISCONN'
-  initial condition: STAM1
-  initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a
-    TC with initial condition STAAP1
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target1 jion AP 成功
-
-    2.查询JAP的状态
-
-    3.target1 断开AP
-
-    4.查询target1 JAP 是DISCONN'
-  sub module: WIFI Connect
-  summary: JAP query test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: query JAP status
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0301
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum> -h
-      0 -m 8
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC1 ap -Q
-    - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,3,0,8,\d+"%%(<target_ssid>,<target_password>)']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. target1 set AP
-
-    2.target 1上查询到跟设置AP时一致
-
-    '
-  initial condition: APM1
-  initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial
-    condition APSTA1
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target1 set AP
-
-    2.target 1上查询到跟设置AP时一致
-
-    '
-  sub module: WIFI Connect
-  summary: AP config query test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: query AP config
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0401
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 sta -R -a 0
-    - ['R SSC1 C +AUTORECONN:OK']
-  - - SSC SSC1 sta -R -a 2
-    - ['R SSC1 C +AUTORECONN:0']
-  - - SSC SSC1 reboot
-    - ['']
-  - - DELAY 15
-    - ['']
-  - - SSC SSC1 sta -Q
-    - ['R SSC1 C JAP:DISCONNECTED']
-  - - SSC SSC1 sta -R -a 1
-    - ['R SSC1 C +AUTORECONN:OK']
-  - - SSC SSC1 sta -R -a 2
-    - ['R SSC1 C +AUTORECONN:1']
-  - - SSC SSC1 reboot
-    - ['R SSC1 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.设置autoreconn,关闭
-
-    2.查询当前autoreconn状态是否关闭
-
-    3.重启系统,等待15s
-
-    4.查询target1 未自动重连AP
-
-    5.设置autoreconn,开启
-
-    6.查询当前autoreconn状态是否开启
-
-    7.系统重启后target1 自动重连AP'
-  initial condition: STAM2
-  initial condition description (auto): sta mode, join AP, DHCP on, will autogen a
-    TC with initial condition STAAP2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.设置autoreconn,关闭
-
-    2.查询当前autoreconn状态是否关闭
-
-    3.重启系统,等待15s
-
-    4.查询target1 未自动重连AP
-
-    5.设置autoreconn,开启
-
-    6.查询当前autoreconn状态是否开启
-
-    7.系统重启后target1 自动重连AP'
-  sub module: WIFI Connect
-  summary: auto reconnect test
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: power on auto reconnect test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0501
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC2 sta -R -r 1
-    - ['R SSC2 C +RECONN:OK']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)']
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - DELAY 10
-    - ['']
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - DELAY 15
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -R -r 0
-    - ['R SSC2 C +RECONN:OK']
-  - - SSC SSC2 sta -R -r 2
-    - ['R SSC2 C +RECONN:0']
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - DELAY 10
-    - ['']
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - DELAY 15
-    - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED']
-  - - SSC SSC2 sta -R -r 1
-    - ['R SSC2 C +RECONN:OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.设置reconn,开启(此功能不需要重启系统)
-
-    2.target1 set AP
-
-    3.target2 JAP target1 成功
-
-    4.target2 断开target1 连接
-
-    5.等待10s,target2 自动重连target1
-
-    6.成功
-
-    7.查询reconn状态,关闭
-
-    8.修改mode 成功
-
-    9.等待15s,target2 不会自动重连target1'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: "1.设置reconn,开启(此功能不需要重启系统)\n2.target1下设置ssid 和pwd 加密方式\n3.target2 JAP target1\
-    \ \n4.target1 修改mode 为sta mode\n5.等待10s,target1 修改mode 为softAP mode\n6.设置reconn,关闭\n\
-    7.查询reconn状态,关闭\n8.target1 修改mode 为sta mode\n9.等待15s,target1 修改mode 为softAP mode"
-  sub module: WIFI Connect
-  summary: reconnect policy test
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: reconnect policy test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0502
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -R -r 1
-    - ['R SSC2 C +RECONN:OK']
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - DELAY 5
-    - ['R SSC2 C +JAP:DISCONNECTED']
-  - - SSC SSC1 op -S -o 2
-    - ['R SSC1 C +MODE:OK']
-  - - DELAY 10
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:OK']
-  - - DELAY 10
-    - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target1 set AP
-
-    2.target2 jap target 1
-
-    3.设置reconn,开启(此功能不需要重启系统)
-
-    4.target2 断开target1 连接
-
-    5.等待10s,target2 自动重连target1
-
-    6.target2 断开target1 连接'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target1下设置ssid 和pwd 加密方式
-
-    2.target2 jap target 1
-
-    3.设置reconn,开启(此功能不需要重启系统)
-
-    4.target2 断开target1 连接
-
-    5.等待10s,target2 自动重连target1
-
-    6.target2 断开target1 连接'
-  sub module: WIFI Connect
-  summary: will not do reconnect after manually disconnected
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: abnormal/special use
-  test point 2: reconnect policy test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0601
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <target_ssid> <target_password> <pc_ip_wifi> <target_auth>
-      <target_encryption>
-    - ['R PC_COM C +WIFICONN:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 ap -L
-    - ['R SSC1 C +LSTA:', 'R SSC1 C +LSTA:', R SSC1 C +LSTADONE]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target1 set AP
-
-    2.PC WIFI CONNECTED
-
-    3.target2 jap target 1
-
-    4.查询到两个sta 连接到target1 上'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target1下设置ssid 和pwd 加密方式
-
-    2.PC WIFI CONNECTED target1
-
-    3.target2 jap target 1
-
-    4.查询到两个sta 连接到target1 上'
-  sub module: WIFI Connect
-  summary: list stations connected to soft ap test
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: list SoftAP connected station
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0801
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 0
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 2
-    - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,2,0']
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 3
-    - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,3,2']
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
-    - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,4,3']
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 0
-    - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,0,4']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. succeed
-
-    3. auth change event old mode 0 new mode 2
-
-    4. auth change event old mode 2 new mode 3
-
-    5. auth change event old mode 3 new mode 4
-
-    6. auth change event old mode 4 new mode 0'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1. set target1 softap auth mode 0
-
-    2. target2 connect to target1
-
-    3. set target1 softap auth mode 2, wait sta connected
-
-    4. set target1 softap auth mode 3, wait sta connected
-
-    5. set target1 softap auth mode 4, wait sta connected
-
-    6. set target1 softap auth mode 0, wait sta connected'
-  sub module: WIFI Connect
-  summary: test auth change event
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: wifi auth changed event test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0901
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: basic function
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 RE JAP:DISCONNECTED,\d+,8']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <random_string>
-    - ['R SSC1 RE JAP:DISCONNECTED,\d+,15']
-  - - SSC SSC1 sta -C -s <random_string> -p <ap_password>
-    - ['R SSC1 RE JAP:DISCONNECTED,\d+,201']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. disconnect event reason REASON_ASSOC_LEAVE
-
-    2. disconnect event reason REASON_4WAY_HANDSHAKE_TIMEOUT
-
-    3. disconnect event reason REASON_NO_AP_FOUND'
-  initial condition: STAM1
-  initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a
-    TC with initial condition STAAP1
-  level: Integration
-  module: WIFI MAC
-  steps: '1. sta connect to AP, and disconnect
-
-    2. connect to AP with wrong password
-
-    3. connect to AP not exist'
-  sub module: WIFI Connect
-  summary: test wifi disconnect reason REASON_ASSOC_LEAVE, REASON_4WAY_HANDSHAKE_TIMEOUT,
-    REASON_NO_AP_FOUND
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: wifi disconnect reason test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0902
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - APC <APC1> OFF <ap_apc>
-    - [P PC_COM L OK, 'R SSC1 RE JAP:DISCONNECTED,\d+,200']
-  - - APC <APC1> ON <ap_apc>
-    - [P PC_COM L OK]
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. disconnect event REASON_BEACON_TIMEOUT'
-  initial condition: STAM1
-  initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a
-    TC with initial condition STAAP1
-  level: Integration
-  module: WIFI MAC
-  steps: '1. connect to AP
-
-    2. AP power off'
-  sub module: WIFI Connect
-  summary: test wifi disconnect reason REASON_BEACON_TIMEOUT
-  test environment: SSC_T1_APC
-  test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\
-    \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\
-    APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\
-    \ PC by UART."
-  test point 1: basic function
-  test point 2: wifi disconnect reason test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_0904
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 3 -m 1
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <random_string> -p 1234567890
-    - ['R SSC2 RE JAP:DISCONNECTED,\d+,204']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:OK']
-  - - WIFI <pc_wifi_nic> CONN <random_string> <random_string> <pc_ip_wifi>
-    - ['R PC_COM NC ERROR C +WIFICONN:OK']
-  - - SSC SSC2 sta -C -s <random_string> -p <random_string>
-    - ['R SSC2 RE JAP:DISCONNECTED,\d+,5']
-  - - WIFI <pc_wifi_nic> DISCONN
-    - [P PC_COM C OK, 'R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 3 -m 1
-    - ['P SSC1 C +SAP:OK', 'P SSC2 RE JAP:DISCONNECTED,\d+,4']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. succeed
-
-    2. disconnect event REASON_HANDSHAKE_TIMEOUT
-
-    3. succeed
-
-    4. succeed
-
-    5. disconnect event REASON_ASSOC_TOOMANY
-
-    6. succeed, target2 connect succeed
-
-    7. disconnect event REASON_ASSOC_EXPIRE'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1. config target1 softap max sta allowed 1
-
-    2. target2 connect to target1 with wrong password
-
-    3. target2 disconnect
-
-    4. PC WIFI NIC connect to target1
-
-    5. target2 connect to target1 with correct password
-
-    6. PC WIFI NIC disconnect
-
-    7. reconfig softap'
-  sub module: WIFI Connect
-  summary: test wifi disconnect reason REASON_ASSOC_TOOMANY, REASON_HANDSHAKE_TIMEOUT,
-    REASON_ASSOC_EXPIRE
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: wifi disconnect reason test
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_CONN_5101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  auto test: 'Yes'
-  category: Stress
-  cmd set:
-  - WiFiStress/SoftAPNSTA
-  - - sta_num = 4
-    - [dummy]
-  - - max_sta = 4
-    - ['']
-  - - test_time = 300
-    - ['']
-  - - delay1 = [0, 1]
-    - ['']
-  - - delay2 = [0, 1]
-    - ['']
-  - - change_mac = True
-    - ['']
-  - - channel = 1
-    - ['']
-  comment: ''
-  execution time: 5.0
-  expected result: '1. succeed
-
-    2. JAP succeed'
-  initial condition: None
-  initial condition description (auto): none
-  level: Integration
-  module: WIFI MAC
-  steps: '1. 1 target set to softap mode and rest set to sta mode
-
-    2. all sta random join and disconnect from softap
-
-    Loop step 2'
-  sub module: WIFI Connect
-  summary: max sta connect to SotfAP and disconnect
-  test environment: SSC_T5_1
-  test environment description (auto): 5 SSC target connect with PC by UART.
-  test point 1: stress
-  test point 2: SoftAP WIFI connect/disconnect stress test
-  version: v2 (2016-11-15)
-- CI ready: 'Yes'
-  ID: WIFI_MODE_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC1 op -S -o 1
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  - - SSC SSC2 sta -S
-    - [R SSC2 NP <target_ssid> C +SCANDONE]
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:OK']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target1下设置ssid 和pwd 、加密方式成功
-
-    2.修改target 1的mode 为sta mode
-
-    3.target1的dhcp打开
-
-    4.target1成功连接上AP
-
-    5.target2上不能查询到target_ssid
-
-    6.target1断开AP'
-  initial condition: T2O_1
-  initial condition description (auto): same as T2_1 but will NOT autogen a TC with
-    initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target1下设置ssid 和pwd 加密方式
-
-    2.修改target1的mode 为sta mode
-
-    3.target1的dhcp打开
-
-    4.target1连接AP
-
-    5.target2查询target_ssid
-
-    6.target1断开AP'
-  sub module: WIFI Mode
-  summary: mode switch test (sta mode)
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: wifi mode fucntion
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_MODE_0102
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -S
-    - [R SSC2 P <target_ssid>, R SSC2 C +SCANDONE]
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 C +JAP:ERROR']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:ERROR']
-  comment: ''
-  execution time: 0.0
-  expected result: '1. target1 set AP
-
-    2.target 2 上查询到target_ssid
-
-    3. target1 can''t join AP
-
-    4. target1 can''t QAP'
-  initial condition: T2O_1
-  initial condition description (auto): same as T2_1 but will NOT autogen a TC with
-    initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target1下设置ssid 和pwd 加密方式
-
-    2.target 2 上查询target_ssid
-
-    3.target1 join AP
-
-    4.target1 DISCONN AP'
-  sub module: WIFI Mode
-  summary: mode switch test (AP mode)
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: wifi mode fucntion
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_MODE_0103
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 op -S -o 3
-    - ['R SSC1 C +MODE:OK']
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC1 dhcp -S -o 1
-    - ['R SSC1 C +DHCP:STA,OK']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)']
-  - - SSC SSC2 sta -S
-    - [R SSC2 P <target_ssid>, R SSC2 C +SCANDONE]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target1 change to AP mode
-
-    2.target1 set AP
-
-    3.target 1 的dhcp 打开
-
-    4.target 1 成功连接上AP
-
-    5.target 2 上查询到target_ssid'
-  initial condition: T2O_1
-  initial condition description (auto): same as T2_1 but will NOT autogen a TC with
-    initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target1 change to AP mode
-
-    2.target1下设置ssid 和pwd 加密方式
-
-    3.target1 的dhcp 打开
-
-    4.target1 连接AP
-
-    5.target2 上查询target_ssid'
-  sub module: WIFI Mode
-  summary: mode switch test (STA+AP mode)
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: wifi mode fucntion
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0401
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 phy -S -o 1 -m n -b 20
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC1 sta -C -s <ap_ssid_c1_ht20> -p <ap_password_phy>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['']
-  - - DELAY 10
-    - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, STA not disconnected
-  initial condition: T2_2
-  initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen)
-  level: Integration
-  module: WIFI MAC
-  steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2
-
-    2. STA connect to ext AP
-
-    3. AP get connected'
-  sub module: Phy Mode
-  summary: SoftAP ext AP in defferent channel, both bandwidth 20M, STA connect to
-    AP then Softap get connected
-  test environment: SSC_T2_PhyMode
-  test environment description (auto): '2 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP initial channel test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0402
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 phy -S -o 1 -m n -b 20
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['P SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -C -s <ap_ssid_c1_ht20> -p <ap_password_phy>
-    - ['']
-  - - DELAY 10
-    - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, SoftAP not get
-    disconnected
-  initial condition: T2_2
-  initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen)
-  level: Integration
-  module: WIFI MAC
-  steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2
-
-    2. AP get connected
-
-    3. STA connect to ext AP'
-  sub module: Phy Mode
-  summary: SoftAP ext AP in defferent channel, both bandwidth 20M, Softap get connected
-    than STA connect to AP
-  test environment: SSC_T2_PhyMode
-  test environment description (auto): '2 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP initial channel test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0403
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 phy -S -o 1 -m n -b 20
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC1 sta -C -s <ap_ssid_c1_ht40> -p <ap_password_phy>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['']
-  - - DELAY 10
-    - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, STA not disconnected
-  initial condition: T2_2
-  initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen)
-  level: Integration
-  module: WIFI MAC
-  steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2
-
-    2. STA connect to ext AP
-
-    3. AP get connected'
-  sub module: Phy Mode
-  summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, STA connect
-    to AP then Softap get connected
-  test environment: SSC_T2_PhyMode
-  test environment description (auto): '2 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP initial channel test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0404
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 phy -S -o 1 -m n -b 20
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['P SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -C -s <ap_ssid_c1_ht40> -p <ap_password_phy>
-    - ['']
-  - - DELAY 10
-    - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, SoftAP not
-    get disconnected
-  initial condition: T2_2
-  initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen)
-  level: Integration
-  module: WIFI MAC
-  steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2
-
-    2. AP get connected
-
-    3. STA connect to ext AP'
-  sub module: Phy Mode
-  summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, Softap get
-    connected than STA connect to AP
-  test environment: SSC_T2_PhyMode
-  test environment description (auto): '2 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP initial channel test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0405
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 phy -S -o 1 -m n -b 40
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC1 sta -C -s <ap_ssid_c1_ht20> -p <ap_password_phy>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['']
-  - - DELAY 10
-    - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, STA not disconnected
-  initial condition: T2_2
-  initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen)
-  level: Integration
-  module: WIFI MAC
-  steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2
-
-    2. STA connect to ext AP
-
-    3. AP get connected'
-  sub module: Phy Mode
-  summary: SoftAP ext AP in defferent channel, both bandwidth 40M, STA connect to
-    AP then Softap get connected
-  test environment: SSC_T2_PhyMode
-  test environment description (auto): '2 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP initial channel test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0406
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 phy -S -o 1 -m n -b 40
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['P SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -C -s <ap_ssid_c1_ht20> -p <ap_password_phy>
-    - ['']
-  - - DELAY 10
-    - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, SoftAP not get
-    disconnected
-  initial condition: T2_2
-  initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen)
-  level: Integration
-  module: WIFI MAC
-  steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2
-
-    2. AP get connected
-
-    3. STA connect to ext AP'
-  sub module: Phy Mode
-  summary: SoftAP ext AP in defferent channel, both bandwidth 40M, Softap get connected
-    than STA connect to AP
-  test environment: SSC_T2_PhyMode
-  test environment description (auto): '2 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP initial channel test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0407
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 phy -S -o 1 -m n -b 40
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC1 sta -C -s <ap_ssid_c1_ht40> -p <ap_password_phy>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['']
-  - - DELAY 10
-    - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, STA not disconnected
-  initial condition: T2_2
-  initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen)
-  level: Integration
-  module: WIFI MAC
-  steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2
-
-    2. STA connect to ext AP
-
-    3. AP get connected'
-  sub module: Phy Mode
-  summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, STA connect
-    to AP then Softap get connected
-  test environment: SSC_T2_PhyMode
-  test environment description (auto): '2 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP initial channel test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0408
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 phy -S -o 1 -m n -b 40
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['P SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -C -s <ap_ssid_c1_ht40> -p <ap_password_phy>
-    - ['']
-  - - DELAY 10
-    - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, SoftAP not
-    get disconnected
-  initial condition: T2_2
-  initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen)
-  level: Integration
-  module: WIFI MAC
-  steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2
-
-    2. AP get connected
-
-    3. STA connect to ext AP'
-  sub module: Phy Mode
-  summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, Softap get
-    connected than STA connect to AP
-  test environment: SSC_T2_PhyMode
-  test environment description (auto): '2 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP initial channel test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0501
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 sta -C -s <ap_ssid_c1_ht20> -p <ap_password_phy>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -C -s <target2_ssid> -p <target2_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC3 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC3 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -C -s <ap_ssid_c2_ht20> -p <ap_password_phy>
-    - ['']
-  - - DELAY 10
-    - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in
-    channel2 20M
-  initial condition: T3_PHY1
-  initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode,
-    target 3 set to STA mode
-
-    2. all interface of target 2,3 set to 11n ht40
-
-    3. config softAP of target 1 and target 2'
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target 1 STA and SoftAP set to 20M
-
-    2. target 2 STA connect to ap_channel1_20
-
-    3. target 1/3 STA connect to target 2/1 SoftAP
-
-    4. target 2 STA connect to ap_channel2_20'
-  sub module: Phy Mode
-  summary: SoftAP STA in channel1 20M, STA changed to channel2 20M
-  test environment: SSC_T3_PhyMode
-  test environment description (auto): '3 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2).
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP dynamic channel switch test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0502
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 sta -C -s <ap_ssid_c1_ht20> -p <ap_password_phy>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -C -s <target2_ssid> -p <target2_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC3 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC3 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -C -s <ap_ssid_c2_ht40> -p <ap_password_phy>
-    - ['']
-  - - DELAY 10
-    - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in
-    channel2; SoftAP in 20M, STA in 40M
-  initial condition: T3_PHY1
-  initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode,
-    target 3 set to STA mode
-
-    2. all interface of target 2,3 set to 11n ht40
-
-    3. config softAP of target 1 and target 2'
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target 1 STA set to 40M, SoftAP set to 20M
-
-    2. target 2 STA connect to ap_channel1_20
-
-    3. target 1/3 STA connect to target 2/1 SoftAP
-
-    4. target 2 STA connect to ap_channel2_40'
-  sub module: Phy Mode
-  summary: SoftAP STA in channel1 20M, STA changed to channel2 40M
-  test environment: SSC_T3_PhyMode
-  test environment description (auto): '3 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2).
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP dynamic channel switch test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0503
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 sta -C -s <ap_ssid_c1_ht40> -p <ap_password_phy>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -C -s <target2_ssid> -p <target2_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC3 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC3 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -C -s <ap_ssid_c2_ht20> -p <ap_password_phy>
-    - ['']
-  - - DELAY 10
-    - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in
-    channel2 20M
-  initial condition: T3_PHY1
-  initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode,
-    target 3 set to STA mode
-
-    2. all interface of target 2,3 set to 11n ht40
-
-    3. config softAP of target 1 and target 2'
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target 1 STA set to 40M, SoftAP set to 20M
-
-    2. target 2 STA connect to ap_channel1_40
-
-    3. target 1/3 STA connect to target 2/1 SoftAP
-
-    4. target 2 STA connect to ap_channel2_20'
-  sub module: Phy Mode
-  summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 20M
-  test environment: SSC_T3_PhyMode
-  test environment description (auto): '3 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2).
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP dynamic channel switch test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0504
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 sta -C -s <ap_ssid_c1_ht40> -p <ap_password_phy>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -C -s <target2_ssid> -p <target2_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC3 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC3 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -C -s <ap_ssid_c2_ht20> -p <ap_password_phy>
-    - ['']
-  - - DELAY 10
-    - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in
-    channel2 20M
-  initial condition: T3_PHY1
-  initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode,
-    target 3 set to STA mode
-
-    2. all interface of target 2,3 set to 11n ht40
-
-    3. config softAP of target 1 and target 2'
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target 1 STA and SoftAP set to 40M
-
-    2. target 2 STA connect to ap_channel1_40
-
-    3. target 1/3 STA connect to target 2/1 SoftAP
-
-    4. target 2 STA connect to ap_channel2_20'
-  sub module: Phy Mode
-  summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 40M
-  test environment: SSC_T3_PhyMode
-  test environment description (auto): '3 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2).
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP dynamic channel switch test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0505
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 sta -C -s <ap_ssid_c1_ht40> -p <ap_password_phy>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -C -s <target2_ssid> -p <target2_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC3 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC3 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -C -s <ap_ssid_c2_ht20> -p <ap_password_phy>
-    - ['']
-  - - DELAY 10
-    - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in
-    channel2; SoftAP in 20M, STA in 40M
-  initial condition: T3_PHY1
-  initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode,
-    target 3 set to STA mode
-
-    2. all interface of target 2,3 set to 11n ht40
-
-    3. config softAP of target 1 and target 2'
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target 1 STA set to 40M ,SoftAP set to 20M
-
-    2. target 2 STA connect to ap_channel1_40
-
-    3. target 1/3 STA connect to target 2/1 SoftAP
-
-    4. target 2 STA connect to ap_channel2_20'
-  sub module: Phy Mode
-  summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 20M
-  test environment: SSC_T3_PhyMode
-  test environment description (auto): '3 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2).
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP dynamic channel switch test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_PHY_0506
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 phy -S -o 2 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC2 sta -C -s <ap_ssid_c1_ht40> -p <ap_password_phy>
-    - ['R SSC2 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -C -s <target2_ssid> -p <target2_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC3 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC3 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -C -s <ap_ssid_c2_ht40> -p <ap_password_phy>
-    - ['']
-  - - DELAY 10
-    - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in
-    channel2 40M
-  initial condition: T3_PHY1
-  initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode,
-    target 3 set to STA mode
-
-    2. all interface of target 2,3 set to 11n ht40
-
-    3. config softAP of target 1 and target 2'
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target 1 STA and SoftAP set to 40M
-
-    2. target 2 STA connect to ap_channel1_40
-
-    3. target 1/3 STA connect to target 2/1 SoftAP
-
-    4. target 2 STA connect to ap_channel2_40'
-  sub module: Phy Mode
-  summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 40M
-  test environment: SSC_T3_PhyMode
-  test environment description (auto): '3 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2).
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: STA+SoftAP dynamic channel switch test
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_SCAN_0101
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC2 sta -S -s .,juhg123
-    - ['R SSC2 NC +SCAN: C +SCANDONE']
-  - - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -S -s <target_tmp_ssid>
-    - ['R SSC2 C +SCAN:', R SSC2 P <target_tmp_ssid>, 'R SSC2 NC +SCAN: C +SCANDONE']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target 2上不能scan  .,juhg123
-
-    2.target1 set AP
-
-    3.target2上查询到<target_tmp_ssid>'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target 2  scan  .,juhg123
-
-    2.target1下设置ssid 和pwd 加密方式
-
-    3.target2  scan <target_tmp_ssid>'
-  sub module: WIFI Scan
-  summary: scan with scan config ssid
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: scan with different config
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_SCAN_0102
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC2 sta -S -b ff:ff:ff:ff:ff:11
-    - ['R SSC2 NC +SCAN: C +SCANDONE']
-  - - SSC SSC2 sta -S -b <target_ap_mac>
-    - ['R SSC2 RE "\+SCAN:.+,%%s"%%(<target_ap_mac>)', 'R SSC2 NC +SCAN: C +SCANDONE']
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target2 上不能查询到此mac
-
-    2.target2上查询到<target_ap_mac>'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target2 上查询此macff:ff:ff:ff:ff:11
-
-    2.target2上查询<target_ap_mac>'
-  sub module: WIFI Scan
-  summary: scan with scan config bssid
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: scan with different config
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_SCAN_0103
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3 -n 6
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -S -n 5
-    - [R SSC2 NP <target_tmp_ssid> C +SCANDONE]
-  - - SSC SSC2 sta -S -n 6
-    - ['R SSC2 C +SCAN:', R SSC2 P <target_tmp_ssid>]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target1 QAP
-
-    2. target1 set AP,set channel 6
-
-    3.target2 上scan不到 channel 5
-
-    4.target2 上查询channel 6的<target_tmp_ssid>'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target1 断开连接AP
-
-    2.target1下设置ssid 和pwd 加密方式,set channel 6
-
-    3.target2 上scan channel 5
-
-    4.target2 上查询channel 6的<target_tmp_ssid>'
-  sub module: WIFI Scan
-  summary: scan with scan config channel
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: scan with different config
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_SCAN_0104
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3 -h 0
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -S -h 0
-    - [R SSC2 P <target_tmp_ssid> C +SCANDONE]
-  - - SSC SSC2 sta -S -h 1
-    - [R SSC2 P <target_tmp_ssid> C +SCANDONE]
-  - - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -h 1
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -S -h 0
-    - [R SSC2 NP <target_tmp_ssid> C +SCANDONE]
-  - - SSC SSC2 sta -S -h 1
-    - [R SSC2 P <target_ap_mac> C +SCANDONE]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target1 set AP,set ssid broad cast
-
-    2.target 2上scan <target_tmp_ssid>
-
-    3.target 2上scan <target_tmp_ssid>
-
-    4.target1 set AP,set ssid hidden,
-
-    5.target 2上不能查询到 <target_tmp_ssid>
-
-    6.target 2上查询到<target_ap_mac>'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target1下设置ssid 和pwd 加密方式,set ssid broad cast
-
-    2.target 2上scan <target_tmp_ssid>
-
-    3.target 2上scan <target_tmp_ssid>
-
-    4.target1下设置ssid 和pwd 加密方式,set ssid hidden,
-
-    5.target 2上查询 <target_tmp_ssid>
-
-    6.target 2上查询<target_ap_mac>'
-  sub module: WIFI Scan
-  summary: scan with scan config show hidden
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: scan with different config
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_SCAN_0105
-  SDK: '8266_NonOS
-
-    8266_RTOS
-
-    ESP32_IDF'
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:']
-  - - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3 -h 0 -n 11
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -S -s <target_tmp_ssid> -b <target_ap_mac> -n 11
-    - [R SSC2 P <target_tmp_ssid> C +SCANDONE]
-  - - SSC SSC2 sta -S -s <target_ssid> -b <target_ap_mac> -n 11
-    - [R SSC2 NP <target_tmp_ssid> C +SCANDONE]
-  - - SSC SSC2 sta -S -s <target_tmp_ssid> -b ff:ff:ff:ff:ff:11 -n 11
-    - [R SSC2 P <target_tmp_ssid>, R SSC2 NP <target_tmp_ssid> C +SCANDONE]
-  - - SSC SSC2 sta -S -s <target_tmp_ssid> -b <target_ap_mac> -n 10
-    - [R SSC2 P <target_tmp_ssid>, R SSC2 NP <target_tmp_ssid> C +SCANDONE]
-  comment: ''
-  execution time: 0.0
-  expected result: '1.target1 QAP
-
-    2. target1 set AP,set ssid broad cast,set channel 11
-
-    3.target2 上查询到<target_tmp_ssid>
-
-    4.target2 上查询不到<target_tmp_ssid>
-
-    5.target2 上查询不到<target_tmp_ssid>
-
-    6.target2 上查询不到<target_tmp_ssid>'
-  initial condition: T2_1
-  initial condition description (auto): target 1 as SoftAP, target 2 as STA, will
-    autogen a TC with initial condition T2_2
-  level: Integration
-  module: WIFI MAC
-  steps: '1.target1 QAP
-
-    2. target1 set AP,set ssid broad cast,set channel 11
-
-    3.target2 上查询到<target_tmp_ssid>
-
-    4.target2 上查询不到<target_tmp_ssid>
-
-    5.target2 上查询不到<target_tmp_ssid>
-
-    6.target2 上查询不到<target_tmp_ssid>'
-  sub module: WIFI Scan
-  summary: scan with several configs
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: basic function
-  test point 2: scan with different config
-  version: v1 (2016-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_SCAN_0201
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 phy -S -o 1 -m b
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 sta -S
-    - [R SSC1 P <ap_ssid_11b> P <ap_ssid_11g> P <ap_ssid_11n_ht20> P <ap_ssid_11n_ht40>]
-  - - SSC SSC1 phy -S -o 1 -m g
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 sta -S
-    - [R SSC1 P <ap_ssid_11b> P <ap_ssid_11g> P <ap_ssid_11n_ht20> P <ap_ssid_11n_ht40>]
-  - - SSC SSC1 phy -S -o 1 -m n -b 20
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 sta -S
-    - [R SSC1 P <ap_ssid_11b> P <ap_ssid_11g> P <ap_ssid_11n_ht20> P <ap_ssid_11n_ht40>]
-  - - SSC SSC1 phy -S -o 1 -m n -b 40
-    - ['R SSC1 C +PHY:OK']
-  - - SSC SSC1 sta -S
-    - [R SSC1 P <ap_ssid_11b> P <ap_ssid_11g> P <ap_ssid_11n_ht20> P <ap_ssid_11n_ht40>]
-  comment: ''
-  execution time: 0.0
-  expected result: '3. find all 3 ext APs
-
-    5. find all 3 ext APs
-
-    7. find all 3 ext APs
-
-    9. find all 3 ext APs'
-  initial condition: STAM1
-  initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a
-    TC with initial condition STAAP1
-  level: Integration
-  module: WIFI MAC
-  steps: '1. 3 ext APs in 11b, 11g, 11n mode
-
-    2. STA in 11b mode
-
-    3. do all channel scan
-
-    4. STA in 11g mode
-
-    5. do all channel scan
-
-    6. STA in 11n ht20 mode
-
-    7. do all channel scan
-
-    8. STA in 11n ht40 mode
-
-    9. do all channel scan'
-  sub module: WIFI Scan
-  summary: STA in differnt PHY mode to scan AP in different PHY mode
-  test environment: SSC_T2_PhyMode
-  test environment description (auto): '2 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
-
-    Put 4 APs near SSC targets.'
-  test point 1: basic function
-  test point 2: Scan in different mode and channel
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_SCAN_0301
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 sta -S
-    - ['']
-  - - SSC SSC1 sta -S
-    - [P SSC1 C +SCANFAIL, 'P SSC1 C +SCAN:', R SSC1 C +SCANDONE]
-  comment: ''
-  execution time: 0.0
-  expected result: '1. second scan failed
-
-    2. first scan succeed'
-  initial condition: STAM1
-  initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a
-    TC with initial condition STAAP1
-  level: Integration
-  module: WIFI MAC
-  steps: '1. do all channel scan
-
-    2. do scan before scan finished'
-  sub module: WIFI Scan
-  summary: reject scan request before scan finished
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: interaction
-  test point 2: Scan interact with other WiFi operation
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_SCAN_0302
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 C +JAP:CONNECTED']
-  - - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
-    - ['R SSC1 A <sock1>:BIND:(\d+),OK']
-  - - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -n 1000000 -j 5
-    - ['']
-  - - SSC SSC2 phy -S -o 1 -m b
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC2 sta -S -n <ap_channel>
-    - [R SSC2 P <ap_ssid>]
-  - - SSC SSC2 phy -S -o 1 -m g
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC2 sta -S -n <ap_channel>
-    - [R SSC2 P <ap_ssid>]
-  - - SSC SSC2 phy -S -o 1 -m n -b 20
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC2 sta -S -n <ap_channel>
-    - [R SSC2 P <ap_ssid>]
-  - - SSC SSC2 phy -S -o 1 -m n -b 40
-    - ['R SSC2 C +PHY:OK']
-  - - SSC SSC2 sta -S -n <ap_channel>
-    - [R SSC2 P <ap_ssid>]
-  comment: ''
-  execution time: 0.0
-  expected result: 3. target 2 able to scan AP
-  initial condition: T2_2
-  initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen)
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target 1 connect to AP
-
-    2. target 1 start sending UDP packets
-
-    3. target 2 scan in AP channel in 11b.g,n,ht40 mode'
-  sub module: WIFI Scan
-  summary: scan in congest channel
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: interaction
-  test point 2: Scan interact with other WiFi operation
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_SCAN_0303
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - ['R SSC1 C +JAP:OK']
-  - - SSC SSC1 sta -S
-    - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED']
-  - - SSC SSC1 sta -D
-    - ['R SSC1 C +QAP:OK']
-  - - SSC SSC1 sta -S
-    - ['']
-  - - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
-    - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: '2. scan succeed, JAP succeed
-
-    5. JAP succeed, scan succeed'
-  initial condition: STAM1
-  initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a
-    TC with initial condition STAAP1
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target 1 STA join AP
-
-    2. target 1 STA scan before JAP succeed
-
-    3. target 1 quite AP
-
-    4. target 1 scan
-
-    5. target 1 JAP before scan succeed'
-  sub module: WIFI Scan
-  summary: scan during JAP
-  test environment: SSC_T1_1
-  test environment description (auto): 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.'
-  test point 1: interaction
-  test point 2: Scan interact with other WiFi operation
-  version: v1 (2015-8-15)
-- CI ready: 'Yes'
-  ID: WIFI_SCAN_0304
-  SDK: ESP32_IDF
-  Test App: SSC
-  allow fail: ''
-  auto test: 'Yes'
-  category: Function
-  cmd set:
-  - ''
-  - - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
-    - ['R SSC1 C +SAP:OK']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - ['R SSC2 C +JAP:OK']
-  - - SSC SSC1 sta -S
-    - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED']
-  - - SSC SSC2 sta -D
-    - ['R SSC2 C +QAP:OK']
-  - - SSC SSC1 sta -S
-    - ['']
-  - - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
-    - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED']
-  comment: ''
-  execution time: 0.0
-  expected result: '2. scan succeed, JAP succeed
-
-    5. JAP succeed, scan succeed'
-  initial condition: T2_2
-  initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen)
-  level: Integration
-  module: WIFI MAC
-  steps: '1. target 2 STA join target 1 SoftAP
-
-    2. target 1 STA scan before target 2 JAP succeed
-
-    3. target 2 STA QAP
-
-    4. target 1 STA scan
-
-    5. target 2 STA JAP before target 1 STA scan succeed'
-  sub module: WIFI Scan
-  summary: scan during ext STA join SoftAP
-  test environment: SSC_T2_1
-  test environment description (auto): 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.'
-  test point 1: interaction
-  test point 2: Scan interact with other WiFi operation
-  version: v1 (2015-8-15)
-- ID: SYS_NVS_01001
-  SDK: ESP32_IDF
-  Test App: SSC_BLE_WIFI
-  auto test: 'Yes'
-  category: Function
-  test point 1: compatiable test
-  test point 2: test if latest SDK work with pervious version of NVS data
-  summary: use old NVS data WIFI function test
-  steps: |
-    1. get NVS data from earlier released branches and last master
-    2. download each NVS data to target
-    3. check if auto connected to the same AP
-    4. check if SoftAP config is correct
-  expected result: |
-    1. succeed
-    2. succeed
-    3. succeed
-    4. succeed
-  initial condition: None
-  test environment: SSC_T1_1
-  execution time: 0
-  module: System
-  sub module: NVS
-  version: v1 (2017-06-01)
-  CI ready: 'SpecialJob'
-  level: Integration
-  allow fail: ''
-  cmd set:
-  - "NVSTest/NVSCompatibleWiFi"
-  - - nvs_path = "nvs_bin_folder"
-    - ['']
diff --git a/components/idf_test/integration_test/TestCaseScript/BLEFunction/AdvInterval.py b/components/idf_test/integration_test/TestCaseScript/BLEFunction/AdvInterval.py
deleted file mode 100644 (file)
index 08d9153..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-import re
-import subprocess
-import time
-
-from TCAction import PerformanceTCBase
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-from comm.NIC import Adapter
-
-
-MIN_PACKETS_TO_CHECK = 10
-
-
-class TestCase(PerformanceTCBase.PerformanceTCBase):
-    INTERVAL_PATTERN = re.compile("(0x[0-9A-Fa-f]+)-(0x[0-9A-Fa-f]+)")
-
-    def __init__(self, test_case, test_env, timeout, log_path):
-        PerformanceTCBase.PerformanceTCBase.__init__(self, test_case, test_env, timeout, log_path)
-        self.interval_list = []
-        self.deviation = 0
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def process_packets(self, packets, interval):
-
-        def convert_ts(ts):
-            return float("%s.%s" % (ts["second"], ts["microsecond"]))
-
-        def filter_packets():
-            _filtered_packets = []
-            mac_address = self.get_parameter("dut1_bt_mac")
-            for _packet in packets:
-                packet_str = str(_packet)
-                if "[le_sub_event_code]: LEAdvReport" in packet_str \
-                        and "[address_0]: %s" % mac_address in packet_str:
-                    _filtered_packets.append(_packet)
-            # sort by time
-            _filtered_packets.sort(key=lambda x: convert_ts(x.ts))
-            return _filtered_packets
-
-        filtered_packets = filter_packets()
-
-        # add captured packets to log
-        for packet in filtered_packets:
-            self.result_check("BLENIC", str(packet))
-            # flush data cache to free memory
-            self.flush_data("BLENIC")
-
-        # scan will switch channel, therefore need to check if there're successive fails
-        succeed_packets = 0
-
-        # process packets
-        # unit: ms; allow deviation for interval
-        allowed_range = [float(interval[0] * (1 - self.deviation) * 0.625) / 1000,
-                         float(interval[1] * (1 + self.deviation) * 0.625) / 1000]
-        NativeLog.add_trace_info("[BLE][AdvInterval] allowed_interval_range is %s" % allowed_range)
-        for i in range(len(filtered_packets) - 1):
-            _p1 = filtered_packets[i]
-            _p2 = filtered_packets[i+1]
-            interval = convert_ts(_p2.ts) - convert_ts(_p1.ts)
-            if allowed_range[0] < interval < allowed_range[1]:
-                succeed_packets += 1
-            else:
-                pass
-        result = True if succeed_packets >= MIN_PACKETS_TO_CHECK else False
-        return result
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        test_result = "Succeed"
-
-        # open capture device
-        adapter = Adapter.Adapter(self.get_parameter("bt_capture_nic"), "capture", capture_type="bluetooth")
-
-        ret = adapter.start_capture()
-        if ret != "LIBPCAP_SUCCEED":
-            NativeLog.add_trace_critical("Can't start capture packets: %s" % ret)
-            return
-
-        def run_test_once(interval):
-            # flush all packets
-            adapter.get_packets()
-            # config ble adv data
-            self.serial_write_line("SSC1", "bleadv -D -z stop")
-            self.check_response("SSC1", "+BLEADV")
-            self.serial_write_line("SSC1", "bleadv -L -c 0 -t 3")
-            self.check_response("SSC1", "+BLEADV")
-            # set adv param and start adv
-            self.serial_write_line("SSC1", "bleadv -D -z start -i 0x%04X-0x%04X -h 1" % (interval[0], interval[1]))
-            self.check_response("SSC1", "+BLEADV:OK")
-            # set scan window = scan interval = 2s, scan for 6s, each channel scan 2 second.
-            subprocess.check_output("hcitool cmd 0x08 0x000b 0x00 0x80 0x0c 0x80 0x0c 0x00 0x00\n", shell=True)
-            subprocess.check_output("hcitool cmd 0x08 0x000c 0x01 0x00\n", shell=True)
-            time.sleep(6)
-            subprocess.check_output("hcitool cmd 0x08 0x000c 0x00 0x00\n", shell=True)
-            packets = adapter.get_packets()
-            return self.process_packets(packets, interval)
-
-        for _interval in self.interval_list:
-            match = self.INTERVAL_PATTERN.search(_interval)
-            if match is not None:
-                if run_test_once([int(match.group(1), base=16), int(match.group(2), base=16)]) is False:
-                    NativeLog.add_trace_critical("Test fail for interval: %s." % _interval)
-                    test_result = "Fail"
-            else:
-                NativeLog.add_trace_critical("interval string format not correct: %s." % _interval)
-                test_result = "Fail"
-            pass
-
-        self.set_result(test_result)
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    pass
diff --git a/components/idf_test/integration_test/TestCaseScript/BLEFunction/__init__.py b/components/idf_test/integration_test/TestCaseScript/BLEFunction/__init__.py
deleted file mode 100644 (file)
index 8a609af..0000000
+++ /dev/null
@@ -1 +0,0 @@
-import AdvInterval
diff --git a/components/idf_test/integration_test/TestCaseScript/NVSTest/NVSCompatibleWiFi.py b/components/idf_test/integration_test/TestCaseScript/NVSTest/NVSCompatibleWiFi.py
deleted file mode 100644 (file)
index c9d577f..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-import os
-import time
-
-from TCAction import TCActionBase
-from TCAction import PerformanceTCBase
-from NativeLog import NativeLog
-
-
-SOFTAP_SSID = "SoftAPSSID4NVSCompatibleTest"
-SOFTAP_PASSWORD = "SoftAPPassword4NVSCompatibleTest"
-
-NVS_FILE_NAME = "nvs_wifi.bin"
-
-
-class TestCase(PerformanceTCBase.PerformanceTCBase):
-
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        PerformanceTCBase.PerformanceTCBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        self.nvs_path = ""
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-
-    def get_nvs_bins(self):
-        if os.path.exists(self.nvs_path) is False:
-            NativeLog.add_trace_critical("NVS path is not correct")
-            files = []
-        else:
-            files = [os.path.join(self.nvs_path, x) for x in os.listdir(self.nvs_path)]
-        return filter(lambda f: NVS_FILE_NAME in f, files)
-
-    def check_nvs(self, nvs_bin):
-        branch_name = os.path.basename(nvs_bin)
-        branch_name.replace("___", "/")
-        result = True
-
-        ssc1_port = self.test_env.get_port_by_name("SSC1")
-        ap_ssid = self.get_parameter("ap_ssid")
-
-        self.flush_data("SSC1")
-
-        # first download
-        ssc1_port.flash_nvs(nvs_bin)
-        self.check_response("SSC1", "ready!!!")
-        # set to sta mode and join ap
-        if self.check_response("SSC1", "+JAP:CONNECTED,%s" % ap_ssid, timeout=15) is False:
-            NativeLog.add_trace_critical("Failed to join AP on: " + branch_name)
-            result = False
-
-        self.serial_write_line("SSC1", "op -Q")
-        if self.check_response("SSC1", "+CURMODE:3") is False:
-            NativeLog.add_trace_critical("Failed on verifying WIFI mode on: " + branch_name)
-            result = False
-
-        self.serial_write_line("SSC1", "ap -Q")
-        if self.check_response("SSC1", "+APCONFIG:%s,%s" % (SOFTAP_SSID, SOFTAP_PASSWORD)) is False:
-            NativeLog.add_trace_critical("Failed on verifying SoftAP config on: " + branch_name)
-            result = False
-        return result
-
-    def dump_nvs(self):
-        ssc1_port = self.test_env.get_port_by_name("SSC1")
-        ap_ssid = self.get_parameter("ap_ssid")
-        ap_password = self.get_parameter("ap_password")
-
-        # first erase NVS
-        ssc1_port.flash_nvs(None)
-
-        self.check_response("SSC1", "ready!!!")
-
-        self.serial_write_line("SSC1", "op -S -o 3")
-        self.check_response("SSC1", "+MODE:OK")
-        self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password))
-        self.check_response("SSC1", "+JAP:CONNECTED,%s" % ap_ssid, timeout=20)
-        self.serial_write_line("SSC1", "ap -S -s %s -p %s -t 3" % (SOFTAP_SSID, SOFTAP_PASSWORD))
-        self.check_response("SSC1", "+SAP:OK")
-        time.sleep(1)
-
-        idf_path = os.getenv("IDF_PATH")
-
-        ssc1_port.dump_nvs(os.path.join(idf_path, NVS_FILE_NAME))
-
-    def cleanup(self):
-        # make sure dump nvs will be executed
-        self.dump_nvs()
-
-    def process(self):
-        result = True
-        nvs_bins = self.get_nvs_bins()
-
-        for nvs_bin in nvs_bins:
-            result = result and self.check_nvs(nvs_bin)
-
-        if result is True:
-            self.set_result("Succeed")
diff --git a/components/idf_test/integration_test/TestCaseScript/NVSTest/__init__.py b/components/idf_test/integration_test/TestCaseScript/NVSTest/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPAPNSTA.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPAPNSTA.py
deleted file mode 100755 (executable)
index c8c50fc..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-import time
-import random
-import string
-
-
-TEST_COUNT_ONE_ROUND = 500
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        self.send_len = 1460
-        self.server_echo = True
-        self.sta_number = 4
-        self.test_time = 12 * 60
-        self.send_delay = 50
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def cleanup(self):
-        checker_stings = []
-        test_action_strings = []
-        for i in range(self.sta_number + 1):
-            checker_stings.append("R SSC%s C +RECVPRINT:1" % (i+1))
-            test_action_strings.append("SSC SSC%s soc -R -o 1" % (i+1))
-            fail_string = "Fail, Fail to turn on recv print"
-            self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            server_echo = self.server_echo
-            sta_number = self.sta_number
-            test_time = self.test_time * 60
-            send_delay = self.send_delay
-            ap_ip = self.get_parameter("target_ap_ip")
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # step0 reboot
-        checker_stings = []
-        test_action_string = []
-
-        for i in range(sta_number+1):
-            checker_stings.append("P SSC%d C !!!ready!!!" % (i+1))
-            test_action_string.append("SSCC SSC%d reboot" % (i+1))
-
-        fail_string = "Fail, Fail to reboot"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # switch off recv print
-        checker_stings = []
-        test_action_strings = []
-        for i in range(self.sta_number + 1):
-            checker_stings.append("R SSC%s C +RECVPRINT:0" % (i+1))
-            test_action_strings.append("SSC SSC%s soc -R -o 0" % (i+1))
-            fail_string = "Fail, Fail to turn off recv print"
-            self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string)
-
-        # step1 set ap on SSC1, create server
-        checker_stings = ["R SSC1 C +MODE:OK"]
-        test_action_string = ["SSCC SSC1 op -S -o 2"]
-        fail_string = "Fail, Fail set mode"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        ssid = "".join([random.choice(string.lowercase) for m in range(10)])
-        password = "".join([random.choice(string.lowercase) for m in range(10)])
-        tcp_port = random.randint(10000, 20000)
-
-        checker_stings = ["R SSC1 C +SAP:OK"]
-        test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -t 3 -m 8" % (ssid, password)]
-        fail_string = "Fail, Fail set ap"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC1 A <server_sock>:BIND:(\d+),OK"]
-        test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % tcp_port]
-        fail_string = "Fail, Fail create server"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"]
-        test_action_string = ["SSCC SSC1 soc -L -s <server_sock>"]
-        fail_string = "Fail, Fail create server"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step 2, 8 SSC target(SSC2 - SSC9) join SSC1 soft AP
-        checker_stings = []
-        test_action_string = []
-        for i in range(sta_number):
-            checker_stings.append("P SSC%d C +MODE:OK" % (i+2))
-            test_action_string.append("SSCC SSC%d op -S -o 1" % (i+2))
-        fail_string = "Fail, Fail set mode"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = []
-        test_action_string = []
-        for i in range(sta_number):
-            checker_stings.append("P SSC%d C +JAP:CONNECTED,%s" % (i+2, ssid))
-            test_action_string.append("SSCC SSC%d ap -C -s %s -p %s" % (i+2, ssid, password))
-        fail_string = "Fail, Fail to connect to server"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step 3, create client on SSC2 - SSC9
-        checker_stings = []
-        test_action_string = []
-        for i in range(sta_number):
-            checker_stings.append("P SSC%d A <client_sock%d>:BIND:(\d+),OK" % (i+2, i+2))
-            test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i+2))
-        fail_string = "Fail, Fail to connect to server"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        for i in range(sta_number):
-            checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i+2),
-                              "P SSC1 A <accept_sock%d>:ACCEPT:(\d+),.+" % (i+2)]
-            test_action_string = ["SSCC SSC%d soc -C -s <client_sock%d> -i %s -p %s" %
-                                  (i+2, i+2, ap_ip, tcp_port)]
-            fail_string = "Fail, Fail to connect to server"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        start_time = time.time()
-        # step 4, do send/recv
-        while time.time() - start_time < test_time:
-            checker_stings = []
-            test_action_string = []
-            for i in range(sta_number):
-                checker_stings.append("P SSC%d RE \+SEND:\d+,OK NC CLOSED" % (i+2))
-                test_action_string.append("SSC SSC%d soc -S -s <client_sock%d> -l %d -n %d -j %d" %
-                                          (i+2, i+2, send_len, TEST_COUNT_ONE_ROUND, send_delay))
-                if server_echo is True:
-                    test_action_string.append("SSC SSC1 soc -S -s <accept_sock%d> -l %d -n %d -j %d" %
-                                              (i+2, send_len, TEST_COUNT_ONE_ROUND, send_delay))
-                    checker_stings.append("P SSC1 RE \"\+SEND:%%%%s,OK\"%%%%(<accept_sock%d>) NC CLOSED)" %
-                                          (i+2))
-
-            fail_string = "Fail, Failed to send/recv data"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                          check_freq=1, check_time=300) is False:
-                break
-
-        NativeLog.add_prompt_trace("time escape: %s" % (time.time() - start_time))
-
-        if (time.time() - start_time) >= test_time:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Failed")
-            # TODO: create a function to create TCP connections. reuse not copy paste code
-            checker_stings = []
-            test_action_string = []
-            for i in range(sta_number + 1):
-                checker_stings.append("P SSC%d C CLOSEALL" % (i + 1))
-                test_action_string.append("SSCC SSC%d soc -T" % (i + 1))
-            fail_string = "Fail, Fail to close socket"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-            server_port = random.randint(20000, 30000)
-            checker_stings = ["R SSC1 A <server_sock>:BIND:(\d+),OK"]
-            test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port]
-            fail_string = "Fail, Fail to bind socket"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-            checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"]
-            test_action_string = ["SSCC SSC1 soc -L -s <server_sock>"]
-            fail_string = "Fail, Fail to listen"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-            checker_stings = []
-            test_action_string = []
-            for i in range(sta_number):
-                checker_stings.append("P SSC%d A <client_sock%d>:BIND:(\d+),OK" % (i + 2, i + 2))
-                test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i + 2))
-            fail_string = "Fail, Fail to connect to server"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-            for i in range(sta_number):
-                checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i + 2),
-                                  "P SSC1 A <accept_sock%d>:ACCEPT:(\d+),.+" % (i + 2)]
-                test_action_string = ["SSCC SSC%d soc -C -s <client_sock%d> -i %s -p %s" %
-                                      (i + 2, i + 2, ap_ip, server_port)]
-                fail_string = "Fail, Fail to connect to server"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                    return
-
-        # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
-
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPConnection.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPConnection.py
deleted file mode 100755 (executable)
index 7bedcaf..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-import random
-import re
-import socket
-import threading
-import time
-
-import TCPConnectionUtility
-from NativeLog import NativeLog
-from TCAction import PerformanceTCBase
-
-DELAY_RANGE = [10, 3000]
-CONNECTION_STRUCTURE = ("Connection handler", "PC socket", "Target socket id",
-                        "Target port", "PC port", "PC state", "Target state")
-
-# max fail count for one connection during test
-MAX_FAIL_COUNT = 10
-
-
-class CheckerBase(threading.Thread):
-
-    CHECK_ITEM = ("CONDITION", "NOTIFIER", "ID", "DATA")
-    SLEEP_TIME = 0.1  # sleep 100ms between each check action
-
-    def __init__(self):
-        threading.Thread.__init__(self)
-        self.setDaemon(True)
-        self.exit_event = threading.Event()
-        self.sync_lock = threading.Lock()
-        self.check_item_list = []
-        self.check_item_id = 0
-
-    def run(self):
-        while self.exit_event.isSet() is False:
-            self.process()
-            pass
-
-    def process(self):
-        pass
-
-    def add_check_item(self, condition, notifier):
-        with self.sync_lock:
-            check_item_id = self.check_item_id
-            self.check_item_id += 1
-            self.check_item_list.append(dict(zip(self.CHECK_ITEM, (condition, notifier, check_item_id, str()))))
-        return check_item_id
-
-    def remove_check_item(self, check_item_id):
-        ret = None
-        with self.sync_lock:
-            check_items = filter(lambda x: x["ID"] == check_item_id, self.check_item_list)
-            if len(check_items) > 0:
-                self.check_item_list.remove(check_items[0])
-                ret = check_items[0]["DATA"]
-        return ret
-
-    def exit(self):
-        self.exit_event.set()
-    pass
-
-
-# check on serial port
-class SerialPortChecker(CheckerBase):
-    def __init__(self, serial_reader):
-        CheckerBase.__init__(self)
-        self.serial_reader = serial_reader
-        pass
-
-    # check condition for serial is compiled regular expression pattern
-    @staticmethod
-    def do_check(check_item, data):
-        match = check_item["CONDITION"].search(data)
-        if match is not None:
-            pos = data.find(match.group()) + len(match.group())
-            # notify user
-            check_item["NOTIFIER"]("serial", match)
-        else:
-            pos = -1
-        return pos
-
-    def process(self):
-        # do check
-        with self.sync_lock:
-            # read data
-            new_data = self.serial_reader()
-            # NativeLog.add_trace_info("[debug][read data] %s" % new_data)
-            # do check each item
-            for check_item in self.check_item_list:
-                # NativeLog.add_trace_info("[debug][read data][ID][%s]" % check_item["ID"])
-                check_item["DATA"] += new_data
-                self.do_check(check_item, check_item["DATA"])
-        time.sleep(self.SLEEP_TIME)
-
-
-# handle PC TCP server accept and notify user
-class TCPServerChecker(CheckerBase):
-    def __init__(self, server_sock):
-        CheckerBase.__init__(self)
-        self.server_sock = server_sock
-        server_sock.settimeout(self.SLEEP_TIME)
-        self.accepted_socket_list = []
-
-    # check condition for tcp accepted sock is tcp source port
-    @staticmethod
-    def do_check(check_item, data):
-        for sock_addr_pair in data:
-            addr = sock_addr_pair[1]
-            if addr[1] == check_item["CONDITION"]:
-                # same port, so this is the socket that matched, notify and remove it from list
-                check_item["NOTIFIER"]("tcp", sock_addr_pair[0])
-                data.remove(sock_addr_pair)
-
-    def process(self):
-        # do accept
-        try:
-            client_sock, addr = self.server_sock.accept()
-            self.accepted_socket_list.append((client_sock, addr))
-        except socket.error:
-            pass
-        # do check
-        with self.sync_lock:
-            check_item_list = self.check_item_list
-            for check_item in check_item_list:
-                self.do_check(check_item, self.accepted_socket_list)
-    pass
-
-
-# this thread handles one tcp connection.
-class ConnectionHandler(threading.Thread):
-    CHECK_FREQ = CheckerBase.SLEEP_TIME/2
-
-    def __init__(self, utility, serial_checker, tcp_checker, connect_method, disconnect_method, test_case):
-        threading.Thread.__init__(self)
-        self.setDaemon(True)
-        self.utility = utility
-        self.connect_method = connect_method
-        self.disconnect_method = disconnect_method
-        self.exit_event = threading.Event()
-        # following members are used in communication with checker threads
-        self.serial_checker = serial_checker
-        self.tcp_checker = tcp_checker
-        self.serial_notify_event = threading.Event()
-        self.tcp_notify_event = threading.Event()
-        self.serial_result = None
-        self.tcp_result = None
-        self.serial_check_item_id = None
-        self.tcp_check_item_id = None
-        self.data_cache = None
-        self.fail_count = 0
-        self.test_case = test_case
-        pass
-
-    def log_error(self):
-        self.fail_count += 1
-        if self.fail_count > MAX_FAIL_COUNT:
-            self.test_case.error_detected()
-
-    def new_connection_structure(self):
-        connection = dict.fromkeys(CONNECTION_STRUCTURE, None)
-        connection["Connection handler"] = self
-        return connection
-
-    def run(self):
-        while self.exit_event.isSet() is False:
-            connection = self.new_connection_structure()
-            # do connect
-            connect_method_choice = random.choice(self.connect_method)
-            if self.utility.execute_tcp_method(connect_method_choice, connection) is False:
-                self.log_error()
-            # check if established
-            if self.utility.is_established_state(connection) is True:
-                time.sleep(float(random.randint(DELAY_RANGE[0], DELAY_RANGE[1]))/1000)
-                # do disconnect if established
-                disconnect_method_choice = random.choice(self.disconnect_method)
-                if self.utility.execute_tcp_method(disconnect_method_choice, connection) is False:
-                    self.log_error()
-            # make sure target socket closed
-            self.utility.close_connection(connection)
-            time.sleep(float(random.randint(DELAY_RANGE[0], DELAY_RANGE[1]))/1000)
-        pass
-
-    # serial_condition: re string
-    # tcp_condition: target local port
-    def add_checkers(self, serial_condition=None, tcp_condition=None):
-        # cleanup
-        self.serial_result = None
-        self.tcp_result = None
-        self.serial_notify_event.clear()
-        self.tcp_notify_event.clear()
-        # serial_checker
-        if serial_condition is not None:
-            pattern = re.compile(serial_condition)
-            self.serial_check_item_id = self.serial_checker.add_check_item(pattern, self.notifier)
-        else:
-            # set event so that serial check always pass
-            self.serial_notify_event.set()
-        if tcp_condition is not None:
-            self.tcp_check_item_id = self.tcp_checker.add_check_item(tcp_condition, self.notifier)
-        else:
-            # set event so that tcp check always pass
-            self.tcp_notify_event.set()
-        # NativeLog.add_trace_info("[Debug] add check item %s, connection is %s" % (self.serial_check_item_id, self))
-        pass
-
-    def get_checker_results(self, timeout=5):
-        time1 = time.time()
-        while time.time() - time1 < timeout:
-            # if one type of checker is not set, its event will be set in add_checkers
-            if self.serial_notify_event.isSet() is True and self.tcp_notify_event.isSet() is True:
-                break
-            time.sleep(self.CHECK_FREQ)
-        # do cleanup
-        # NativeLog.add_trace_info("[Debug] remove check item %s, connection is %s" % (self.serial_check_item_id, self))
-        self.data_cache = self.serial_checker.remove_check_item(self.serial_check_item_id)
-        self.tcp_checker.remove_check_item(self.tcp_check_item_id)
-        # self.serial_check_item_id = None
-        # self.tcp_check_item_id = None
-        return self.serial_result, self.tcp_result
-
-    def notifier(self, typ, result):
-        if typ == "serial":
-            self.serial_notify_event.set()
-            self.serial_result = result
-        elif typ == "tcp":
-            self.tcp_notify_event.set()
-            self.tcp_result = result
-
-    def exit(self):
-        self.exit_event.set()
-    pass
-
-
-class TestCase(PerformanceTCBase.PerformanceTCBase):
-    def __init__(self, test_case, test_env, timeout=120, log_path=None):
-        PerformanceTCBase.PerformanceTCBase.__init__(self, test_case, test_env,
-                                                     timeout=timeout, log_path=log_path)
-        self.max_connection = 5
-        self.execute_time = 120  # execute time default 120 minutes
-        self.pc_ip = "pc_ip"
-        self.target_ip = "target_ip"
-        self.connect_method = ["C_01"]
-        self.disconnect_method = ["D_05"]
-
-        cmd_set = test_case["cmd set"]
-        # load param from excel
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-
-        self.error_event = threading.Event()
-        self.serial_lock = threading.Lock()
-        pass
-
-    def serial_reader(self):
-        return self.serial_read_data("SSC1")
-
-    def send_ssc_command(self, data):
-        with self.serial_lock:
-            time.sleep(0.05)
-            self.serial_write_line("SSC1", data)
-
-    def error_detected(self):
-        self.error_event.set()
-
-    def process(self):
-        # parameters
-        max_connection = self.max_connection
-        execute_time = self.execute_time * 60
-        pc_ip = self.get_parameter(self.pc_ip)
-        target_ip = self.get_parameter(self.target_ip)
-        connect_method = self.connect_method
-        disconnect_method = self.disconnect_method
-        server_port = random.randint(30000, 50000)
-
-        # step 1, create TCP server on target and PC
-        # create TCP server on target
-        self.serial_write_line("SSC1", "soc -B -t TCP -p %s" % server_port)
-        match = self.check_regular_expression("SSC1", re.compile("BIND:(\d+),OK"))
-        if match is None:
-            NativeLog.add_prompt_trace("Failed to create TCP server on target")
-            return
-        target_sock_id = match.group(1)
-
-        self.serial_write_line("SSC1", "soc -L -s %s" % target_sock_id)
-        if self.check_response("SSC1", "+LISTEN:%s,OK" % target_sock_id) is False:
-            NativeLog.add_prompt_trace("Failed to create TCP server on target")
-            return
-
-        # create TCP server on PC
-        try:
-            server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
-            server_sock.bind((pc_ip, server_port))
-            server_sock.listen(5)
-        except StandardError:
-            NativeLog.add_prompt_trace("Failed to create TCP server on PC")
-            return
-
-        # step 2, create checker
-        serial_port_checker = SerialPortChecker(self.serial_reader)
-        tcp_server_checker = TCPServerChecker(server_sock)
-        serial_port_checker.start()
-        tcp_server_checker.start()
-
-        # step 3, create 5 thread and do connection
-        utility = TCPConnectionUtility.Utility(self, server_port, server_port, pc_ip, target_ip)
-        work_thread = []
-        for i in range(max_connection):
-            t = ConnectionHandler(utility, serial_port_checker, tcp_server_checker,
-                                  connect_method, disconnect_method, self)
-            work_thread.append(t)
-            t.start()
-
-        # step 4, wait and exit
-        self.error_event.wait(execute_time)
-        # close all threads
-        for t in work_thread:
-            t.exit()
-            t.join()
-        serial_port_checker.exit()
-        tcp_server_checker.exit()
-        serial_port_checker.join()
-        tcp_server_checker.join()
-
-        if self.error_event.isSet() is False:
-            # no error detected
-            self.set_result("Succeed")
-        pass
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPConnectionUtility.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPConnectionUtility.py
deleted file mode 100755 (executable)
index f28218a..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-import random
-import socket
-import threading
-
-from NativeLog import NativeLog
-
-# from NativeLog import NativeLog
-
-# make sure target do not listen on this port
-ERROR_PORT = 62685
-
-
-class Utility(object):
-    METHOD_RESULT = {"C_01": ("ESTABLISHED", "ESTABLISHED"),  # target TCP peer state, PC TCP peer state
-                     "C_02": ("SYNC_SENT", "CLOSED"),
-                     "C_03": ("CLOSED", "CLOSED"),
-                     "C_04": ("SYN_RCVD", "ESTABLISHED"),
-                     "C_05": ("ESTABLISHED", "ESTABLISHED"),
-                     "C_06": ("CLOSED", "CLOSED"),
-                     "C_07": ("CLOSED", "CLOSED"),
-                     "C_08": ("CLOSED", "CLOSED"),
-                     "D_01": ("TIME_WAIT", "CLOSED"),
-                     "D_02": ("TIME_WAIT", "TIME_WAIT"),
-                     "D_03": ("FIN_WAIT_2", "CLOSE_WAIT"),
-                     "D_04": ("FIN_WAIT_1", "CLOSE_WAIT"),
-                     "D_05": ("CLOSED", "TIME_WAIT"),
-                     "D_06": ("CLOSED", "CLOSED"),
-                     "D_07": ("CLOSE_WAIT", "FIN_WAIT2"),
-                     "D_08": ("TIME_WAIT", "CLOSED"), }
-
-    SOC_CLOSED_STATE = ("FIN_WAIT_1", "FIN_WAIT_2", "CLOSING", "TIME_WAIT", "LAST_ACK", "CLOSED")
-    SOC_CREATED_STATE = ("SYNC_RCVD", "ESTABLISHED")
-    SOC_SEND_DATA_STATE = ("ESTABLISHED", "CLOSE_WAIT")
-    SOC_ESTABLISHED_STATE = ("ESTABLISHED", )
-
-    def __init__(self, tc_action, pc_server_port, target_server_port, pc_ip, target_ip):
-        self.tc_action = tc_action
-        self.pc_server_port = pc_server_port
-        self.target_server_port = target_server_port
-        self.pc_ip = pc_ip
-        self.target_ip = target_ip
-        self.pc_close_wait_socket_list = []
-        self.sync_lock = threading.Lock()
-        pass
-
-    # create a tcp socket, return True or False
-    def __create_tcp_socket(self, connection):
-        connection_handler = connection["Connection handler"]
-        connection["Target port"] = random.randint(10000, 60000)
-        connection_handler.add_checkers("BIND:(\d+),OK,%s,%s"
-                                        % (self.target_ip, connection["Target port"]))
-        self.tc_action.send_ssc_command("soc -B -t TCP -i %s -p %s" % (self.target_ip, connection["Target port"]))
-        serial_result, tcp_result = connection_handler.get_checker_results()
-        if serial_result is not None:
-            connection["Target socket id"] = serial_result.group(1)
-            return True
-        else:
-            return False
-
-    # target do connect, return True or False
-    def __target_do_connect(self, connection, dest_ip, dest_port, timeout=20):
-        connection_handler = connection["Connection handler"]
-        connection_handler.add_checkers("CONNECT:%s,OK" % connection["Target socket id"],
-                                        connection["Target port"])
-        self.tc_action.send_ssc_command("soc -C -s %s -i %s -p %s"
-                                        % (connection["Target socket id"], dest_ip, dest_port))
-        serial_result, tcp_result = connection_handler.get_checker_results(timeout)
-        if serial_result is not None and tcp_result is not None:
-            connection["PC socket"] = tcp_result
-            return True
-        else:
-            return False
-        pass
-
-    # pc do connect, return True or False
-    def __pc_do_connect(self, connection, dest_ip, dest_port, timeout=20):
-        connection_handler = connection["Connection handler"]
-        sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
-        while True:
-            connection["PC port"] = random.randint(10000, 60000)
-            try:
-                sock.bind((self.pc_ip, connection["PC port"]))
-                break
-            except socket.error, e:
-                if e.errno == 10048:  # socket port reuse
-                    continue
-        sock.settimeout(timeout)
-        connection["PC socket"] = sock
-        connection_handler.add_checkers("ACCEPT:(\d+),\d+,%s,%s"
-                                        % (self.pc_ip, connection["PC port"]))
-        try:
-            sock.connect((dest_ip, dest_port))
-        except socket.error:
-            pass
-        serial_result, tcp_result = connection_handler.get_checker_results()
-        if serial_result is not None:
-            connection["Target socket id"] = serial_result.group(1)
-            return True
-        else:
-            return False
-        pass
-
-    def connect_c_01(self, connection):
-        if self.__create_tcp_socket(connection) is True:
-            return self.__target_do_connect(connection, self.pc_ip, self.pc_server_port)
-        else:
-            return False
-
-    def connect_c_02(self, connection):
-        if self.__create_tcp_socket(connection) is True:
-            return not self.__target_do_connect(connection, self.pc_ip, ERROR_PORT, timeout=5)
-        else:
-            return False
-
-    def connect_c_03(self, connection):
-        return False
-
-    def connect_c_04(self, connection):
-        return False
-
-    def connect_c_05(self, connection):
-        return self.__pc_do_connect(connection, self.target_ip, self.target_server_port)
-
-    def connect_c_06(self, connection):
-        return False
-
-    def connect_c_07(self, connection):
-        return not self.__pc_do_connect(connection, self.target_ip, ERROR_PORT)
-
-    def connect_c_08(self, connection):
-        return False
-
-    def __target_socket_close(self, connection):
-        connection_handler = connection["Connection handler"]
-        if connection["Target socket id"] is not None:
-            connection_handler.add_checkers("CLOSE:%s" % connection["Target socket id"])
-            self.tc_action.send_ssc_command("soc -T -s %s" % connection["Target socket id"])
-            serial_result, tcp_result = connection_handler.get_checker_results()
-            connection["Target socket id"] = None
-        else:
-            serial_result = None
-        return True if serial_result is not None else False
-
-    @staticmethod
-    def __pc_socket_close(connection):
-        connection_handler = connection["Connection handler"]
-        if connection["PC socket"] is not None:
-            connection_handler.add_checkers("CLOSED:%s" % connection["Target socket id"])
-            connection["PC socket"].close()
-            serial_result, tcp_result = connection_handler.get_checker_results()
-            connection["PC socket"] = None
-        else:
-            serial_result = None
-        return True if serial_result is not None else False
-
-    def close_d_01(self, connection):
-        connection["PC socket"] = None
-        return self.__target_socket_close(connection)
-
-    def close_d_02(self, connection):
-        pass
-
-    def close_d_03(self, connection):
-        with self.sync_lock:
-            self.pc_close_wait_socket_list.append(connection["PC socket"])
-        return self.__target_socket_close(connection)
-        pass
-
-    def close_d_04(self, connection):
-        pass
-
-    def close_d_05(self, connection):
-        return self.__pc_socket_close(connection)
-
-    def close_d_06(self, connection):
-        # target send data to PC, PC don't recv and close socket
-        connection_handler = connection["Connection handler"]
-        connection_handler.add_checkers("SEND:%s,OK" % connection["Target socket id"])
-        self.tc_action.send_ssc_command("soc -S -s %s -l 100" % connection["Target socket id"])
-        serial_result, tcp_result = connection_handler.get_checker_results()
-        if serial_result is None:
-            return False
-        return self.__pc_socket_close(connection)
-
-    def close_d_07(self, connection):
-        # PC shutdown WR
-        result = False
-        try:
-            connection["PC socket"].shutdown(socket.SHUT_WR)
-            result = True
-        except StandardError:
-            pass
-        return result
-
-    def close_d_08(self, connection):
-        pass
-
-    def close_connection(self, connection):
-        self.__target_socket_close(connection)
-        pass
-
-    TCP_ACTION_DICT = {"C_01": connect_c_01,
-                       "C_02": connect_c_02,
-                       "C_03": connect_c_03,
-                       "C_04": connect_c_04,
-                       "C_05": connect_c_05,
-                       "C_06": connect_c_06,
-                       "C_07": connect_c_07,
-                       "C_08": connect_c_08,
-                       "D_01": close_d_01,
-                       "D_02": close_d_02,
-                       "D_03": close_d_03,
-                       "D_04": close_d_04,
-                       "D_05": close_d_05,
-                       "D_06": close_d_06,
-                       "D_07": close_d_07,
-                       "D_08": close_d_08,
-                       }
-
-    def get_method_destination_state(self, method):
-        return self.METHOD_RESULT[method]
-
-    def execute_tcp_method(self, method, connection):
-        if method in self.METHOD_RESULT:
-            result = self.TCP_ACTION_DICT[method](self, connection)
-            if result is True:
-                state = self.get_method_destination_state(method)
-                connection["Target state"] = state[0]
-                connection["PC state"] = state[1]
-            else:
-                NativeLog.add_prompt_trace("[TCPConnection] tcp method %s fail, connection is %s"
-                                           % (method, connection))
-                NativeLog.add_trace_info("[TCPConnection][data cache][check item %s] %s"
-                                         % (connection["Connection handler"].serial_check_item_id,
-                                            connection["Connection handler"].data_cache))
-        else:
-            raise StandardError("Not TCP connection method")
-        return result
-
-    def is_established_state(self, connection):
-        return True if connection["Target state"] in self.SOC_CREATED_STATE else False
-
-    def is_closed_state(self, connection):
-        return True if connection["Target state"] in self.SOC_CLOSED_STATE else False
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPDataValidation.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPDataValidation.py
deleted file mode 100755 (executable)
index a06824c..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-import os
-import random
-import threading
-import socket
-import time
-import re
-
-from TCAction import TCActionBase
-from TCAction import PerformanceTCBase
-from NativeLog import NativeLog
-
-
-def calc_hash(index):
-    return (index & 0xffffffff) % 83 + (index & 0xffffffff) % 167
-
-
-def verify_data(data, start_index):
-    for i, c in enumerate(data):
-        if ord(c) != calc_hash(start_index + i):
-            NativeLog.add_trace_critical("[Data Validation Error] target sent data index %u is error."
-                                         " Sent data is %x, should be %x"
-                                         % (start_index + i, ord(c), calc_hash(start_index + i)))
-            return False
-    return True
-
-
-def make_validation_data(length, start_index):
-    return bytes().join([chr(calc_hash(start_index + i)) for i in range(length)])
-
-
-class SendThread(threading.Thread):
-    def __init__(self, sock, send_len):
-        threading.Thread.__init__(self)
-        self.setDaemon(True)
-        self.sock = sock
-        self.send_len = send_len
-        self.exit_event = threading.Event()
-        pass
-
-    def exit(self):
-        self.exit_event.set()
-
-    def run(self):
-        index = 0
-        while self.exit_event.isSet() is False:
-            data = make_validation_data(self.send_len, index)
-            try:
-                self.sock.send(data)
-                index += self.send_len
-            except StandardError:
-                # pass but not exit thread
-                time.sleep(1)
-                continue
-    pass
-
-
-class RecvThread(threading.Thread):
-    def __init__(self, sock):
-        threading.Thread.__init__(self)
-        self.setDaemon(True)
-        self.sock = sock
-        self.exit_event = threading.Event()
-
-    def exit(self):
-        self.exit_event.set()
-
-    def run(self):
-        index = 0
-        while self.exit_event.isSet() is False:
-            if self.sock is not None:
-                try:
-                    data = self.sock.recv(8*1024)
-                except StandardError, e:
-                    NativeLog.add_exception_log(e)
-                    NativeLog.add_trace_critical("recv error, connection closed")
-                    break
-                if verify_data(data, index) is not True:
-                    break
-                index += len(data)
-            else:
-                time.sleep(1)
-    pass
-
-
-class ValidationThread(threading.Thread):
-    def __init__(self, tc_action):
-        threading.Thread.__init__(self)
-        self.setDaemon(True)
-        self.tc_action = tc_action
-        self.exit_event = threading.Event()
-
-    def exit(self):
-        self.exit_event.set()
-
-    def run(self):
-        while self.exit_event.isSet() is False:
-            if self.tc_action.check_response("SSC1", "DATA_ERROR", 5) is True:
-                NativeLog.add_trace_critical("[Data Validation Error] target recv data error")
-                break
-    pass
-
-
-class TestCase(PerformanceTCBase.PerformanceTCBase):
-
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        PerformanceTCBase.PerformanceTCBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        self.send_len = 0
-        self.tx_enable = None
-        self.rx_enable = None
-        self.conn_num = 0
-        self.test_time = 0
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            tx_enable = self.tx_enable
-            rx_enable = self.rx_enable
-            conn_num = self.conn_num
-            test_time = self.test_time * 60  # convert minutes to seconds
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # init throughput result data
-        test_item = ""
-        if tx_enable is True:
-            test_item += "Tx"
-        if rx_enable is True:
-            test_item += "Rx"
-        if test_item == "":
-            raise StandardError("no throughput test item")
-
-        pc_ip = self.get_parameter("pc_ip")
-        tcp_port = random.randint(10000, 50000)
-
-        # disable recv print during throughput test
-        self.serial_write_line("SSC1", "soc -R -o 0")
-        if self.check_response("SSC1", "+RECVPRINT", 2) is False:
-            NativeLog.add_trace_critical("Fail, Fail to disable recv print")
-
-        # create server
-        server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
-        server_sock.bind((pc_ip, tcp_port))
-        server_sock.settimeout(5)
-        server_sock.listen(5)
-
-        sock_id_list = []
-        send_thread_list = []
-        recv_thread_list = []
-
-        # step 4 create tcp connection
-        for i in range(conn_num):
-            self.serial_write_line("SSC1", "soc -B -t TCP")
-            match = self.check_regular_expression("SSC1", re.compile("\+BIND:(\d+),OK"), 2)
-            if match is None:
-                NativeLog.add_trace_critical("Fail, Fail to bind")
-                return
-            else:
-                sock_id_list.append(int(match.group(1)))
-
-            self.serial_write_line("SSC1", "soc -V -s %s -o 3" % sock_id_list[-1])
-            if self.check_regular_expression("SSC1", re.compile("\+DATA_VALIDATION:\d+,OK"), 2) is None:
-                NativeLog.add_trace_critical("Fail, Failed to enable validation")
-                return
-
-            self.serial_write_line("SSC1", "soc -C -s %s -i %s -p %s" % (sock_id_list[-1], pc_ip, tcp_port))
-            try:
-                sock, addr = server_sock.accept()
-            except socket.error, e:
-                NativeLog.add_trace_critical("%s" % e)
-                raise e
-
-            if self.check_regular_expression("SSC1", re.compile("\+CONNECT:\d+,OK"), 5) is None:
-                NativeLog.add_trace_critical("Fail, Failed to connect")
-                return
-
-            sock.settimeout(10)
-
-            send_thread_list.append(SendThread(sock if rx_enable is True else None, send_len))
-            recv_thread_list.append(RecvThread(sock if tx_enable is True else None))
-            recv_thread_list[-1].start()
-
-        # step 5 do test
-        validation_thread = ValidationThread(self)
-        validation_thread.start()
-
-        for send_thread in send_thread_list:
-            send_thread.start()
-
-        if tx_enable is True:
-            # do send from target
-            for sock_id in sock_id_list:
-                self.serial_write_line("SSC1", "soc -S -s %s -l %s -n 10000000" % (sock_id, send_len))
-
-        time1 = time.time()
-        exit_flag = False
-
-        while time.time() - time1 < test_time and exit_flag is False:
-            for i in sock_id_list:
-                send_thread_list[i].join(0.5)
-                recv_thread_list[i].join(0.5)
-                validation_thread.join(0.5)
-                if send_thread_list[i].isAlive() is False \
-                        or recv_thread_list[i].isAlive() is False \
-                        or validation_thread.isAlive() is False:
-                    NativeLog.add_trace_critical("validation error found")
-                    exit_flag = True
-                    break
-
-        NativeLog.add_prompt_trace("time escape: %s" % (time.time() - time1))
-
-        if time.time() - time1 >= test_time:
-            self.set_result("Succeed")
-        else:
-             self.set_result("Failed")
-
-        # exit all thread
-        for i in sock_id_list:
-            send_thread_list[i].exit()
-            recv_thread_list[i].exit()
-            send_thread_list[i].join()
-            send_thread_list[i].join()
-
-        validation_thread.exit()
-        validation_thread.join()
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPMultiSTASendRecv.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPMultiSTASendRecv.py
deleted file mode 100644 (file)
index 56cb7e6..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-import time
-import random
-import string
-
-TEST_COUNT_ONE_ROUND = 500
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-    def __init__(self, test_case, test_env, timeout=45, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            test_time = self.test_time * 60
-            server_echo = self.server_echo
-            sta_number = self.sta_number
-            send_delay = self.send_delay
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # step0 reboot
-        for i in range(sta_number + 1):
-            checker_stings = ["P SSC%d C ready!!!" % (i + 1)]
-            test_action_string = ["SSCC SSC%d restore" % (i + 1)]
-            fail_string = "Fail, Fail to restore"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # turn off recv print
-        for i in range(sta_number + 1):
-            checker_stings = ["P SSC%d C +RECVPRINT:0" % (i + 1)]
-            test_action_string = ["SSCC SSC%d soc -R -o 0" % (i + 1)]
-            fail_string = "Fail, Fail to turn off recv print"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # step1, set softap mode on SSC1
-        checker_stings = ["R SSC1 C +MODE:OK"]
-        test_action_string = ["SSCC SSC1 op -S -o 2"]
-        fail_string = "Fail, Fail to set mode on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step2, set STA mode on SSC2-SSCn
-        for i in range(sta_number):
-            checker_stings = ["R SSC%d C +MODE:OK" % (i + 2)]
-            test_action_string = ["SSCC SSC%d op -S -o 1" % (i + 2)]
-            fail_string = "Fail, Fail to set mode on SSC%d" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        ssid = "".join([random.choice(string.lowercase) for m in range(10)])
-        password = "".join([random.choice(string.lowercase) for m in range(10)])
-        tcp_port = random.randint(40000, 50000)
-
-        # step3, set ssid/password on SSC1
-        checker_stings = ["R SSC1 C +SAP:OK"]
-        test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 10" % (ssid, password)]
-        fail_string = "Fail, Fail to set ssid/password on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step4, SSC2-SSCn join SSC1(soft AP)
-        for i in range(sta_number):
-            checker_stings = ["P SSC%d C +JAP:CONNECTED,%s" % (i + 2, ssid)]
-            test_action_string = ["SSCC SSC%d ap -C -s %s -p %s" % (i + 2, ssid, password)]
-            fail_string = "Fail, SSC%d Fail to connect to SSC1" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=450) is False:
-                return
-
-        # step5, create server on SSC2
-        checker_stings = ["R SSC2 A <server_sock>:BIND:(\d+),OK"]
-        test_action_string = ["SSCC SSC2 soc -B -t TCP -p %s" % tcp_port]
-        fail_string = "Fail, Fail to create server on SSC2 while binding"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC2 RE LISTEN:(\d+),OK"]
-        test_action_string = ["SSCC SSC2 soc -L -s <server_sock>"]
-        fail_string = "Fail, Fail to create server on SSC2 while listening"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step6, create client on SSC3-SSCn
-        for i in range(sta_number - 1):
-            checker_stings = ["P SSC%d A <client_sock%d>:BIND:(\d+),OK" % (i + 3, i + 3)]
-            test_action_string = ["SSCC SSC%d soc -B -t TCP" % (i + 3)]
-            fail_string = "Fail, SSC%d Fail to connect to TCP server while binding" % (i + 3)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        for i in range(sta_number - 1):
-            checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i + 3), "P SSC2 A <accept_sock%d>:ACCEPT:(\d+),.+" % i]
-            test_action_string = [
-                "SSCC SSC%d soc -C -s <client_sock%d> -i 192.168.4.2 -p %s" % (i + 3, i + 3, tcp_port)]
-            fail_string = "Fail, SSC%d Fail to connect to TCP server while connecting" % (i + 3)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        start_time = time.time()
-        # step7, do send/recv, SSC2<---->other STAs
-        while time.time() - start_time < test_time:
-            checker_stings = []
-            test_action_string = []
-            # SSC2 send packets to SSC3-SSCn
-            if server_echo is True:
-                for i in range(sta_number - 1):
-                    test_action_string.append("SSC SSC2 soc -S -s <accept_sock%d> -l %d -n 1000 -j %d" %
-                                              (i, send_len, send_delay))
-                    checker_stings.append(
-                        "P SSC2 RE \+SEND:%s,OK NC CLOSED NC ERROR" % self.get_parameter("accept_sock%d" % (i + 3)))
-
-            # SSC3-SSCn send packets to SSC2
-            for i in range(sta_number - 1):
-                checker_stings.append(
-                    "P SSC%d RE \+SEND:%s,OK NC CLOSED NC ERROR" % (i + 3, self.get_parameter("client_sock%d" % i)))
-                test_action_string.append("SSC SSC%d soc -S -s <client_sock%d> -l %d -n 1000 -j %d" %
-                                          (i + 3, i + 3, send_len, send_delay))
-
-            fail_string = "Fail, Failed to send/recv data"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                          check_freq=1, check_time=900) is False:
-                break
-
-            # drop off the delay time if it's greater than 20ms
-            if send_delay > 20:
-                send_delay -= 10
-
-        NativeLog.add_trace_critical("Time escape: %d" % (time.time() - start_time))
-
-        if (time.time() - start_time) >= test_time:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Failed")
-
-            # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPRandomSend.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPRandomSend.py
deleted file mode 100755 (executable)
index e32c63b..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-import os
-import time
-import random
-import threading
-import socket
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-from NativeLog import ThroughputResult
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        self.send_len_config = range(1460)
-        self.delay_config = [0, 0.01, 0.1, 0.5, 1]
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len_config = self.send_len_config
-            delay_config = self.delay_config
-            send_count = self.send_count
-            test_time = self.test_time * 60
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # disable recv print during random send test
-        checker_stings = ["R SSC1 C +RECVPRINT"]
-        test_action_string = ["SSC SSC1 soc -R -o 0"]
-        fail_string = "Fail, Fail to disable recv print"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        pc_ip = self.get_parameter("pc_ip")
-        tcp_port = random.randint(50000, 60000)
-
-        # step 0 create tcp connection
-
-        server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
-        server_sock.bind((pc_ip, tcp_port))
-        server_sock.settimeout(1)
-        server_sock.listen(5)
-
-        checker_stings = ["R SSC1 A <client_sock>:\+BIND:(\d+),OK"]
-        test_action_string = ["SSC SSC1 soc -B -t TCP"]
-        fail_string = "Fail, Fail bind"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["P SSC1 RE \+CONNECT:\d+,OK"]
-        test_action_string = ["SSC SSC1 soc -C -s <client_sock> -i %s -p %s" % (pc_ip, tcp_port)]
-        fail_string = "Fail, Fail to connect"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        sock, addr = server_sock.accept()
-        sock.settimeout(10)
-        # set no delay so that tcp segment will be send as soon as send called
-        sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
-
-        # step 1 start send
-        start_time = time.time()
-        while time.time() - start_time < test_time:
-            for delay in delay_config:
-                for i in xrange(send_count):
-                    send_len = random.choice(send_len_config)
-                    data = "A" * (send_len+1)
-                    try:
-                        sock.send(data)
-                    except socket.error, e:
-                        NativeLog.add_exception_log(e)
-                        NativeLog.add_trace_critical("Fail to send packets")
-                        return
-                        pass
-                    time.sleep(delay)
-
-        NativeLog.add_prompt_trace("time escape: %s" % (time.time() - start_time))
-
-        if (time.time() - start_time) > test_time:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Failed")
-
-        # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSTAMuitiSockSendRecv.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSTAMuitiSockSendRecv.py
deleted file mode 100644 (file)
index 5625756..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-import time
-import random
-import string
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-    def __init__(self, test_case, test_env, timeout=45, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout, log_path)
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            server_echo = self.server_echo
-            conn_number = self.conn_number
-            sta_number = self.sta_number
-            test_time = self.test_time
-            send_delay = self.send_delay
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # step0 reboot
-        for i in range(sta_number + 1):
-            checker_stings = ["P SSC%d C !!!ready!!!" % (i + 1)]
-            test_action_string = ["SSCC SSC%d reboot" % (i + 1)]
-            fail_string = "Fail, Fail to reboot"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # step1, set ap mode on SSC1, set STA mode on SSC2-SSC3
-        checker_stings = ["R SSC1 C +MODE:OK"]
-        test_action_string = ["SSCC SSC1 op -S -o 2"]
-        fail_string = "Fail, Fail to set mode on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        for i in range(sta_number):
-            checker_stings = ["R SSC%d C +MODE:OK" % (i + 2)]
-            test_action_string = ["SSCC SSC%d op -S -o 1" % (i + 2)]
-            fail_string = "Fail, Fail to set mode on SSC%d" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # turn off recv print
-        for i in range(sta_number + 1):
-            checker_stings = ["P SSC%d C +RECVPRINT:0" % (i + 1)]
-            test_action_string = ["SSCC SSC%d soc -R -o 0" % (i + 1)]
-            fail_string = "Fail, Fail to turn off recv print"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # step2, set ssid/password on SSC1
-        ssid = "".join([random.choice(string.lowercase) for m in range(10)])
-        password = "".join([random.choice(string.lowercase) for m in range(10)])
-        tcp_port = random.randint(10000, 20000)
-
-        checker_stings = ["R SSC1 C +SAP:OK"]
-        test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -t 3 -m 8" % (ssid, password)]
-        fail_string = "Fail, Fail to set ssid/password on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step3, SSC2-SSC3 connect to SSC1
-        checker_stings = []
-        test_action_string = []
-        for i in range(sta_number):
-            checker_stings.append("P SSC%d C +JAP:CONNECTED,%s" % (i + 2, ssid))
-            test_action_string.append("SSCC SSC%d ap -C -s %s -p %s" % (i + 2, ssid, password))
-            fail_string = "Fail, SSC%d Fail to connect to SoftAP" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=450) is False:
-                return
-
-        # step4, create tcp server on STA SSC2
-        checker_stings = ["R SSC2 A <server_sock>:BIND:(\d+),OK"]
-        test_action_string = ["SSCC SSC2 soc -B -t TCP -p %s" % tcp_port]
-        fail_string = "Fail, Fail to create server on SSC2 while binding"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC2 RE LISTEN:(\d+),OK"]
-        test_action_string = ["SSCC SSC2 soc -L -s <server_sock>"]
-        fail_string = "Fail, Fail to create server on SSC2 while listening"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step5, create multi client on SSC3
-        for i in range(conn_number):
-            checker_stings = ["P SSC3 A <client_sock%d>:BIND:(\d+),OK" % i]
-            test_action_string = ["SSCC SSC3 soc -B -t TCP"]
-            fail_string = "Fail, Fail to create client on SSC3"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-            checker_stings = ["P SSC3 RE CONNECT:(\d+),OK", "P SSC2 A <accept_sock%d>:ACCEPT:(\d+),.+" % i]
-            test_action_string = ["SSCC SSC3 soc -C -s <client_sock%d> -i %s -p %s" % (i, "192.168.4.2", tcp_port)]
-            fail_string = "Fail, Fail to connect to SSC2 server while connecting"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        start_time = time.time()
-        # step6, do send/recv
-        while time.time() - start_time < test_time:
-            checker_stings = []
-            test_action_string = []
-            # SSC2 send packets to SSC3
-            if server_echo is True:
-                for i in range(conn_number):
-                    checker_stings.append("P SSC2 RE \+SEND:\d+,OK NC CLOSED NC ERROR")
-                    test_action_string.append("SSC SSC2 soc -S -s <accept_sock%d> -l %d -n 1000 -j %d" %
-                                              (i, send_len, send_delay))
-            # SSC3 send packets to SSC2
-            for i in range(conn_number):
-                test_action_string.append("SSC SSC3 soc -S -s <client_sock%d> -l %d -n 1000 -j %d" %
-                                          (i, send_len, send_delay))
-                checker_stings.append("P SSC3 RE \+SEND:\d+,OK NC CLOSED NC ERROR")
-
-            fail_string = "Fail, Failed to send/recv data"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                          check_freq=1, check_time=600) is False:
-                break
-
-            if send_delay > 20:
-                send_delay -= 10
-
-        NativeLog.add_trace_critical("Time escape: %d" % (time.time() - start_time))
-
-        if (time.time() - start_time) > test_time:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Failed")
-
-            # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSTAsendrecv.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSTAsendrecv.py
deleted file mode 100644 (file)
index 8fd0d7d..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-import time
-import random
-import string
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-    def __init__(self, test_case, test_env, timeout=45, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout, log_path)
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            server_echo = self.server_echo
-            conn_number = self.conn_number
-            sta_number = self.sta_number
-            test_time = self.test_time * 60
-            send_delay = self.send_delay
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # step0 reboot
-        for i in range(sta_number + 1):
-            checker_stings = ["P SSC%d C ready!!!" % (i + 1)]
-            test_action_string = ["SSCC SSC%d restore" % (i + 1)]
-            fail_string = "Fail, Fail to restore"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # step1, set ap mode on SSC1, set STA mode on SSC2-SSC3
-        checker_stings = ["R SSC1 C +MODE:OK"]
-        test_action_string = ["SSCC SSC1 op -S -o 2"]
-        fail_string = "Fail, Fail to set mode on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        for i in range(sta_number):
-            checker_stings = ["R SSC%d C +MODE:OK" % (i + 2)]
-            test_action_string = ["SSCC SSC%d op -S -o 1" % (i + 2)]
-            fail_string = "Fail, Fail to set mode on SSC%d" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # turn off recv print
-        for i in range(sta_number + 1):
-            checker_stings = ["P SSC%d C +RECVPRINT:0" % (i + 1)]
-            test_action_string = ["SSCC SSC%d soc -R -o 0" % (i + 1)]
-            fail_string = "Fail, Fail to turn off recv print"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # step2, set ssid/password on SSC1
-        ssid = "".join([random.choice(string.lowercase) for m in range(10)])
-        password = "".join([random.choice(string.lowercase) for m in range(10)])
-        tcp_port = random.randint(10000, 20000)
-
-        checker_stings = ["R SSC1 C +SAP:OK"]
-        test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 10" % (ssid, password)]
-        fail_string = "Fail, Fail to set ssid/password on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step3, SSC2-SSC3 connect to SSC1
-        checker_stings = []
-        test_action_string = []
-        for i in range(sta_number):
-            checker_stings.append("P SSC%d C +JAP:CONNECTED,%s" % (i + 2, ssid))
-            test_action_string.append("SSCC SSC%d ap -C -s %s -p %s" % (i + 2, ssid, password))
-            fail_string = "Fail, SSC%d Fail to connect to SoftAP" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=450) is False:
-                return
-
-        # step4, create tcp server on STA SSC2
-        checker_stings = ["R SSC2 A <server_sock>:BIND:(\d+),OK"]
-        test_action_string = ["SSCC SSC2 soc -B -t TCP -p %s" % tcp_port]
-        fail_string = "Fail, Fail to create server on SSC2 while binding"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC2 RE LISTEN:(\d+),OK"]
-        test_action_string = ["SSCC SSC2 soc -L -s <server_sock>"]
-        fail_string = "Fail, Fail to create server on SSC2 while listening"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step5, create multi client on SSC3
-        for i in range(conn_number):
-            checker_stings = ["P SSC3 A <client_sock%d>:BIND:(\d+),OK" % i]
-            test_action_string = ["SSCC SSC3 soc -B -t TCP"]
-            fail_string = "Fail, Fail to create client on SSC3"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-            checker_stings = ["P SSC3 RE CONNECT:(\d+),OK", "P SSC2 A <accept_sock%d>:ACCEPT:(\d+),.+ NC ERROR" % i]
-            test_action_string = ["SSCC SSC3 soc -C -s <client_sock%d> -i %s -p %s" % (i, "192.168.4.2", tcp_port)]
-            fail_string = "Fail, Fail to connect to SSC2 server while connecting"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        start_time = time.time()
-        # step6, do send/recv
-        while time.time() - start_time < test_time:
-            checker_stings = []
-            test_action_string = []
-            # SSC2 send packets to SSC3
-            if server_echo is True:
-                for i in range(conn_number):
-                    checker_stings.append(
-                        "P SSC2 RE \+SEND:%s,OK NC CLOSED NC ERROR NC unexpected" % self.get_parameter(
-                            "accept_sock%d" % i))
-                    test_action_string.append("SSC SSC2 soc -S -s <accept_sock%d> -l %d -n 1000 -j %d" %
-                                              (i, send_len, send_delay))
-            # SSC3 send packets to SSC2
-            for i in range(conn_number):
-                test_action_string.append("SSC SSC3 soc -S -s <client_sock%d> -l %d -n 1000 -j %d" %
-                                          (i, send_len, send_delay))
-                checker_stings.append(
-                    "P SSC3 RE \+SEND:%s,OK NC CLOSED NC ERROR" % self.get_parameter("client_sock%d" % i))
-
-            fail_string = "Fail, Failed to send/recv data"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                          check_freq=1, check_time=900) is False:
-                # checker_stings = ["R SSC1 C +LSTADONE"]
-                # test_action_string = ["SSCC SSC1 ap -L"]
-                # fail_string = ""
-                # if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                #     pass
-                break
-
-            if send_delay > 20:
-                send_delay -= 10
-
-        NativeLog.add_trace_critical("Time escape: %d" % (time.time() - start_time))
-
-        if (time.time() - start_time) > test_time:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Failed")
-
-            # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSendRecv.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSendRecv.py
deleted file mode 100755 (executable)
index afc3804..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-import time
-import random
-import string
-
-TEST_COUNT_ONE_ROUND = 1000
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def cleanup(self):
-        # step 0 turn on recv print
-        checker_stings = ["P SSC1 C +RECVPRINT:1", "P SSC2 C +RECVPRINT:1"]
-        test_action_string = ["SSC SSC1 soc -R -o 1", "SSC SSC2 soc -R -o 1"]
-        fail_string = "Fail, Fail to turn on recv print"
-        self.load_and_exe_one_step(checker_stings, test_action_string, fail_string)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            test_time = self.test_time * 60
-            duplex = self.duplex
-            conn_num = self.conn_num
-            send_delay = self.send_delay
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPSendRecv script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        ssid = "".join([random.choice(string.lowercase) for m in range(10)])
-        password = "".join([random.choice(string.lowercase) for m in range(10)])
-        tcp_port = random.randint(10000, 50000)
-
-        # step 0 set ap
-        checker_stings = ["R SSC1 C +SAP:OK"]
-        test_action_string = ["SSC SSC1 ap -S -s %s -p %s -t 3" % (ssid, password)]
-        fail_string = "Fail, Fail to set ap"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            self.result_cntx.set_result("Fail")
-            return
-
-        # step 1 connect to ap and turn off recv print
-        checker_stings = ["R SSC2 C +JAP:CONNECTED"]
-        test_action_string = ["SSC SSC2 sta -C -s %s -p %s" % (ssid, password)]
-        fail_string = "Fail, Fail to connect to server"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False:
-            self.result_cntx.set_result("Fail")
-            return
-
-        checker_stings = ["P SSC1 C +RECVPRINT:0", "P SSC2 C +RECVPRINT:0"]
-        test_action_string = ["SSC SSC1 soc -R -o 0", "SSC SSC2 soc -R -o 0"]
-        fail_string = "Fail, Fail to turn off recv print"
-        self.load_and_exe_one_step(checker_stings, test_action_string, fail_string)
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False:
-            self.result_cntx.set_result("Fail")
-            return
-
-        # step 2 create server on AP
-        checker_stings = ["R SSC1 A <server_sock>:\+BIND:(\d+),OK"]
-        test_action_string = ["SSC SSC1 soc -B -t TCP -p %s" % tcp_port]
-        fail_string = "Fail, Fail to create server"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            self.result_cntx.set_result("Fail")
-            return
-
-        checker_stings = ["R SSC1 A <server_sock>:\+LISTEN:(\d+),OK"]
-        test_action_string = ["SSC SSC1 soc -L -s <server_sock>"]
-        fail_string = "Fail, Fail to create server"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            self.result_cntx.set_result("Fail")
-            return
-
-        # step 3 create conn_num tcp connections
-        for i in range(conn_num):
-            checker_stings = ["R SSC2 A <client_sock%s>:\+BIND:(\d+),OK" % i]
-            test_action_string = ["SSC SSC2 soc -B -t TCP"]
-            fail_string = "Fail, Fail to bind"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                self.result_cntx.set_result("Fail")
-                return
-
-            checker_stings = ["P SSC1 A <accept_sock%s>:\+ACCEPT:(\d+),\d+" % i,
-                              "P SSC2 RE \+CONNECT:\d+,OK"]
-            test_action_string = ["SSC SSC2 soc -C -s <client_sock%s> -i <target_ap_ip> -p %s" % (i, tcp_port)]
-            fail_string = "Fail, Fail to connect"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                self.result_cntx.set_result("Fail")
-                return
-
-        start_time = time.time()
-        # step 4, do send/recv
-        while time.time()-start_time < test_time:
-
-            checker_stings = ["P SSC1 NC ERROR NC CLOSE NC ERROR"]
-            for i in range(conn_num):
-                test_action_string = ["SSC SSC2 soc -S -s <client_sock%d> -l %d -n %d -j %d" %
-                                      (i, send_len, TEST_COUNT_ONE_ROUND, send_delay)]
-                checker_stings.append("P SSC2 RE \"\+SEND:%%%%s,OK\"%%%%(<client_sock%d>) NC ERROR NC CLOSE" % i)
-
-                if duplex is True:
-                    checker_stings.append("P SSC1 RE \"\+SEND:%%%%s,OK\"%%%%(<accept_sock%d>)" % i)
-                    test_action_string.append("SSC SSC1 soc -S -s <accept_sock%d> -l %d -n %d -j %d" %
-                                              (i, send_len, TEST_COUNT_ONE_ROUND, send_delay))
-
-                fail_string = "Fail, Failed on send command"
-                if self.load_and_exe_one_step([], test_action_string, fail_string) is False:
-                    self.result_cntx.set_result("Fail")
-                    break
-
-            fail_string = "Fail, Failed to send/recv data"
-            if self.load_and_exe_one_step(checker_stings, ["DELAY 0.1"], fail_string,
-                                          check_freq=1, check_time=300) is False:
-                NativeLog.add_prompt_trace("time escape: %s" % (time.time() - start_time))
-                self.result_cntx.set_result("Fail")
-                return
-
-        NativeLog.add_prompt_trace("time escape: %s" % (time.time() - start_time))
-
-        if (time.time() - start_time) >= test_time:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Failed")
-
-        # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
-
-
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py
deleted file mode 100644 (file)
index bd66559..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-import time
-import random
-import string
-
-TEST_COUNT_ONE_ROUND = 500
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-    def __init__(self, test_case, test_env, timeout=45, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env,
-                                                 timeout=timeout, log_path=log_path)
-        self.send_len = 1460
-        self.server_port = random.randint(10000, 50000)
-        self.server_port_2 = random.randint(10000, 50000)
-        self.server_echo = True
-        self.test_time = 12 * 60
-        self.sta_number = 3
-        self.send_delay = 50
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def cleanup(self):
-        checker_stings = []
-        test_action_strings = []
-        for i in range(self.sta_number + 2):
-            checker_stings.append("R SSC%s C +RECVPRINT:1" % (i+1))
-            test_action_strings.append("SSC SSC%s soc -R -o 1" % (i+1))
-            fail_string = "Fail, Fail to turn on recv print"
-            self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            test_time = self.test_time * 60
-            # server port
-            server_port = self.server_port
-            server_port_t = self.server_port_2
-            # ap ip
-            # ap_ip = self.ap_ip
-            # server echo
-            server_echo = self.server_echo
-            # station number
-            sta_number = self.sta_number
-            # send delay
-            send_delay = self.send_delay
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # step0 reboot
-        checker_stings = []
-        test_action_string = []
-
-        for i in range(sta_number + 2):
-            checker_stings.append("P SSC%d C !!!ready!!!" % (i + 1))
-            test_action_string.append("SSCC SSC%d reboot" % (i + 1))
-
-            fail_string = "Fail, Fail to reboot"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # switch off recv print
-        checker_stings = []
-        test_action_strings = []
-        for i in range(self.sta_number + 2):
-            checker_stings.append("R SSC%s C +RECVPRINT:0" % (i+1))
-            test_action_strings.append("SSC SSC%s soc -R -o 0" % (i+1))
-            fail_string = "Fail, Fail to turn off recv print"
-            self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string)
-
-        # step1, set ap/STA mode on all target
-        for i in range(sta_number + 2):
-            checker_stings = ["R SSC%d C +MODE:OK" % (i + 1)]
-            test_action_string = ["SSCC SSC%d op -S -o 3" % (i + 1)]
-            fail_string = "Fail, Fail to set mode on SSC%d" % (i + 1)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # set different getway for SSC1 softAP
-        checker_stings = ["R SSC1 C +DHCP:AP,OK"]
-        test_action_string = ["SSCC SSC1 dhcp -E -o 2"]
-        fail_string = "Fail, SSC1 Fail to disable DHCP"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC1 C +IP:OK"]
-        test_action_string = ["SSCC SSC1 ip -S -o 2 -i 192.168.6.1"]
-        fail_string = "Fail, SSC1 Fail to set IP"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC1 C +DHCP:AP,OK"]
-        test_action_string = ["SSCC SSC1 dhcp -S -o 2"]
-        fail_string = "Fail, SSC1 Fail to enable DHCP"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # set different getway for SSC2 softAP
-        checker_stings = ["R SSC2 C +DHCP:AP,OK"]
-        test_action_string = ["SSCC SSC2 dhcp -E -o 2"]
-        fail_string = "Fail, SSC2 Fail to disable DHCP"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC2 C +IP:OK"]
-        test_action_string = ["SSCC SSC2 ip -S -o 2 -i 192.168.5.1"]
-        fail_string = "Fail, SSC2 Fail to set IP"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC2 C +DHCP:AP,OK"]
-        test_action_string = ["SSCC SSC2 dhcp -S -o 2"]
-        fail_string = "Fail, SSC2 Fail to enable DHCP"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step2, set ssid/password on SSC1
-        ssid = "".join([random.choice(string.lowercase) for m in range(10)])
-        password = "".join([random.choice(string.lowercase) for m in range(10)])
-        checker_stings = ["R SSC1 C +SAP:OK"]
-        test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid, password)]
-        fail_string = "Fail, Fail to set ssid/password on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step3, set ssid/password on SSC2
-        ssid_1 = "".join([random.choice(string.lowercase) for m in range(10)])
-        password_1 = "".join([random.choice(string.lowercase) for m in range(10)])
-        checker_stings = ["R SSC2 C +SAP:OK"]
-        test_action_string = ["SSCC SSC2 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid_1, password_1)]
-        fail_string = "Fail, Fail to set ap ssid/password on SSC2"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step4, SSC2 join SSC1(soft AP)
-        checker_stings = []
-        test_action_string = []
-        checker_stings.append("P SSC2 C +JAP:CONNECTED,%s" % ssid)
-        test_action_string.append("SSCC SSC2 ap -C -s %s -p %s" % (ssid, password))
-        fail_string = "Fail, Fail to connect to SSC1 SoftAP"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-        # step5, create server on SSC1
-        checker_stings = ["R SSC1 A <server_sock>:BIND:(\d+),OK"]
-        test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port]
-        fail_string = "Fail, Fail to create server on SSC1 while binding"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"]
-        test_action_string = ["SSCC SSC1 soc -L -s <server_sock>"]
-        fail_string = "Fail, Fail to create server on SSC1 while listening"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step6, create client on SSC2
-        checker_stings = []
-        test_action_string = []
-        checker_stings.append("P SSC2 A <client_sock>:BIND:(\d+),OK")
-        test_action_string.append("SSCC SSC2 soc -B -t TCP")
-        fail_string = "Fail, SSC2 Fail to connect to server while binding"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["P SSC2 RE CONNECT:(\d+),OK", "P SSC1 A <accept_sock>:ACCEPT:(\d+),.+"]
-        test_action_string = ["SSCC SSC2 soc -C -s <client_sock> -i %s -p %s" % ("192.168.6.1", server_port)]
-        fail_string = "Fail, SSC2 Fail to connect to server while connecting"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step7, SSC3 - SSC5 join SSC2
-        checker_stings = []
-        test_action_string = []
-        for i in range(sta_number):
-            checker_stings.append("P SSC%d C +JAP:CONNECTED,%s" % (i + 3, ssid_1))
-            test_action_string.append("SSCC SSC%d ap -C -s %s -p %s" % (i + 3, ssid_1, password_1))
-            fail_string = "Fail, SSC%d Fail to connect to SSC2" % (i + 3)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=450) is False:
-                return
-
-        # step8, create server on SSC2
-        checker_stings = ["R SSC2 A <server_sock_t>:BIND:(\d+),OK"]
-        test_action_string = ["SSCC SSC2 soc -B -t TCP -p %s -i 192.168.5.1" % server_port_t]
-        fail_string = "Fail, Fail to create server one SSC2 while binding"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        checker_stings = ["R SSC2 RE LISTEN:(\d+),OK"]
-        test_action_string = ["SSCC SSC2 soc -L -s <server_sock_t>"]
-        fail_string = "Fail, Fail to create server one SSC2 while listening"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step9, create client on SSC3 - SSC5
-        checker_stings = []
-        test_action_string = []
-        for i in range(sta_number):
-            checker_stings.append("P SSC%d A <client_sock%d>:BIND:(\d+),OK" % (i + 3, i + 3))
-            test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i + 3))
-        fail_string = "Fail, Fail to connect to SSC2 server while binding"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        for i in range(sta_number):
-            checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i + 3),
-                              "P SSC2 A <accept_sock%d>:ACCEPT:(\d+),.+" % (i + 3)]
-            test_action_string = ["SSCC SSC%d soc -C -s <client_sock%d> -i %s -p %s" %
-                                  (i + 3, i + 3, "192.168.5.1", server_port_t)]
-            fail_string = "Fail, Fail to connect to SSC2 server while connecting"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        start_time = time.time()
-        # step 10, do send/recv
-        while time.time() - start_time < test_time:
-
-            checker_stings = []
-            test_action_string = []
-            if server_echo is True:
-                test_action_string.append("SSC SSC1 soc -S -s <accept_sock> -l %d -n %d -j %d" %
-                                          (send_len, TEST_COUNT_ONE_ROUND, send_delay))
-                checker_stings.append("P SSC1 RE \+SEND:\d+,OK NC CLOSED")
-                test_action_string.append("SSC SSC2 soc -S -s <server_sock> -l %d -n %d -j %d" %
-                                          (send_len, TEST_COUNT_ONE_ROUND, send_delay))
-                checker_stings.append("P SSC2 RE \+SEND:\d+,OK NC CLOSED")
-
-            for i in range(sta_number):
-                checker_stings.append("P SSC%d RE \+SEND:\d+,OK NC CLOSED" % (i + 3))
-                test_action_string.append("SSC SSC%d soc -S -s <client_sock%d> -l %d -n %d -j %d" %
-                                          (i + 3, i + 3, send_len, TEST_COUNT_ONE_ROUND, send_delay))
-            for i in range(sta_number):
-                test_action_string.append("SSC SSC2 soc -S -s <accept_sock%d> -l %d -n %d -j %d" %
-                                          (i + 3, send_len, TEST_COUNT_ONE_ROUND, send_delay))
-                checker_stings.append("P SSC2 RE \+SEND:\d+,OK NC CLOSED")
-
-            fail_string = "Fail, Failed to send/recv data"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                          check_freq=1, check_time=300) is False:
-                break
-            pass
-
-        NativeLog.add_prompt_trace("time escape: %s" % (time.time() - start_time))
-
-        if (time.time() - start_time) > test_time:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Failed")
-            checker_stings = []
-            test_action_string = []
-            for i in range(sta_number + 2):
-                checker_stings.append("P SSC%d C CLOSEALL" % (i + 1))
-                test_action_string.append("SSCC SSC%d soc -T" % (i + 1))
-            fail_string = "Fail, Fail to close socket"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-            # re-set server on SSC1
-            server_port = random.randint(20000, 30000)
-            checker_stings = ["R SSC1 A <server_sock>:BIND:(\d+),OK"]
-            test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port]
-            fail_string = "Fail, Fail to bind socket"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-            checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"]
-            test_action_string = ["SSCC SSC1 soc -L -s <server_sock>"]
-            fail_string = "Fail, Fail to listen"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-            # SSC2 connnect SSC1
-            checker_stings = []
-            test_action_string = []
-            checker_stings.append("P SSC2 A <client_sock>:BIND:(\d+),OK")
-            test_action_string.append("SSCC SSC2 soc -B -t TCP")
-            fail_string = "Fail, SSC2 Fail to bind sock"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-            checker_stings = ["P SSC2 RE CONNECT:(\d+),OK", "P SSC1 A <accept_sock>:ACCEPT:(\d+),.+"]
-            test_action_string = ["SSCC SSC2 soc -C -s <client_sock> -i %s -p %s" % ("192.168.6.1", server_port)]
-            fail_string = "Fail, SSC2 Fail to connect to SSC1 server"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-            # create server on SSC2
-            checker_stings = []
-            test_action_string = []
-            checker_stings.append("P SSC2 A <server_sock>:BIND:(\d+),OK")
-            test_action_string.append("SSCC SSC2 soc -B -t TCP -p %s -i 192.168.5.1" % server_port_t)
-            fail_string = "Fail, SSC2 Fail to bind"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-            checker_stings = ["R SSC2 RE LISTEN:(\d+),OK"]
-            test_action_string = ["SSCC SSC2 soc -L -s <server_sock>"]
-            fail_string = "Fail, SSC2 Fail to listen"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-            # create client on SSC3-SSC5
-            checker_stings = []
-            test_action_string = []
-            for i in range(sta_number):
-                checker_stings.append("P SSC%d A <client_sock%d>:BIND:(\d+),OK" % (i + 3, i + 3))
-                test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i + 3))
-            fail_string = "Fail, Fail to connect to SSC2 server while binding"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-            for i in range(sta_number):
-                checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i + 3),
-                                  "P SSC2 A <accept_sock%d>:ACCEPT:(\d+),.+" % (i + 3)]
-                test_action_string = ["SSCC SSC%d soc -C -s <client_sock%d> -i %s -p %s" %
-                                      (i + 3, i + 3, "192.168.5.1", server_port_t)]
-                fail_string = "Fail, Fail to connect to server"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                    return
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPThroughput.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/TCPThroughput.py
deleted file mode 100755 (executable)
index 85759b7..0000000
+++ /dev/null
@@ -1,325 +0,0 @@
-import os
-import time
-import random
-import threading
-import socket
-
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-from NativeLog import ThroughputResult
-from Utility import RSSICalibrator
-
-LOG_FOLDER = os.path.join("Performance", "Throughput")
-
-AP_PROP_KEY = ("ssid", "password", "apc")
-
-
-class SendThread(threading.Thread):
-    def __init__(self, sock, send_len):
-        threading.Thread.__init__(self)
-        self.setDaemon(True)
-        self.sock = sock
-        self.send_len = send_len
-        self.exit_event = threading.Event()
-        self.calc_event = threading.Event()
-        self.bytes_sent = 0
-        pass
-
-    def start_calc(self):
-        self.calc_event.set()
-
-    def stop_calc(self):
-        self.calc_event.clear()
-        self.exit_event.set()
-
-    def run(self):
-        data = "A" * self.send_len
-        if self.sock is None:
-            return
-        while True:
-            if self.exit_event.isSet() is True:
-                break
-            try:
-                self.sock.send(data)
-            except StandardError:
-                break
-            if self.calc_event.isSet() is True:
-                self.bytes_sent += self.send_len
-
-    def get_bytes_sent(self):
-        return self.bytes_sent
-
-    pass
-
-
-class RecvThread(threading.Thread):
-    def __init__(self, sock):
-        threading.Thread.__init__(self)
-        self.setDaemon(True)
-        self.sock = sock
-        self.exit_event = threading.Event()
-        self.calc_event = threading.Event()
-        self.bytes_recv = 0
-
-    def start_calc(self):
-        self.calc_event.set()
-
-    def stop_calc(self):
-        self.calc_event.clear()
-        self.exit_event.set()
-
-    def run(self):
-        if self.sock is None:
-            return
-        while True:
-            if self.exit_event.isSet() is True:
-                break
-            try:
-                data = self.sock.recv(8 * 1024)
-            except StandardError:
-                break
-            if self.calc_event.isSet() is True:
-                self.bytes_recv += len(data)
-
-    def get_bytes_recv(self):
-        return self.bytes_recv
-
-    pass
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        self.performance_folder_path = log_path
-        self.att_test_list = range(60)
-        cmd_set = test_case["cmd set"]
-        # load param from excel
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            ap_list = self.get_parameter("shield_box_ap_list")
-            pc_ip = self.get_parameter("pc_ip")
-            send_len = self.send_len
-            att_test_list = self.att_test_list
-            tx_enable = self.tx_enable
-            rx_enable = self.rx_enable
-            measure_period = self.measure_period
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        tcp_port = random.randint(40000, 50000)
-
-        # init throughput result data
-        test_item = ""
-        if tx_enable is True:
-            test_item += "Tx"
-        if rx_enable is True:
-            test_item += "Rx"
-        if test_item == "":
-            raise StandardError("no throughput test item")
-
-        folder_path = os.path.join(self.performance_folder_path, LOG_FOLDER)
-        file_name = os.path.join(folder_path,
-                                 "TCPThroughput_%s_%s" % (test_item, time.strftime("%d%H%M%S", time.localtime())))
-        result = ThroughputResult.ThroughputResult(file_name, standard_required=True)
-
-        # restart before executing throughput
-        checker_stings = ["R SSC1 C !!!ready!!!"]
-        test_action_string = ["SSC SSC1 reboot"]
-        fail_string = "Fail, Fail to reboot"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            self.result_cntx.set_result("Fail")
-            return
-
-        # disable recv print during throughput test
-        checker_stings = ["R SSC1 C +RECVPRINT"]
-        test_action_string = ["SSC SSC1 soc -R -o 0"]
-        fail_string = "Fail, Fail to disable recv print"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            self.result_cntx.set_result("Fail")
-            return
-
-        ret = True
-        for ap_prop in ap_list:
-            ssid = ap_prop[0]
-            password = ap_prop[1]
-            apc = ap_prop[2]
-            if ap_prop[1] == "":
-                # set a default string for open ap
-                password = "1"
-            # switch off all outlet, switch on AP outlet
-            outlet_config_dict = dict.fromkeys(range(1, 9), "OFF")
-            outlet_config_dict[apc] = "ON"
-            apc_cmd = "APC <APC1>"
-            for outlet in outlet_config_dict:
-                apc_cmd += " %s %s" % (outlet_config_dict[outlet], outlet)
-            checker_stings = ["P PC_COM L OK"]
-            fail_string = "Fail, Fail to switch apc"
-            if self.load_and_exe_one_step(checker_stings, [apc_cmd], fail_string) is False:
-                ret = False
-                break
-
-            # wait AP ready
-            time.sleep(20)
-
-            # create server
-            server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
-            server_sock.bind((pc_ip, tcp_port))
-            server_sock.settimeout(5)
-            server_sock.listen(5)
-
-            if tx_enable is True:
-                result.add_test_item(ssid + "_tx")
-            if rx_enable is True:
-                result.add_test_item(ssid + "_rx")
-
-            # create RSSI Calibrator
-            calibrator = RSSICalibrator.Calibrator()
-
-            for att_value in att_test_list:
-                # step 0 set att value
-                checker_stings = ["R PC_COM L OK"]
-                test_action_string = ["ATT <att_port> %s" % att_value]
-                fail_string = "Fail, Fail to set att value"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                    ret = False
-                    break
-                    # continue
-
-                # step 1 get AP RSSI
-                checker_stings = ["R SSC1 A <rssi>:\+SCAN:%s,[:\d\w]+,\d+,\d+,([-\d]+)" % ssid]
-                test_action_string = ["SSC SSC1 sta -S -s %s" % ssid]
-                fail_string = "Fail, Fail to scan"
-                rssi = scan_count = 0
-                for i in range(3):
-                    if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                        continue
-                    rssi += int(self.test_env.get_variable_by_name("rssi")[1])
-                    scan_count += 1
-
-                rssi = calibrator.calibrate_rssi(float(rssi) / scan_count if scan_count > 0 else 0, att_value)
-
-                # step 2 connect to AP
-                checker_stings = ["R SSC1 C +JAP:CONNECTED"]
-                test_action_string = ["SSC SSC1 sta -C -s %s -p %s" % (ssid, password)]
-                fail_string = "Fail, Fail to JAP"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                              check_freq=1, check_time=30) is False:
-                    if rssi < -89:
-                        continue
-                    else:
-                        ret = False
-                        break
-
-                # step 3 close all connections
-                checker_stings = ["R SSC1 C +CLOSEALL"]
-                test_action_string = ["SSC SSC1 soc -T"]
-                fail_string = "Fail, Fail to close socket"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                    ret = False
-                    break
-                    # continue
-
-                # step 4 create tcp connection
-
-                checker_stings = ["R SSC1 A <client_sock>:\+BIND:(\d+),OK"]
-                test_action_string = ["SSC SSC1 soc -B -t TCP"]
-                fail_string = "Fail, Fail to bind"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                    ret = False
-                    break
-                    # continue
-
-                checker_stings = ["P SSC1 RE \+CONNECT:\d+,OK"]
-                test_action_string = ["SSC SSC1 soc -C -s <client_sock> -i %s -p %s" % (pc_ip, tcp_port)]
-                fail_string = "Fail, Fail to connect socket"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                    ret = False
-                    break
-                    # continue
-
-                try:
-                    sock, addr = server_sock.accept()
-                except socket.error, e:
-                    NativeLog.add_trace_critical("%s" % e)
-                    continue
-                sock.settimeout(measure_period)
-
-                # step 5 do throughput test
-                send_thread = SendThread(sock if rx_enable is True else None, send_len)
-                send_thread.start()
-
-                recv_thread = RecvThread(sock if tx_enable is True else None)
-                recv_thread.start()
-
-                if tx_enable is True:
-                    # do send from target
-                    test_action_string = ["SSC SSC1 soc -S -s <client_sock> -l %s -n 10000000" % send_len]
-                    fail_string = "Fail, Fail to send"
-                    if self.load_and_exe_one_step([], test_action_string, fail_string) is False:
-                        pass
-
-                # start throughput calculate
-                send_thread.start_calc()
-                recv_thread.start_calc()
-
-                # sleep for measure period
-                time.sleep(measure_period)
-
-                # stop throughput calculate
-                send_thread.stop_calc()
-                recv_thread.stop_calc()
-
-                send_thread.join()
-                recv_thread.join()
-
-                sock.close()
-
-                # output throughput result
-                # in Mbps
-                if send_thread.get_bytes_sent() > 0:
-                    result.log_throughput(ssid + "_rx", rssi, att_value,
-                                          float(send_thread.get_bytes_sent() * 8) / (measure_period * 1000000))
-
-                if recv_thread.get_bytes_recv() > 0:
-                    result.log_throughput(ssid + "_tx", rssi, att_value,
-                                          float(recv_thread.get_bytes_recv() * 8) / (measure_period * 1000000))
-
-                result.output_to_file()
-                pass
-
-            server_sock.close()
-            if not ret:
-                NativeLog.add_trace_critical("Test SUC for %s" % ssid)
-            elif ret:
-                NativeLog.add_trace_critical("Test FAIL for %s!!!" % ssid)
-        if ret:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Fail")
-
-        # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/TCPStress/__init__.py b/components/idf_test/integration_test/TestCaseScript/TCPStress/__init__.py
deleted file mode 100755 (executable)
index 049c1b9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-__all__ = ["TCPConnUtility", "TCPConnSingleMode", "TCPConnMixedMode"]
\ No newline at end of file
diff --git a/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPBroadcast.py b/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPBroadcast.py
deleted file mode 100644 (file)
index 9ced966..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-import time
-import random
-import threading
-import socket
-import re
-
-from TCAction import PerformanceTCBase
-from NativeLog import NativeLog
-from Utility import Encoding
-
-
-class SendThread(threading.Thread):
-    def __init__(self, sock, send_len, target_addr, delay):
-        threading.Thread.__init__(self)
-        self.sock = sock
-        self.send_len = send_len
-        self.target_addr = target_addr
-        self.delay = delay
-        self.exit_event = threading.Event()
-        self.send_count = 0
-        pass
-
-    def exit(self):
-        self.exit_event.set()
-
-    def run(self):
-        data = "A" * self.send_len
-        if self.sock is None:
-            return
-        while True:
-            if self.exit_event.isSet() is True:
-                break
-            try:
-                self.sock.sendto(data, self.target_addr)
-            except StandardError:
-                break
-            self.send_count += 1
-            time.sleep(self.delay * 0.001)
-
-    pass
-
-    def get_send_count(self):
-        return self.send_count
-
-
-class RecvThread(threading.Thread):
-    def __init__(self, sock):
-        threading.Thread.__init__(self)
-        self.sock = sock
-        self.exit_event = threading.Event()
-        self.calc_event = threading.Event()
-        self.bytes_recv = 0
-        self.Max = 0.0
-
-    def start_calc(self):
-        self.calc_event.set()
-
-    def stop_calc(self):
-        self.calc_event.clear()
-        self.exit_event.set()
-
-    def run(self):
-        if self.sock is None:
-            return
-        while True:
-            if self.exit_event.isSet() is True:
-                break
-            try:
-                data, addr = self.sock.recvfrom(2048)
-            except StandardError:
-                break
-            if self.calc_event.isSet() is True:
-                self.bytes_recv += len(data)
-            if len(data) == 0:
-                start = time.time()
-                while True:
-                    try:
-                        data, addr = self.sock.recvfrom(2048)
-                    except StandardError:
-                        break
-                    if len(data) > 0:
-                        if self.calc_event.isSet() is True:
-                            self.bytes_recv += len(data)
-                        end = time.time()
-                        break
-            if end - start > self.Max:
-                self.Max = end - start
-
-    def get_bytes_recv(self):
-        return self.bytes_recv
-
-    pass
-
-    def get_Max_time(self):
-        return self.Max
-
-    pass
-
-
-class device_check(threading.Thread):
-    def __init__(self, port):
-        threading.Thread.__init__(self)
-        self.Max = 0.0
-        self.port = port
-        self.recv_data_cache = ""
-        self.cache_lock = threading.Lock()
-        self.exit_event = threading.Event()
-
-    def data_recv_callback(self, data):
-        with self.cache_lock:
-            self.recv_data_cache += data
-        pass
-
-    def exit(self):
-        self.exit_event.set()
-        pass
-
-    def run(self):
-        while self.exit_event.isSet() is False:
-            while True:
-                if self.recv_data_cache:
-                    match = re.search("\+RECVFROM:\d+,\d+,\d+\.\d+\.\d+\.\d+,\d+", self.recv_data_cache)
-                    if match is not None:
-                        self.recv_data_cache = self.recv_data_cache[len(match.group()):]
-                    else:
-                        start = time.time()
-                        end = 0.0
-                        while True:
-                            res = re.search("\+RECVFROM:\d+,\d+,\d+\.\d+\.\d+\.\d+,\d+", self.recv_data_cache)
-                            if res is not None:
-                                self.recv_data_cache = self.recv_data_cache[len(res.group()):]
-                                end = time.time()
-                                break
-                        if end - start > self.Max:
-                            self.Max = end - start
-            pass
-
-    def get_max_time(self):
-        return self.Max
-
-
-class TestCase(PerformanceTCBase.PerformanceTCBase):
-    def __init__(self, test_case, test_env, timeout, log_path):
-        PerformanceTCBase.PerformanceTCBase.__init__(self, test_case, test_env, timeout, log_path)
-        self.send_len = 0
-        self.pc_send = 0
-        self.target_send = 0
-        self.test_time = 0
-        self.delay = 0
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.recv_cb_lock = threading.Lock()
-        self.recv_cb = dict.fromkeys(["SSC1"])
-        pass
-
-    def register_recv_callback(self, port_name, callback):
-        with self.recv_cb_lock:
-            if self.recv_cb[port_name] is None:
-                self.recv_cb[port_name] = [callback]
-            else:
-                self.recv_cb[port_name].append(callback)
-        pass
-
-    def process(self):
-        try:
-            # configurable params
-            send_len = self.send_len
-            pc_send = self.pc_send
-            target_send = self.target_send
-            test_time = self.test_time
-            delay = self.delay
-            ap_ssid = self.get_parameter("ap_ssid")
-            ap_password = self.get_parameter("ap_password")
-            pc_ip = self.get_parameter("pc_ip")
-            target_ip = self.get_parameter("target_ip")
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for UDP script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        udp_port = random.randint(40000, 50000)
-
-        # reboot before executing
-        self.flush_data("SSC1")
-        self.serial_write_line("SSC1", "reboot")
-        if self.check_response("SSC1", "ready!!!", 5) is False:
-            NativeLog.add_trace_critical("Fail to reboot")
-            return
-
-        # set target as STA mode
-        self.flush_data("SSC1")
-        self.serial_write_line("SSC1", "op -S -o 1")
-        if self.check_response("SSC1", "+MODE:OK", 5) is False:
-            NativeLog.add_trace_critical("Fail to set mode")
-            return
-
-        # connect to AP
-        self.flush_data("SSC1")
-        self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password))
-        if self.check_response("SSC1", "+JAP:CONNECTED", 30) is False:
-            NativeLog.add_trace_critical("Fail to JAP")
-            return
-
-        # disable recv print on target
-        self.flush_data("SSC1")
-        self.serial_write_line("SSC1", "soc -R -o 0")
-        if self.check_response("SSC1", "+RECVPRINT", 5) is False:
-            NativeLog.add_trace_critical("Fail to disable recv print")
-            return
-
-        # get broadcast ip
-        res = re.search("(\d+\.\d+\.\d+\.)\d+", pc_ip)
-        if res is not None:
-            udp = res.group(1)
-            broadcast_ip = udp + "255"
-        else:
-            NativeLog.add_trace_critical("No ip addr found")
-            return
-
-        # close all connection on target
-        self.flush_data("SSC1")
-        self.serial_write_line("SSC1", "soc -T")
-        if self.check_response("SSC1", "+CLOSEALL", 5) is False:
-            NativeLog.add_trace_critical("Fail to close sock")
-            return
-
-        # create socket on pc
-        pc_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
-        pc_sock.bind((pc_ip, udp_port))
-        pc_sock.settimeout(1)
-
-        # create socket on target
-        self.flush_data("SSC1")
-        self.serial_write_line("SSC1", "soc -B -t UDP -i %s -p %s" % (target_ip, udp_port))
-        if self.check_response("SSC1", "+BIND:0,OK,", 5) is False:
-            NativeLog.add_trace_critical("Fail to bind")
-            return
-
-        thread_dict = dict.fromkeys(["SSC1"])
-        thread_dict["SSC1"] = dict(zip(["check"], [None]))
-        thread_dict["SSC1"]["check"] = device_check(self.test_env.get_port_by_name("SSC1"))
-        self.register_recv_callback("SSC1", thread_dict["SSC1"]["check"].data_recv_callback)
-
-        send_thread = SendThread(pc_sock if pc_send is True else None, send_len, (broadcast_ip, udp_port), delay)
-        send_thread.start()
-
-        recv_thread = RecvThread(pc_sock if target_send is True else None)
-        recv_thread.start()
-
-        # start calculate
-        recv_thread.start_calc()
-        thread_dict["SSC1"]["check"].start()
-        send_count = 0
-        if target_send is True:
-            # do send from target
-            start = time.time()
-            while time.time() - start < test_time * 60:
-                self.flush_data("SSC1")
-                self.serial_write_line("SSC1", "soc -S -s 0 -l %s -n 1000  -i %s -p %s -j %s" % (
-                    send_len, broadcast_ip, udp_port, delay))
-                if self.check_response("SSC1", "+SEND:0,OK", 300) is False:
-                    NativeLog.add_trace_critical("Fail to send")
-                    return
-                send_count += 1000
-        else:
-            time.sleep(test_time * 60)
-
-        send_thread.exit()
-        send_thread.join()
-
-        # stop throughput calculate
-        while True:
-            if recv_thread.isAlive() is False:
-                recv_thread.stop_calc()
-                recv_thread.join()
-                break
-
-        Max = 0.0
-        recv_count = 0
-        if pc_send is True:
-            send_count = send_thread.get_send_count()
-            start = time.time()
-            rx_data_len = 0
-            suc_time = 0
-            while time.time() - start < 30:
-                self.flush_data("SSC1")
-                self.serial_write_line("SSC1", "soc -Q -s 0 -o 1")
-                time.sleep(0.05)
-                data = self.serial_read_data("SSC1")
-                if data is not None:
-                    res = re.search("\+RECVLEN:(\d+)", data)
-                    if res is not None:
-                        if rx_data_len < int(res.group(1)):
-                            rx_data_len = int(res.group(1))
-                            time.sleep(0.5)
-                        else:
-                            suc_time += 1
-                if suc_time > 5:
-                    break
-
-            if (rx_data_len * 8 % send_len) > 0:
-                recv_count = rx_data_len / send_len + 1
-            else:
-                recv_count = rx_data_len / send_len
-
-        if recv_thread.get_bytes_recv() > 0:
-            if (recv_thread.get_bytes_recv() % send_len) > 0:
-                recv_count = recv_thread.get_bytes_recv() / send_len + 1
-            else:
-                recv_count = recv_thread.get_bytes_recv() / send_len
-            Max = recv_thread.get_Max_time()
-
-        thread_dict["SSC1"]["check"].exit()
-        pc_sock.close()
-
-        self.set_result("Succeed")
-        NativeLog.add_trace_critical("send_count is %s, recv_count is %s" % (send_count, recv_count))
-        NativeLog.add_trace_critical(
-            "UDP Broadcast lose rate is %.2f%%" % (float(send_count - recv_count) / send_count * 100))
-        NativeLog.add_trace_critical("UDP Broadcast lose test MAX time is %.4f" % Max)
-
-    @Encoding.encode_utf8(3)
-    def result_check(self, port_name, data):
-        PerformanceTCBase.PerformanceTCBase.result_check(self, port_name, data)
-        if port_name in self.recv_cb:
-            with self.recv_cb_lock:
-                callback_list = self.recv_cb[port_name]
-            if callback_list is not None:
-                for callback in callback_list:
-                    callback(data)
-        pass
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPMultiSTASendRecv.py b/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPMultiSTASendRecv.py
deleted file mode 100644 (file)
index 82c615d..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-import time
-import random
-import string
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-    def __init__(self, test_case, test_env, timeout=45, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            test_time = self.test_time * 60
-            server_echo = self.server_echo
-            sta_number = self.sta_number
-            send_delay = self.send_delay
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # step0 reboot
-        for i in range(sta_number + 1):
-            checker_stings = ["P SSC%d C ready!!!" % (i + 1)]
-            test_action_string = ["SSCC SSC%d restore" % (i + 1)]
-            fail_string = "Fail, Fail to restore"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # turn off recv print
-        for i in range(sta_number + 1):
-            checker_stings = ["P SSC%d C +RECVPRINT:0" % (i + 1)]
-            test_action_string = ["SSCC SSC%d soc -R -o 0" % (i + 1)]
-            fail_string = "Fail, Fail to turn off recv print"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # step1, set softAP mode on SSC1
-        checker_stings = ["R SSC1 C +MODE:OK"]
-        test_action_string = ["SSCC SSC1 op -S -o 2"]
-        fail_string = "Fail, Fail to set mode on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step2, set STA mode on SSC2-SSCn
-        for i in range(sta_number):
-            checker_stings = ["R SSC%d C +MODE:OK" % (i + 2)]
-            test_action_string = ["SSCC SSC%d op -S -o 1" % (i + 2)]
-            fail_string = "Fail, Fail to set mode on SSC%d" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # step3, set ssid/password on SSC1
-        ssid = "".join([random.choice(string.lowercase) for m in range(10)])
-        password = "".join([random.choice(string.lowercase) for m in range(10)])
-        udp_port = random.randint(10000, 20000)
-
-        checker_stings = ["R SSC1 C +SAP:OK"]
-        test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 10" % (ssid, password)]
-        fail_string = "Fail, Fail to set ssid/password on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step4, all STA join SSC1(soft AP)
-        for i in range(sta_number):
-            checker_stings = ["R SSC%d C +JAP:CONNECTED,%s" % (i + 2, ssid)]
-            test_action_string = ["SSCC SSC%d ap -C -s %s -p %s" % (i + 2, ssid, password)]
-            fail_string = "Fail, Fail to connect to SSC1"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=450) is False:
-                return
-
-        # step5, get all the STA ip
-        for i in range(sta_number):
-            checker_stings = ["R SSC%d A <SSC%d_IP>:\+STAIP:192.168.4.(\d+)" % (i + 2, i + 2)]
-            test_action_string = ["SSCC SSC%d ip -Q" % (i + 2)]
-            fail_string = "Fail, Fail to get SSC%d ip" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-                # else:
-                #     print "SSC%d ip is:" % (i + 2), self.get_parameter("SSC%d_IP" % (i + 2))
-
-        # step6, create UDP socket on all targets
-        for i in range(sta_number):
-            checker_stings = ["R SSC%d A <sock%d>:\+BIND:(\d+),OK" % (i + 2, i + 2)]
-            test_action_string = ["SSCC SSC%d soc -B -t UDP -p %s" % (i + 2, udp_port + i + 2)]
-            fail_string = "Fail, SSC%d Fail to bind" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        start_time = time.time()
-        # step7, do send/recv, SSC2<---->other STAs
-        while time.time() - start_time < test_time:
-            checker_stings = []
-            test_action_string = []
-            if server_echo is True:
-
-                # SSC2 send packets to SSC3-SSCn
-                for i in range(sta_number - 1):
-                    ip = "192.168.4." + self.get_parameter("SSC%d_IP" % (i + 3))
-                    test_action_string.append(
-                        "SSC SSC2 soc -S -s <sock%d> -i %s -p %s -l %d -n 1000 -j %d" % (
-                            i + 3, ip, udp_port + i + 3, send_len, send_delay))
-                    checker_stings.append(
-                        "P SSC2 RE \+SEND:%s,OK NC CLOSED NC ERROR" % self.get_parameter("sock%d" % (i + 3)))
-
-            # SSC3-SSCn send packets to SSC2
-            ssc2_ip = "192.168.4." + self.get_parameter("SSC2_IP")
-            for i in range(sta_number - 1):
-                test_action_string.append(
-                    "SSC SSC%d soc -S -s <sock%d> -i %s  -p %s -l %d -n 1000 -j %d" % (
-                        i + 3, i + 3, ssc2_ip, udp_port + 2, send_len, send_delay))
-                checker_stings.append(
-                    "P SSC%d RE \+SEND:%s,OK NC CLOSED NC ERROR" % (i + 3, self.get_parameter("sock%d" % (i + 3))))
-
-            fail_string = "Fail, Failed to send/recv data"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                          check_freq=1, check_time=300) is False:
-                break
-
-            # drop off the delay time if it's greater than 20ms
-            if send_delay > 20:
-                send_delay -= 10
-
-        NativeLog.add_trace_critical("time escape: %s" % (time.time() - start_time))
-        if (time.time() - start_time) >= test_time:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Failed")
-
-            # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPPacketLose.py b/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPPacketLose.py
deleted file mode 100644 (file)
index 4cb0c1e..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-import os
-import time
-import random
-import threading
-import socket
-
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-
-AP_PROP_KEY = ("ssid", "password", "apc")
-
-
-class SendThread(threading.Thread):
-    def __init__(self, sock, send_len, target_addr, delay):
-        threading.Thread.__init__(self)
-        self.sock = sock
-        self.send_len = send_len
-        self.target_addr = target_addr
-        self.delay = delay
-        self.count = 0
-        self.exit_event = threading.Event()
-        pass
-
-    def exit(self):
-        self.exit_event.set()
-
-    def run(self):
-        data = "A" * self.send_len
-        if self.sock is None:
-            return
-        while True:
-            if self.exit_event.isSet() is True:
-                break
-            try:
-                self.sock.sendto(data, self.target_addr)
-            except StandardError:
-                break
-            self.count += 1
-            time.sleep(self.delay * 0.001)
-
-    def calculate(self):
-        return self.count
-
-
-class RecvThread(threading.Thread):
-    def __init__(self, sock):
-        threading.Thread.__init__(self)
-        self.sock = sock
-        self.exit_event = threading.Event()
-        self.calc_event = threading.Event()
-        self.bytes_recv = 0
-
-    def start_calc(self):
-        self.calc_event.set()
-
-    def stop_calc(self):
-        self.calc_event.clear()
-        self.exit_event.set()
-
-    def run(self):
-        if self.sock is None:
-            return
-        ret = True
-        while ret:
-            if self.exit_event.isSet() is True:
-                break
-            try:
-                data, addr = self.sock.recvfrom(65535)
-            except StandardError:
-                break
-            if self.calc_event.isSet() is True:
-                self.bytes_recv += len(data)
-            if len(data) == 0:
-                start = time.time()
-                while time.time() - start < 30:
-                    try:
-                        data, addr = self.sock.recvfrom(65535)
-                    except StandardError:
-                        break
-                    if len(data) == 0:
-                        break
-                    else:
-                        self.bytes_recv += len(data)
-                else:
-                    ret = False
-
-    def get_bytes_recv(self):
-        return self.bytes_recv
-
-    pass
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout, log_path)
-        self.att_test_list = range(60)
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            pc_send = self.pc_send
-            target_send = self.target_send
-            test_time = self.test_time
-            delay = self.delay
-            ap_ssid = self.get_parameter("ap_ssid")
-            ap_password = self.get_parameter("ap_password")
-            pc_ip = self.get_parameter("pc_ip")
-            target_ip = self.get_parameter("target_ip")
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for UDP script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        udp_port = random.randint(40000, 50000)
-
-        # reboot before executing
-        checker_stings = ["R SSC1 C ready!!!"]
-        test_action_string = ["SSC SSC1 reboot"]
-        fail_string = "Fail, Fail to reboot"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # disable recv print on target
-        checker_stings = ["R SSC1 C +RECVPRINT"]
-        test_action_string = ["SSC SSC1 soc -R -o 0"]
-        fail_string = "Fail, Fail to disable recv print"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # create socket on pc
-        udp_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
-        udp_sock.bind((pc_ip, udp_port))
-        udp_sock.settimeout(1)
-
-        # connect to AP
-        checker_stings = ["R SSC1 C +JAP:CONNECTED"]
-        test_action_string = ["SSC SSC1 sta -C -s %s -p %s" % (ap_ssid, ap_password)]
-        fail_string = "Fail, Fail to JAP"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                      check_freq=1, check_time=30) is False:
-            return
-
-        # close all connection
-        checker_stings = ["R SSC1 C +CLOSEALL"]
-        test_action_string = ["SSC SSC1 soc -T"]
-        fail_string = "Fail, Fail to create server"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # create UDP socket on target
-        checker_stings = ["R SSC1 A <client_sock>:\+BIND:(\d+),OK"]
-        test_action_string = ["SSC SSC1 soc -B -t UDP -p %s" % udp_port]
-        fail_string = "Fail, Fail bind"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        send_thread = SendThread(udp_sock if pc_send is True else None,
-                                 send_len, (target_ip, udp_port), delay)
-        send_thread.start()
-
-        recv_thread = RecvThread(udp_sock if target_send is True else None)
-        recv_thread.start()
-
-        # start calculate
-        recv_thread.start_calc()
-        send_count = 0
-        if target_send is True:
-            # do send from target
-            start = time.time()
-            while time.time() - start < test_time * 60:
-                checker_stings = ["P SSC1 RE \+SEND:0,OK"]
-                test_action_string = ["SSC SSC1 soc -S -s <client_sock> -l %s -n 1000 -i %s -p %s -j %s" % (
-                    send_len, pc_ip, udp_port, delay)]
-                fail_string = "Fail, Fail to send"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_freq=0.1,
-                                              check_time=3000) is False:
-                    return
-                send_count += 1000
-        else:
-            time.sleep(test_time * 60)
-
-        send_thread.exit()
-        send_thread.join()
-
-        # stop throughput calculate
-        while True:
-            if recv_thread.isAlive() is False:
-                recv_thread.stop_calc()
-                recv_thread.join()
-                break
-
-        recv_count = 0
-        if pc_send is True:
-            # get received data len from PC
-            self.load_and_exe_one_step(["R SSC1 A <recv_len>:RECVLEN:(\d+)"],
-                                       ["SSC SSC1 soc -Q -s <client_sock> -o 1"],
-                                       "Fail, Fail to get recv data len")
-            try:
-                rx_data_len = int(self.get_parameter("recv_len"))
-            except StandardError:
-                rx_data_len = 0
-
-            if (rx_data_len % send_len) > 0:
-                recv_count = rx_data_len / send_len + 1
-            else:
-                recv_count = rx_data_len / send_len
-
-            send_count = send_thread.calculate()
-
-        if recv_thread.get_bytes_recv() > 0:
-            if (recv_thread.get_bytes_recv() % send_len) > 0:
-                recv_count = recv_thread.get_bytes_recv() / send_len + 1
-            else:
-                recv_count = recv_thread.get_bytes_recv() / send_len
-        udp_sock.close()
-
-        NativeLog.add_trace_critical("send_count is %s, recv_count is %s" % (send_count, recv_count))
-        self.result_cntx.set_result("Succeed")
-        NativeLog.add_trace_critical(
-            "UDP Packet lose rate is %.2f%%" % (float(send_count - recv_count) / send_count * 100))
-
-    # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPSTAMuitiSocketSendRecv.py b/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPSTAMuitiSocketSendRecv.py
deleted file mode 100644 (file)
index ca94572..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-import time
-import random
-import string
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-    def __init__(self, test_case, test_env, timeout=45, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            test_time = self.test_time * 60
-            server_echo = self.server_echo
-            conn_number = self.conn_number
-            sta_number = self.sta_number
-            send_delay = self.send_delay
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # step0 reboot
-        for i in range(sta_number + 1):
-            checker_stings = ["P SSC%d C !!!ready!!!" % (i + 1)]
-            test_action_string = ["SSCC SSC%d reboot" % (i + 1)]
-            fail_string = "Fail, Fail to reboot"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # turn off recv print
-        for i in range(sta_number + 1):
-            checker_stings = ["P SSC%d C +RECVPRINT:0" % (i + 1)]
-            test_action_string = ["SSCC SSC%d soc -R -o 0" % (i + 1)]
-            fail_string = "Fail, Fail to turn off recv print"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # step1, set softAP mode on SSC1
-        checker_stings = ["R SSC1 C +MODE:OK"]
-        test_action_string = ["SSCC SSC1 op -S -o 2"]
-        fail_string = "Fail, Fail to set mode on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step2, set STA mode on SSC2-SSCn
-        for i in range(sta_number):
-            checker_stings = ["R SSC%d C +MODE:OK" % (i + 2)]
-            test_action_string = ["SSCC SSC%d op -S -o 1" % (i + 2)]
-            fail_string = "Fail, Fail to set mode on SSC%d" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        # step3, set ssid/password on SSC1
-        ssid = "".join([random.choice(string.lowercase) for m in range(10)])
-        password = "".join([random.choice(string.lowercase) for m in range(10)])
-
-        checker_stings = ["R SSC1 C +SAP:OK"]
-        test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid, password)]
-        fail_string = "Fail, Fail to set ssid/password on SSC1"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step4, all STA join SSC1(soft AP)
-        for i in range(sta_number):
-            checker_stings = ["R SSC%d C +JAP:CONNECTED,%s" % (i + 2, ssid)]
-            test_action_string = ["SSCC SSC%d ap -C -s %s -p %s" % (i + 2, ssid, password)]
-            fail_string = "Fail, Fail to connect to SSC1"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=450) is False:
-                return
-
-        # step5, get all the STA ip
-        for i in range(sta_number):
-            checker_stings = ["R SSC%d A <SSC%d_IP>:\+STAIP:192.168.4.(\d+)" % (i + 2, i + 2)]
-            test_action_string = ["SSCC SSC%d ip -Q" % (i + 2)]
-            fail_string = "Fail, Fail to get SSC%d ip" % (i + 2)
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-            else:
-                print "SSC%d ip is:" % (i + 2), self.get_parameter("SSC%d_IP" % (i + 2))
-
-        udp_port_list = []
-        # step6, create multi UDP socket on all targets
-        for i in range(conn_number):
-
-            udp_port = random.randint(10000, 20000)
-            udp_port_list.append(udp_port)
-
-            checker_stings = ["R SSC2 A <SSC2_sock%d>:\+BIND:(\d+),OK" % i]
-            test_action_string = ["SSCC SSC2 soc -B -t UDP -p %s" % udp_port]
-            fail_string = "Fail, SSC2 Fail to bind"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-            checker_stings = ["R SSC3 A <SSC3_sock%d>:\+BIND:(\d+),OK" % i]
-            test_action_string = ["SSCC SSC3 soc -B -t UDP -p %s" % (udp_port + 1)]
-            fail_string = "Fail, SSC3 Fail to bind"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        start_time = time.time()
-        # step7, do send/recv, SSC2<---->other STAs
-        while time.time() - start_time < test_time:
-            # drop off the delay time if it's greater than 20ms
-            if send_delay > 20:
-                send_delay -= 10
-
-            checker_stings = []
-            test_action_string = []
-            if server_echo is True:
-
-                # SSC2 send packets to SSC3
-                ssc3_ip = "192.168.4." + self.get_parameter("SSC3_IP")
-                for i in range(conn_number):
-                    test_action_string.append("SSC SSC2 soc -S -s <SSC2_sock%s> -i %s -p %s -l %d -n 1000 -j %d" % (
-                        i, ssc3_ip, udp_port_list[i] + 1, send_len, send_delay))
-                    checker_stings.append("P SSC2 RE \+SEND:\d+,OK NC CLOSED NC ERROR")
-
-            # SSC3 send packets to SSC2
-            ssc2_ip = "192.168.4." + self.get_parameter("SSC2_IP")
-            for i in range(conn_number):
-                test_action_string.append("SSC SSC3 soc -S -s <SSC3_sock%d> -i %s  -p %s -l %d -n 1000 -j %d" % (
-                    i, ssc2_ip, udp_port_list[i], send_len, send_delay))
-                checker_stings.append("P SSC3 RE \+SEND:\d+,OK NC CLOSED NC ERROR")
-
-            fail_string = "Fail, Failed to send/recv data"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                          check_freq=1, check_time=300) is False:
-                break
-
-        NativeLog.add_trace_critical("time escape: %s" % (time.time() - start_time))
-        if (time.time() - start_time) >= test_time:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Failed")
-
-            # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPSendRecv.py b/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPSendRecv.py
deleted file mode 100755 (executable)
index 032062a..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-import time
-import random
-import string
-
-TEST_COUNT_ONE_ROUND = 1000
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def cleanup(self):
-        # step 0 turn on recv print
-        checker_stings = ["R SSC1 C +RECVPRINT:1"]
-        test_action_string = ["SSC SSC1 soc -R -o 1"]
-        fail_string = "Fail, Fail to turn on recv print"
-        self.load_and_exe_one_step(checker_stings, test_action_string, fail_string)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            send_len = self.send_len
-            test_time = self.test_time * 60
-            duplex = self.duplex
-            conn_num = self.conn_num
-            send_delay = self.send_delay
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for UDPSendRecv script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        ssid = "".join([random.choice(string.lowercase) for m in range(10)])
-        password = "".join([random.choice(string.lowercase) for m in range(10)])
-
-        # step 0 set ap
-        checker_stings = ["R SSC1 C +SAP:OK"]
-        test_action_string = ["SSC SSC1 ap -S -s %s -p %s -t 3" % (ssid, password)]
-        fail_string = "Fail, Fail to set ap"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            return
-
-        # step 1 connect to ap and turn off recv print
-        checker_stings = ["R SSC2 C +JAP:CONNECTED"]
-        test_action_string = ["SSC SSC2 sta -C -s %s -p %s" % (ssid, password)]
-        fail_string = "Fail, Fail to connect to server"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False:
-            return
-
-        checker_stings = ["R SSC2 A <sta_ip>:\+STAIP:(\d+\.\d+\.\d+\.\d+)\r"]
-        test_action_string = ["SSC SSC2 ip -Q -o 1"]
-        fail_string = "Fail, Fail to connect to server"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False:
-            return
-
-        checker_stings = ["P SSC1 C +RECVPRINT:0", "P SSC2 C +RECVPRINT:0"]
-        test_action_string = ["SSC SSC1 soc -R -o 0", "SSC SSC2 soc -R -o 0"]
-        fail_string = "Fail, Fail to turn off recv print"
-        self.load_and_exe_one_step(checker_stings, test_action_string, fail_string)
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False:
-            return
-
-        # step 2 create conn_num udp socket
-        for i in range(1, conn_num+1):
-            checker_stings = ["R SSC1 A <t1_sock%d>:\+BIND:(\d+),OK" % i,
-                              "R SSC2 A <t2_sock%d>:\+BIND:(\d+),OK" % i]
-            test_action_string = ["SSC SSC1 soc -B -t UDP -p <test_udp_port%i>" % i,
-                                  "SSC SSC2 soc -B -t UDP -p <test_udp_port%i>" % i]
-            fail_string = "Fail, Fail to create socket"
-            if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                return
-
-        start_time = time.time()
-        # step 3, do send/recv
-        while time.time()-start_time < test_time:
-
-            checker_stings = ["P SSC1 NC ERROR NC CLOSE NC ERROR"]
-            for i in range(1, conn_num+1):
-                test_action_string = ["SSC SSC2 soc -S -s <t2_sock%d> -l %d -n %d -j %d "
-                                      "-i <target_ap_ip> -p <test_udp_port%d>" %
-                                      (i, send_len, TEST_COUNT_ONE_ROUND, send_delay, i)]
-                checker_stings.append("P SSC2 RE \"\+SEND:%%%%s,OK\"%%%%(<t2_sock%d>) NC ERROR NC CLOSE NC ERROR" % i)
-                if duplex is True:
-                    test_action_string.append("SSC SSC1 soc -S -s <t1_sock%d> -l %d -n %d -j %d"
-                                              " -i <sta_ip> -p <test_udp_port%d>" %
-                                              (i, send_len, TEST_COUNT_ONE_ROUND, send_delay, i))
-                    checker_stings.append("P SSC1 RE \"\+SEND:%%%%s,OK\"%%%%(<t1_sock%d>)" % i)
-
-                fail_string = "Fail, Failed on send command"
-                if self.load_and_exe_one_step([], test_action_string, fail_string) is False:
-                    break
-                time.sleep(1)
-
-            fail_string = "Fail, Failed to send/recv data"
-            if self.load_and_exe_one_step(checker_stings, ["DELAY 0.1"], fail_string,
-                                          check_freq=1, check_time=300) is False:
-                break
-            pass
-
-        NativeLog.add_prompt_trace("time escape: %s" % (time.time() - start_time))
-        if time.time() - start_time >= test_time:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Fail")
-
-        # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
-
-
diff --git a/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPThroughput.py b/components/idf_test/integration_test/TestCaseScript/UDPStress/UDPThroughput.py
deleted file mode 100755 (executable)
index 861f601..0000000
+++ /dev/null
@@ -1,321 +0,0 @@
-import os
-import time
-import random
-import threading
-import socket
-
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-from NativeLog import ThroughputResult
-from Utility import RSSICalibrator
-from Utility import MakeFolder
-
-
-LOG_FOLDER = os.path.join("Performance", "Throughput")
-
-
-AP_PROP_KEY = ("ssid", "password", "apc")
-
-
-class SendThread(threading.Thread):
-    def __init__(self, sock, send_len, target_addr):
-        threading.Thread.__init__(self)
-        self.setDaemon(True)
-        self.sock = sock
-        self.send_len = send_len
-        self.target_addr = target_addr
-        self.exit_event = threading.Event()
-        pass
-
-    def exit(self):
-        self.exit_event.set()
-
-    def run(self):
-        data = "A" * self.send_len
-        if self.sock is None:
-            return
-        while True:
-            if self.exit_event.isSet() is True:
-                break
-            try:
-                self.sock.sendto(data, self.target_addr)
-            except StandardError:
-                break
-    pass
-
-
-class RecvThread(threading.Thread):
-    def __init__(self, sock):
-        threading.Thread.__init__(self)
-        self.setDaemon(True)
-        self.sock = sock
-        self.exit_event = threading.Event()
-        self.calc_event = threading.Event()
-        self.bytes_recv = 0
-
-    def start_calc(self):
-        self.calc_event.set()
-
-    def stop_calc(self):
-        self.calc_event.clear()
-        self.exit_event.set()
-
-    def run(self):
-        if self.sock is None:
-            return
-        while True:
-            if self.exit_event.isSet() is True:
-                break
-            try:
-                data, addr = self.sock.recvfrom(65535)
-            except StandardError:
-                break
-            if self.calc_event.isSet() is True:
-                self.bytes_recv += len(data)
-
-    def get_bytes_recv(self):
-        return self.bytes_recv
-    pass
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        self.performance_folder_path = log_path
-        self.att_test_list = range(60)
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            ap_list = self.get_parameter("shield_box_ap_list")
-            pc_ip = self.get_parameter("pc_ip")
-            send_len = self.send_len
-            att_test_list = self.att_test_list
-            tx_enable = self.tx_enable
-            rx_enable = self.rx_enable
-            measure_period = self.measure_period
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        udp_port = random.randint(40000, 50000)
-
-        # init throughput result data
-        test_item = ""
-        if tx_enable is True:
-            test_item += "Tx"
-        if rx_enable is True:
-            test_item += "Rx"
-        if test_item == "":
-            raise StandardError("no throughput test item")
-
-        folder_path = os.path.join(self.performance_folder_path, LOG_FOLDER)
-        file_name = os.path.join(folder_path,
-                                 "UDPThroughput_%s_%s" % (test_item, time.strftime("%d%H%M%S", time.localtime())))
-
-        result = ThroughputResult.ThroughputResult(file_name)
-
-        # restart before executing throughput
-        checker_stings = ["R SSC1 C !!!ready!!!"]
-        test_action_string = ["SSC SSC1 reboot"]
-        fail_string = "Fail, Fail to reboot"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            self.result_cntx.set_result("Fail")
-            return
-
-        # disable recv print during throughput test
-        checker_stings = ["R SSC1 C +RECVPRINT"]
-        test_action_string = ["SSC SSC1 soc -R -o 0"]
-        fail_string = "Fail, Fail to disable recv print"
-        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-            self.result_cntx.set_result("Fail")
-            return
-
-        ret = True
-        for ap_prop in ap_list:
-            ssid = ap_prop[0]
-            password = ap_prop[1]
-            apc = ap_prop[2]
-            if ap_prop[1] == "":
-                # set a default string for open ap
-                password = "1"
-
-            # switch off all outlet, switch on AP outlet
-            outlet_config_dict = dict.fromkeys(range(1, 9), "OFF")
-            outlet_config_dict[apc] = "ON"
-            apc_cmd = "APC <APC1>"
-            for outlet in outlet_config_dict:
-                apc_cmd += " %s %s" % (outlet_config_dict[outlet], outlet)
-            checker_stings = ["P PC_COM L OK"]
-            fail_string = "Fail, Fail to switch apc"
-            if self.load_and_exe_one_step(checker_stings, [apc_cmd], fail_string) is False:
-                ret = False
-                break
-
-            # wait AP ready
-            time.sleep(20)
-
-            # create server
-            udp_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
-            udp_sock.bind((pc_ip, udp_port))
-            udp_sock.settimeout(1)
-
-            if tx_enable is True:
-                result.add_test_item(ssid + "_tx")
-            if rx_enable is True:
-                result.add_test_item(ssid + "_rx")
-
-            # create RSSI Calibrator
-            calibrator = RSSICalibrator.Calibrator()
-
-            for att_value in att_test_list:
-                # step 0 set att value
-                checker_stings = ["R PC_COM L OK"]
-                test_action_string = ["ATT <att_port> %s" % att_value]
-                fail_string = "Fail, Fail to set att value"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                    ret = False
-                    break
-                    # continue
-                # step 1 get AP RSSI
-                checker_stings = ["R SSC1 A <rssi>:\+SCAN:%s,[:\d\w]+,\d+,\d+,([-\d]+)\r" % ssid]
-                test_action_string = ["SSC SSC1 sta -S -s %s" % ssid]
-                fail_string = "Fail, Fail to scan"
-                rssi = scan_count = 0
-                for i in range(3):
-                    if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                        continue
-                    rssi += int(self.test_env.get_variable_by_name("rssi")[1])
-                    scan_count += 1
-
-                rssi = calibrator.calibrate_rssi(float(rssi)/scan_count if scan_count > 0 else 0, att_value)
-                # step 2 connect to AP
-                checker_stings = ["R SSC1 C +JAP:CONNECTED"]
-                test_action_string = ["SSC SSC1 sta -C -s %s -p %s" % (ssid, password)]
-                fail_string = "Fail, Fail to JAP"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                              check_freq=1, check_time=30) is False:
-                    if rssi < -89:
-                        continue
-                    else:
-                        ret = False
-                        break
-                    # continue
-                checker_stings = ["R SSC1 A <target_ip>:STAIP:(\d+\.\d+\.\d+\.\d+)"]
-                test_action_string = ["SSC SSC1 ip -Q"]
-                fail_string = "Fail, Fail to get ip"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                              check_freq=1, check_time=30) is False:
-                    if rssi < -89:
-                        continue
-                    else:
-                        ret = False
-                        break
-                    # continue
-                target_ip = self.get_parameter("target_ip")
-
-                # step 3 close all connections
-                checker_stings = ["R SSC1 C +CLOSEALL"]
-                test_action_string = ["SSC SSC1 soc -T"]
-                fail_string = "Fail, Fail to close socket"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                    ret = False
-                    break
-                    # continue
-
-                # step 4 create UDP socket
-                checker_stings = ["R SSC1 A <client_sock>:\+BIND:(\d+),OK"]
-                test_action_string = ["SSC SSC1 soc -B -t UDP -i %s -p %s" % (target_ip, udp_port)]
-                fail_string = "Fail, Fail to bind"
-                if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                    ret = False
-                    break
-                    # continue
-
-                # step 5 do throughput test
-                send_thread = SendThread(udp_sock if rx_enable is True else None,
-                                         send_len, (target_ip, udp_port))
-                send_thread.start()
-
-                recv_thread = RecvThread(udp_sock if tx_enable is True else None)
-                recv_thread.start()
-
-                if tx_enable is True:
-                    # do send from target
-                    test_action_string = ["SSC SSC1 soc -S -s <client_sock> -l %s -n 10000000 -i %s -p %s"
-                                          % (send_len, pc_ip, udp_port)]
-                    fail_string = "Fail, Fail to send"
-                    if self.load_and_exe_one_step([], test_action_string, fail_string) is False:
-                        pass
-
-                # start throughput calculate
-                recv_thread.start_calc()
-
-                # sleep for measure period
-                time.sleep(measure_period)
-
-                # stop throughput calculate
-                recv_thread.stop_calc()
-                send_thread.exit()
-
-                send_thread.join()
-                recv_thread.join()
-
-                # output throughput result
-                # in Mbps
-                if rx_enable is True:
-                    # get received data len from PC
-                    self.load_and_exe_one_step(["R SSC1 A <recv_len>:RECVLEN:(\d+)"],
-                                               ["SSC SSC1 soc -Q -s <client_sock> -o 1"],
-                                               "Fail, Fail to get recv data len")
-                    try:
-                        rx_data_len = int(self.get_parameter("recv_len"))
-                    except StandardError:
-                        rx_data_len = 0
-
-                    result.log_throughput(ssid + "_rx", rssi, att_value,
-                                          float(rx_data_len * 8) / (measure_period * 1000000))
-
-                if recv_thread.get_bytes_recv() > 0:
-                    result.log_throughput(ssid + "_tx", rssi, att_value,
-                                          float(recv_thread.get_bytes_recv() * 8) / (measure_period * 1000000))
-
-                result.output_to_file()
-                pass
-
-            udp_sock.close()
-            if not ret:
-                NativeLog.add_trace_critical("Test SUC for %s" % ssid)
-            elif ret:
-                NativeLog.add_trace_critical("Test FAIL for %s!!!" % ssid)
-
-        if ret:
-            self.result_cntx.set_result("Succeed")
-        else:
-            self.result_cntx.set_result("Fail")
-
-        # finally, execute done
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/UDPStress/__init__.py b/components/idf_test/integration_test/TestCaseScript/UDPStress/__init__.py
deleted file mode 100755 (executable)
index d29ee40..0000000
+++ /dev/null
@@ -1 +0,0 @@
-__all__ = ["UDPSendRecv", ]
diff --git a/components/idf_test/integration_test/TestCaseScript/WiFiStress/SoftAPNSTA.py b/components/idf_test/integration_test/TestCaseScript/WiFiStress/SoftAPNSTA.py
deleted file mode 100755 (executable)
index b8eb75a..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-import random
-import time
-import string
-import threading
-
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-from TCAction import PerformanceTCBase
-from Utility import Encoding
-
-
-class STAJAPThread(threading.Thread):
-    def __init__(self, test_action, port_name, ssid, password, delay1, delay2, change_mac):
-        threading.Thread.__init__(self)
-        self.setDaemon(True)
-        self.test_action = test_action
-        self.port_name = port_name
-        self.ssid = ssid
-        self.password = password
-        self.delay1 = delay1
-        self.delay2 = delay2
-        self.change_mac = change_mac
-        self.exit_flag = threading.Event()
-        pass
-
-    def exit(self):
-        self.exit_flag.set()
-        pass
-
-    def run(self):
-        total_test_count = 0
-        fail_count = 0
-        while self.exit_flag.isSet() is False:
-            # change mac
-            if self.change_mac is True:
-                mac = Encoding.generate_random_mac()
-                self.test_action.serial_write_line(self.port_name, "mac -S -o 1 -m %s" % mac)
-                self.test_action.check_response(self.port_name, "+MAC:STA,OK")
-
-            time.sleep(1)
-
-            # JAP
-            total_test_count += 1
-            # flush current port data
-            self.test_action.flush_data(self.port_name)
-            self.test_action.serial_write_line(self.port_name, "sta -C -s %s -p %s" % (self.ssid, self.password))
-            if self.test_action.check_response(self.port_name, "+JAP:CONNECTED", 45) is False:
-                fail_count += 1
-                NativeLog.add_trace_critical("[%s] Failed to JAP, Failed/Total : %d/%d"
-                                             % (self.port_name, fail_count, total_test_count))
-                continue
-            time.sleep(random.randint(self.delay1[0], self.delay1[1]))
-
-            # QAP
-            self.test_action.serial_write_line(self.port_name, "sta -D")
-            if self.test_action.check_response(self.port_name, "+QAP:OK", 5) is False:
-                NativeLog.add_trace_critical("[%s] Failed to QAP" % self.port_name)
-            time.sleep(random.randint(self.delay2[0], self.delay2[1]))
-
-        # make sure quit AP
-        self.test_action.serial_write_line(self.port_name, "sta -D")
-        pass
-    pass
-
-
-class TestCase(PerformanceTCBase.PerformanceTCBase):
-
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        PerformanceTCBase.PerformanceTCBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        self.sta_num = 0
-        self.max_sta = 4
-        self.test_time = 60
-        self.delay1 = [5, 30]
-        self.delay2 = [5, 10]
-        self.change_mac = True
-        self.channel = 11
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        pass
-
-    def process(self):
-        # configurable parameters
-        try:
-            sta_num = self.sta_num
-            max_sta = self.max_sta
-            test_time = self.test_time
-            # delay between JAP succeed and QAP
-            delay1 = self.delay1
-            # delay between QAP and JAP
-            delay2 = self.delay2
-            # if change mac each time before JAP
-            change_mac = self.change_mac
-            # channel
-            channel = self.channel
-        except StandardError, e:
-            raise StandardError("miss mandatory parameters")
-
-        # step 0, set op mode and enable dhcp
-        self.serial_write_line("SSC1", "op -S -o 2")
-        if self.check_response("SSC1", "+MODE:OK", 2) is False:
-            NativeLog.add_trace_critical("Failed to set ap mode")
-            return
-        self.serial_write_line("SSC1", "dhcp -E -o 2")
-        if self.check_response("SSC1", "+DHCP:AP,OK", 2) is False:
-            NativeLog.add_trace_critical("Failed to enable ap dhcp")
-            return
-        self.serial_write_line("SSC1", "dhcp -L -s 192.168.4.2 -e 192.168.4.100 -t 1")
-        if self.check_response("SSC1", "+DHCP:LEASE,OK", 2) is False:
-            NativeLog.add_trace_critical("Failed to enable ap dhcp")
-            return
-        self.serial_write_line("SSC1", "dhcp -S -o 2")
-        if self.check_response("SSC1", "+DHCP:AP,OK", 2) is False:
-            NativeLog.add_trace_critical("Failed to enable ap dhcp")
-            return
-
-        for i in range(sta_num):
-            self.serial_write_line("SSC%d" % (i+2), "op -S -o 1")
-            if self.check_response("SSC%d" % (i+2), "+MODE:OK", 2) is False:
-                NativeLog.add_trace_critical("Failed to set sta mode")
-                return
-            self.serial_write_line("SSC%d" % (i+2), "dhcp -S -o 1")
-            if self.check_response("SSC%d" % (i+2), "+DHCP:STA,OK", 2) is False:
-                NativeLog.add_trace_critical("Failed to enable sta dhcp")
-
-        # step 1, set ap config and load
-        ap_ssid = "".join([random.choice(string.uppercase) for m in range(15)])
-        ap_password = "".join([random.choice(string.lowercase) for m in range(15)])
-
-        self.serial_write_line("SSC1", "ap -S -s %s -p %s -t 3 -m %s -n %s"
-                               % (ap_ssid, ap_password, max_sta, channel))
-        if self.check_response("SSC1", "+SAP:OK", 2) is False:
-            NativeLog.add_trace_critical("Failed to set AP")
-            return
-
-        # step 2, start thread to let STA JAP
-        sta_thread_list = []
-        for i in range(sta_num):
-            sta_thread_list.append(STAJAPThread(self, "SSC%d" % (i+2),
-                                                ap_ssid, ap_password, delay1, delay2, change_mac))
-        for sta_thread in sta_thread_list:
-            sta_thread.start()
-
-        # step 3, sleep for test time
-        for i in range(test_time):
-            self.flush_data("SSC1")
-            time.sleep(60)
-
-        # step 4, close all thread, will disconnect when exit thread
-        for sta_thread in sta_thread_list:
-            sta_thread.exit()
-        for sta_thread in sta_thread_list:
-            sta_thread.join()
-        # wait and make sure disconnect done
-        time.sleep(1)
-
-        # step 5, join AP and check
-        sta_num_temp = max_sta if sta_num > max_sta else sta_num
-
-        for i in range(sta_num_temp):
-            self.serial_write_line("SSC%d" % (i+2), "sta -C -s %s -p %s" % (ap_ssid, ap_password))
-            if self.check_response("SSC%d" % (i+2), "+JAP:CONNECTED", 45) is False:
-                self.set_result("Fail")
-                break
-            pass
-        else:
-            self.set_result("Succeed")
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
-
diff --git a/components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiConnUtility.py b/components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiConnUtility.py
deleted file mode 100755 (executable)
index 24702bf..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-from NativeLog import NativeLog
-import time
-import random
-
-
-ERROR_AP_PROP = {"ssid": "123456789012345678901234567890",
-                 "ssid_len": 30,
-                 "pwd": "12345678901234567890",
-                 "pwd_len": 20,
-                 "channel": 10,
-                 "enc": 3,
-                 "apc": 9,  # invalid apc count
-                 }
-
-
-class WifiConnUtilError(StandardError):
-    pass
-
-
-class WifiConnUtility(object):
-
-    def __init__(self, tc_action):
-        self.tc_action = tc_action
-        self.target_type = tc_action.target_type
-        pass
-
-    def set_mode(self, mode):
-        ret = True
-        fail_string = "set mode fail"
-        cmd = []
-        checker_stings = []
-        for i in range(2):
-            if self.target_type[0] == "SSC":
-                cmd.append("SSCC SSC%d op -S -o %d" % (i+1, mode[i]))
-                checker_stings.append("SSCP SSC%d C +MODE:OK" % (i+1))
-                pass
-            else:
-                cmd.append("ATC AT%d CWMODE %d" % (i+1, mode[i]))
-                checker_stings.append("ATP AT%d L OK" % (i+1))
-                pass
-        if self.tc_action.load_and_exe_one_step(checker_stings, cmd,
-                                                fail_string, check_time=50) is False:
-            NativeLog.add_trace_critical("Failed to set mode")
-            ret = False
-        return ret
-        pass
-
-    def _apc_switch(self, outlet_list, action_list):
-        checker_stings = ["R PC_COM C OK"]
-        switch_cmd = "APC <APC1>"
-        fail_string = "Error when switching APC"
-        ret = True
-
-        for [_outlet, _action] in zip(action_list, outlet_list):
-            switch_cmd += " %s %d" % (_action, _outlet)
-
-        if self.tc_action.load_and_exe_one_step(checker_stings, [switch_cmd],
-                                                fail_string, check_time=50) is False:
-            NativeLog.add_trace_critical("Error when switching APC")
-            ret = False
-        return ret
-        pass
-
-    def _set_target_ap(self, ap_prop):
-        ret = True
-        fail_string = "set target ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"])
-        if self.target_type[1] == "SSC":
-            if ap_prop["pwd"] == "":
-                cmd = ["SSCC SSC2 ap -S -s %s -t %d" % (ap_prop["ssid"],
-                                                        ap_prop["enc"])
-                       ]
-            else:
-                cmd = ["SSCC SSC2 ap -S -s %s -p %s -t %d" % (ap_prop["ssid"],
-                                                              ap_prop["pwd"],
-                                                              ap_prop["enc"])
-                       ]
-            checker_stings = ["SSCP SSC2 C +SAP:OK"]
-            pass
-        else:
-            cmd = ["ATC AT2 CWSAP \"%s\" \"%s\" %d %d" % (ap_prop["ssid"],
-                                                          ap_prop["pwd"],
-                                                          ap_prop["channel"],
-                                                          ap_prop["enc"])
-                   ]
-            checker_stings = ["ATR AT2 L OK"]
-            pass
-        if self.tc_action.load_and_exe_one_step(checker_stings, cmd,
-                                                fail_string, check_time=50) is False:
-            NativeLog.add_trace_critical("set target ap fail")
-            ret = False
-        return ret
-        pass
-
-    def setup_ap(self, ap_type, ap_prop):
-        if ap_type == "target":
-            ret = self._set_target_ap(ap_prop)
-            pass
-        else:
-            ret = self._apc_switch(["ON"], [ap_prop["apc"]])
-            # delay for 5 seconds, wait AP ready
-            time.sleep(5)
-            pass
-        return ret
-
-    def do_scan(self, ap_prop):
-        fail_string = "Scan fail"
-        ret = True
-        # do not check if the set AP can be scanned
-        if self.target_type[1] == "SSC":
-            cmd = ["SSCC SSC1 sta -S"]
-            checker_stings = ["SSCR SSC1 C +SCANDONE"]
-            pass
-        else:
-            cmd = ["ATS AT1 AT+CWLAP"]
-            checker_stings = ["ATR AT1 L OK"]
-            pass
-        if self.tc_action.load_and_exe_one_step(checker_stings, cmd,
-                                                fail_string, check_time=100) is False:
-            NativeLog.add_trace_critical("Scan fail")
-            ret = False
-        return ret
-        pass
-
-    def _switch_off_target_ap(self, delay):
-        time.sleep(delay)
-        self._set_target_ap(ERROR_AP_PROP)
-        pass
-
-    def _switch_on_target_ap(self, ap_prop, delay):
-        time.sleep(delay)
-        self._set_target_ap(ap_prop)
-        pass
-
-    def _switch_off_ap(self, ap_type, ap_prop, delay_range):
-        delay = random.randint(delay_range[0]*10, delay_range[1]*10)/10
-        if ap_type == "target":
-            self._switch_off_target_ap(delay)
-        else:
-            delay -= 1.5
-            time.sleep(delay if delay > 0 else 0)
-            self._apc_switch(["OFF"], [ap_prop["apc"]])
-        pass
-
-    def _switch_on_ap(self, ap_type, ap_prop, delay_range):
-        delay = random.randint(delay_range[0]*10, delay_range[1]*10)/10
-        if ap_type == "target":
-            self._switch_on_target_ap(ap_prop, delay)
-        else:
-            delay -= 1.5
-            time.sleep(delay if delay > 0 else 0)
-            self._apc_switch(["ON"], [ap_prop["apc"]])
-        pass
-
-    def _join_ap(self, ap_prop, test_method):
-        fail_string = "join target ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"])
-        if self.target_type[1] == "SSC":
-            cmd = ["SSCC SSC1 ap -C -s %s -p %s" % (ap_prop["ssid"],
-                                                    ap_prop["pwd"],)
-                   ]
-            checker_stings = ["SSCR SSC1 C +JAP:CONNECTED"]
-            pass
-        else:
-            cmd = ["ATC AT1 CWJAP \"%s\" \"%s\"" % (ap_prop["ssid"],
-                                                    ap_prop["pwd"])
-                   ]
-            checker_stings = ["ATR AT1 NC ERROR NC FAIL L OK"]
-            pass
-        if test_method == "Normal":
-            ret = self.tc_action.load_and_exe_one_step(checker_stings, cmd,
-                                                       fail_string, check_freq=0.1, check_time=350)
-            if ret is not False:
-                ret *= 0.1
-        else:
-            ret = self.tc_action.load_and_exe_one_step([], cmd, fail_string)
-        return ret
-        pass
-
-    def _check_join_ap_result(self, ap_prop):
-        ret = False
-        fail_string = "join ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"])
-
-        if self.target_type[1] == "SSC":
-            checker_stings = ["SSCR SSC1 C +JAP:CONNECTED"]
-            ret = self.tc_action.load_and_exe_one_step(checker_stings, ["DELAY 0"],
-                                                       fail_string, check_freq=1, check_time=120)
-            pass
-        else:
-            cmd = ["ATS AT1 AT+CWJAP?"]
-            checker_stings = ["ATR AT1 NC busy NC No%20AP C +CWJAP"]
-            for i in range(3):
-                ret = self.tc_action.load_and_exe_one_step(checker_stings, cmd,
-                                                           fail_string, check_freq=1, check_time=2)
-                if ret is not False:
-                    break
-                time.sleep(15)
-
-        return ret
-        pass
-
-    def join_ap(self, join_test_method, ap_type, ap_prop, delay):
-
-        if join_test_method == "WRONG_PROP":
-            _prop = ERROR_AP_PROP
-        else:
-            _prop = ap_prop
-
-        ret = self._join_ap(_prop, join_test_method)
-
-        if join_test_method == "OFF_ON":
-            self._switch_off_ap(ap_type, ap_prop, delay[0])
-            self._switch_on_ap(ap_type, ap_prop, delay[1])
-            ret = self._check_join_ap_result(_prop)
-            pass
-        elif join_test_method == "OFF":
-            self._switch_off_ap(ap_type, ap_prop, delay[0])
-            time.sleep(25)
-            pass
-
-        return ret
-        pass
-
-    def do_reconnect(self, reconnect_test_method, ap_type, ap_prop, delay):
-        ret = True
-        if reconnect_test_method == "OFF_ON":
-            self._switch_off_ap(ap_type, ap_prop, delay[0])
-            self._switch_on_ap(ap_type, ap_prop, delay[1])
-            ret = self._check_join_ap_result(ap_prop)
-            pass
-        elif reconnect_test_method == "OFF":
-            self._switch_off_ap(ap_type, ap_prop, delay[0])
-            pass
-        return ret
-        pass
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiJAP.py b/components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiJAP.py
deleted file mode 100755 (executable)
index 64346be..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-import os
-import random
-import time
-
-import WifiConnUtility
-from NativeLog import NativeLog
-from TCAction import TCActionBase
-from Utility import Encoding
-from Utility import MakeFolder
-
-STEPS = {"SCAN1": 0x01, "JAP": 0x02, "SCAN2": 0x04, "RECONNECT": 0x08}
-
-AP_PROP = ("ssid", "ssid_len", "pwd",
-           "pwd_len", "channel", "enc", "apc")
-
-JAP_TEST_METHOD = ("Normal", "OFF_ON", "OFF", "WRONG_PROP")
-
-RECONNECT_TEST_METHOD = ("OFF_ON", "OFF")
-
-LOG_FOLDER = os.path.join("Performance", "JAP")
-
-
-SSID_LEN_RANGE = (1, 32)  # in bytes
-ENC_TYPE = (0, 2, 3, 4)  # do not support WEP for 8266 soft AP
-PWD_RANGE = {0: [0, 0],
-             1: [5, 5],
-             2: [8, 63],
-             3: [8, 63],
-             4: [8, 63],
-             }
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        # default value for optional configurable params
-        self.performance_folder_path = log_path
-        self.pwd_len = [8, 64]
-        self.step_config = [0x03, 0x01, 0x02, 0x0B, 0x0F]
-        self.join_test_method = ["Normal"]
-        self.join_delay = [[1.5, 5], [1.5, 5]]
-        self.reconnect_test_method = ["OFF_ON"]
-        self.reconnect_delay = [[1.5, 5], [1.5, 6]]
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-        # read AP list
-        self.ap_list = []
-        for i in range(1, len(cmd_set)):
-            for j in range(len(cmd_set[i][1])):
-                if cmd_set[i][1][j] != "":
-                    cmd_string = "self.ap_list.append(dict(zip(AP_PROP, " + cmd_set[i][1][j] + ")))"
-                    exec cmd_string
-
-        folder_path = MakeFolder.make_folder(self.performance_folder_path + "\\" + LOG_FOLDER)
-        file_name = "JAP_log_%s.log" % (time.strftime("%m%d%H%M%S", time.localtime()))
-        self._performance_log_file = os.path.join(folder_path, file_name)
-
-        # test statistics
-        self._succeed_count = self._fail_count = self._time_cost_count = 0
-        self._total_time = self._longest_time = 0
-
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        # get target type "SSC" or "AT"
-        self.target_type = ["SSC" if test_env.get_port_by_name("AT1") is None else "AT"]
-        self.target_type.append("SSC" if test_env.get_port_by_name("AT2") is None else "AT")
-        self._utility = WifiConnUtility.WifiConnUtility(self)
-        pass
-
-    def _generate_random_ap_prop(self):
-        ap_prop = dict.fromkeys(AP_PROP)
-        # generate target ap_value
-        ap_prop["ssid_len"] = random.randint(SSID_LEN_RANGE[0], SSID_LEN_RANGE[1])
-        ap_prop["channel"] = random.choice(range(1, 14))
-        ap_prop["enc"] = random.choice(ENC_TYPE)
-        ap_prop["pwd_len"] = random.randint(PWD_RANGE[ap_prop["enc"]][0], PWD_RANGE[ap_prop["enc"]][1])
-        # generate string
-        if self.target_type[0] == self.target_type[1] == "AT":
-            ap_prop["ssid"] = Encoding.generate_random_utf8_str(ap_prop["ssid_len"])
-            ap_prop["pwd"] = Encoding.generate_random_utf8_str(ap_prop["pwd_len"])
-            # NativeLog.add_trace_info("ssid hex is : %x" % ap_prop["ssid"])
-            # NativeLog.add_trace_info("pwd hex is : %x" % ap_prop["pwd"])
-        else:
-            ap_prop["ssid"] = Encoding.generate_random_printable_str(ap_prop["ssid_len"])
-            ap_prop["pwd"] = Encoding.generate_random_printable_str(ap_prop["pwd_len"])
-
-        return ap_prop
-
-    def _logging_performance(self, ssid, join_method="Normal", time_cost=0):
-        # log performance to performance log file
-        with open(self._performance_log_file, "ab+") as f:
-            # log time and ssid
-            f.write("\r\n[%s]:\r\n[AP name] %s\r\n" %
-                    (time.strftime("%m-%d %H:%M:%S", time.localtime()), ssid))
-            if join_method == "Normal" or join_method == "OFF_ON":
-                if time_cost is not False:
-                    self._succeed_count += 1
-                    if join_method == "Normal":
-                        f.write("[Succeed][%f]\r\n" % time_cost)
-                        self._longest_time = (time_cost > self._longest_time and
-                                              [time_cost] or [self._longest_time])[0]
-                        self._time_cost_count += 1
-                        self._total_time += time_cost
-                    else:
-                        f.write("[Succeed][%s]\r\n" % join_method)
-                else:
-                    self._fail_count += 1
-                    f.write("[Fail][%s]\r\n" % join_method)
-        pass
-
-    def _logging_fail_step(self, ssid, step):
-        with open(self._performance_log_file, "ab+") as f:
-            f.write("\r\n[%s]:\r\n[AP name] %s\r\n" %
-                    (time.strftime("%m-%d %H:%M:%S", time.localtime()), ssid))
-            f.write("[Fail][%s]\r\n" % step)
-        pass
-
-    def _generate_performance_report(self):
-        with open(self._performance_log_file, "ab+") as f:
-            f.write("[Test report] Succeed: %d\r\n" % self._succeed_count)
-            f.write("[Test report] Failed: %d\r\n" % self._fail_count)
-            if self._succeed_count > 0 or self._fail_count > 0:
-                f.write("[Test report] Pass Rate: %f\r\n" %
-                        (self._succeed_count/(self._fail_count+self._succeed_count)))
-            if self._time_cost_count > 0:
-                f.write("[Test report] Average time: %f\r\n" % (self._total_time/self._time_cost_count))
-                f.write("[Test report] Longest time: %f\r\n" % self._longest_time)
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        # mandatory configurable params
-        try:
-            target_ap_num = self.target_ap_num
-            test_count = self.test_count
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for WifiJAP script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # prepare ap list
-        _ap_list = [["target", None]] * target_ap_num
-        for _ap_prop in self.ap_list:
-            _ap_list.append(["AP", _ap_prop])
-
-        # set to correct mode first
-        self._utility.set_mode([1, 2])
-
-        for i in xrange(test_count):
-            _ap = random.choice(_ap_list)
-            # arrange ap
-            _ap_type = _ap[0]
-            _ap_prop = _ap[1]
-            if _ap_type == "target":
-                _ap_prop = self._generate_random_ap_prop()
-                pass
-
-            # step 1 : mandatory step, set up AP
-            if self._utility.setup_ap(_ap_type, _ap_prop) is False:
-                self._logging_fail_step(_ap_prop["ssid"], "Set AP")
-                NativeLog.add_prompt_trace("[Step1] setup AP Fail")
-                continue
-            step_config = random.choice(self.step_config)
-            NativeLog.add_prompt_trace("[Step1] setup AP succeed")
-
-            # step 2 : optional step, do scan before connect
-            if step_config & STEPS["SCAN1"] != 0:  # check option
-                if self._utility.do_scan(_ap_prop) is False:
-                    self._logging_fail_step(_ap_prop["ssid"], "Scan before JAP")
-                NativeLog.add_prompt_trace("[Step2] Scan Done")
-
-            # step 3 : mandatory step, join AP
-            if step_config & STEPS["JAP"] != 0:  # check option
-                _join_test_method = random.choice(self.join_test_method)
-                time_cost = self._utility.join_ap(_join_test_method, _ap_type, _ap_prop, self.join_delay)
-                # log performance to performance log file
-                self._logging_performance(_ap_prop["ssid"], _join_test_method, time_cost)
-                if time_cost is False:
-                    # do scan once to check if AP exist
-                    self._utility.do_scan(_ap_prop)
-                    continue
-                NativeLog.add_prompt_trace("[Step3] Join AP done")
-
-            # step 4 : optional step, scan after join AP
-            if step_config & STEPS["SCAN2"] != 0:  # check option
-                if self._utility.do_scan(_ap_prop) is False:
-                    self._logging_fail_step(_ap_prop["ssid"], "Scan after JAP")
-                NativeLog.add_prompt_trace("[Step4] Scan done")
-
-            # step 5 : optional step, reconnect test
-            if step_config & STEPS["RECONNECT"] != 0:  # check option
-                _reconnect_test_method = random.choice(self.reconnect_test_method)
-                if self._utility.do_reconnect(_reconnect_test_method,
-                                              _ap_type, _ap_prop, self.reconnect_delay) is False:
-                    self._logging_fail_step(_ap_prop["ssid"], "Reconnect")
-
-                NativeLog.add_prompt_trace("[Step5] Reconnect done")
-            # continue to next loop
-            NativeLog.add_prompt_trace("[WifiJAP] Test count %d done" % i)
-
-        # generate report and cleanup
-        self._generate_performance_report()
-
-        self.result_cntx.set_result("Succeed")
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiJAPAtt.py b/components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiJAPAtt.py
deleted file mode 100755 (executable)
index 23eeba3..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-import os
-import time
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-from Utility import RSSICalibrator
-from Utility import MakeFolder
-
-MAX_RSSI = 0
-MIN_RSSI = -110
-MAX_ATT = 60
-LOG_FOLDER = os.path.join("Performance", "JAP")
-AP_PROP_KEY = ("ssid", "password", "apc")
-
-
-class Performance(object):
-    RSSI_THRESHOLD = -90
-
-    def __init__(self):
-        self.succeed_rssi = dict.fromkeys(range(MIN_RSSI, MAX_RSSI), 0)
-        self.failed_rssi = dict.fromkeys(range(MIN_RSSI, MAX_RSSI), 0)
-        self.failed_att = dict.fromkeys(range(MAX_ATT), 0)
-        self.result = True
-        pass
-
-    def log_performance(self, result, att, rssi):
-        if result == "Succeed":
-            self.succeed_rssi[rssi] += 1
-        else:
-            if rssi == 0:
-                self.failed_att[att] += 1
-            else:
-                self.failed_rssi[rssi] += 1
-                if rssi > self.RSSI_THRESHOLD:
-                    self.result = False
-        pass
-
-    def get_result(self):
-        return self.result
-
-    def __str__(self):
-        data = "Succeed:\r\n"
-        for rssi in self.succeed_rssi:
-            if self.succeed_rssi[rssi] > 0:
-                data += "\tRSSI%4d: %2d times\r\n" % (rssi, self.succeed_rssi[rssi])
-
-        data += "Failed during scan:\r\n"
-        for att in self.failed_att:
-            if self.failed_att[att] > 0:
-                data += "\tATT%3d: %2d times\r\n" % (att, self.failed_att[att])
-
-        data += "Failed during JAP:\r\n"
-        for rssi in self.failed_rssi:
-            if self.failed_rssi[rssi] > 0:
-                data += "\tRSSI%4d: %2d times\r\n" % (rssi, self.failed_rssi[rssi])
-
-        return data
-
-    pass
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        self.att_test_list = range(60)
-        self.performance_folder_path = log_path
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-
-        self.ap_list = self.get_parameter("shield_box_ap_list")
-
-        self.performance = dict([(ap_prop["ssid"], Performance()) for ap_prop in self.ap_list])
-        # create log file
-        folder_path = MakeFolder.make_folder(self.performance_folder_path + "\\" + LOG_FOLDER)
-        self.performance_log = os.path.join(folder_path,
-                                            "JAP_Att_%s.log" % time.strftime("%d%H%M%S", time.localtime()))
-
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def log_performance(self, att, rssi, ssid, result):
-        NativeLog.add_prompt_trace("[%s][ssid %s] [att %s] [rssi %s]" % (result, ssid, att, rssi))
-        data = ""
-        self.performance[ssid].log_performance(result, att, rssi)
-        for _ssid in self.performance:
-            data += "[ssid] %s\r\n%s\r\n" % (_ssid, self.performance[_ssid])
-        with open(self.performance_log, "wb+") as f:
-            f.write(data)
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        try:
-            # configurable params
-            ap_list = self.ap_list
-            att_test_list = self.att_test_list
-            test_count = self.test_count
-            # configurable params
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for JAPAtt script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        for x in xrange(test_count):
-            for ap_prop in ap_list:
-                ssid = ap_prop[0]
-                password = ap_prop[1]
-                apc = ap_prop[2]
-                if ap_prop[1] == "":
-                    # set a default string for open ap
-                    password = "1"
-
-                # switch off all outlet, switch on AP outlet
-                outlet_config_dict = dict.fromkeys(range(1, 9), "OFF")
-                outlet_config_dict[apc] = "ON"
-                apc_cmd = "APC <APC1>"
-                for outlet in outlet_config_dict:
-                    apc_cmd += " %s %s" % (outlet_config_dict[outlet], outlet)
-                checker_stings = ["P PC_COM L OK"]
-                fail_string = "Fail, Fail to switch apc"
-                if self.load_and_exe_one_step(checker_stings, [apc_cmd], fail_string) is False:
-                    return
-
-                # wait AP ready
-                time.sleep(20)
-
-                # create RSSI Calibrator
-                calibrator = RSSICalibrator.Calibrator()
-
-                ret = True
-                for att_value in att_test_list:
-                    # step 0 set att value
-                    checker_stings = ["R PC_COM L OK"]
-                    test_action_string = ["ATT <att_port> %s" % att_value]
-                    fail_string = "Fail, Fail to set att value"
-                    if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False:
-                        continue
-
-                    # step 1 get AP RSSI
-                    checker_stings = ["R SSC1 A <rssi>:\+SCAN:%s,[:\d\w]+,\d+,\d+,([-\d]+)" % ssid]
-                    test_action_string = ["SSC SSC1 sta -S -s %s" % ssid]
-                    fail_string = "Fail, Fail to scan"
-                    rssi = scan_count = 0
-                    for i in range(3):
-                        if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                                      check_freq=1, check_time=5) is False:
-                            self.log_performance(att_value, 0, ssid, "Failed to measure RSSI")
-                            continue
-                        rssi += int(self.test_env.get_variable_by_name("rssi")[1])
-                        scan_count += 1
-
-                    rssi = calibrator.calibrate_rssi(float(rssi) / scan_count if scan_count > 0 else 0, att_value)
-
-                    # step 2 connect to AP
-                    checker_stings = ["R SSC1 C +JAP:CONNECTED"]
-                    test_action_string = ["SSC SSC1 sta -C -s %s -p %s" % (ssid, password)]
-                    fail_string = "Fail, Fail to JAP"
-                    if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string,
-                                                  check_freq=1, check_time=45) is False:
-                        self.log_performance(att_value, rssi, ssid, "Failed to JAP")
-                        if rssi < -90:
-                            continue
-                        else:
-                            ret = False
-                            break
-                if ret:
-                    self.log_performance(att_value, rssi, ssid, "Succeed")
-                else:
-                    self.log_performance(att_value, rssi, ssid, "Failed")
-
-        # finally, execute done
-        for ssid in self.performance:
-            if self.performance[ssid].get_result() is False:
-                self.result_cntx.set_result("Failed")
-                break
-        else:
-            self.result_cntx.set_result("Succeed")
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiSmartConfig.py b/components/idf_test/integration_test/TestCaseScript/WiFiStress/WifiSmartConfig.py
deleted file mode 100755 (executable)
index 830de76..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-import random
-import os
-import time
-import copy
-
-from TCAction import TCActionBase
-from NativeLog import NativeLog
-from Utility import Encoding
-from Utility import MakeFolder
-
-AP_PROP = ("ssid", "ssid_len", "pwd",
-           "pwd_len", "channel", "enc", "apc")
-
-SMART_TYPE = ("esp-touch", "airkiss")
-
-TEST_METHOD = ("ssid_broadcast", "ssid_hidden")
-
-HT = ("ht20", "ht40")
-
-TEST_STAT = ("total count", "fail count", "total time", "longest time")
-
-_TEST_STAT_INIT_DICT = {"total count": 0,
-                        "fail count": 0,
-                        "total time": 0,
-                        "longest time": 0,
-                        }
-
-LOG_FOLDER = os.path.join("Performance", "SmartConfig")
-
-
-SSID_LEN_RANGE = (1, 32)  # in bytes
-ENC_TYPE = (0, 2, 3, 4)  # do not support WEP for 8266 soft AP
-PWD_RANGE = {0: [0, 0],
-             1: [5, 5],
-             2: [8, 32],
-             3: [8, 32],
-             4: [8, 32],
-             }
-
-
-class TestCase(TCActionBase.CommonTCActionBase):
-
-    def __init__(self, test_case, test_env, timeout=30, log_path=TCActionBase.LOG_PATH):
-        TCActionBase.CommonTCActionBase.__init__(self, test_case, test_env, timeout=timeout, log_path=log_path)
-        self.performance_folder_path = log_path
-        # default value for optional configurable params
-        self.test_method = ["ssid_hidden", "ssid_broadcast"]
-        self.bssid = "ff:ff:ff:ff:ff:ff"
-        self.ht_ap = dict(zip(HT, [("<ht20_ap_ssid>", "<ht20_ap_password>"),
-                                   ("<ht40_ap_ssid>", "<ht40_ap_password>")]))
-        self.ap_channel = {"ht20": 1, "ht40": 1}
-        self.delay_time = 3  # default 3s, wait for scan done
-        # load param from excel
-        cmd_set = test_case["cmd set"]
-        for i in range(1, len(cmd_set)):
-            if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "":
-                cmd_string = "self." + cmd_set[i][0]
-                exec cmd_string
-
-        folder_path = MakeFolder.make_folder(self.performance_folder_path + "\\" + LOG_FOLDER)
-        file_name = "SmartConfig_log_%s.log" % (time.strftime("%m%d%H%M%S", time.localtime()))
-        self._performance_log_file = os.path.join(folder_path, file_name)
-
-        # type
-        self.target_type = ["SSC" if test_env.get_port_by_name("AT1") is None else "AT"]
-        self.target_type.append("SSC" if test_env.get_port_by_name("AT2") is None else "AT")
-
-        # test statistics
-        # better ways to create?
-        _test_stat = dict.fromkeys(TEST_STAT, 0)
-        _test_method = dict.fromkeys(TEST_METHOD)
-        _test_ht = dict.fromkeys(HT)
-        self.test_stat = dict.fromkeys(SMART_TYPE)
-        for i in SMART_TYPE:
-            self.test_stat[i] = copy.deepcopy(_test_ht)
-            for j in HT:
-                self.test_stat[i][j] = copy.deepcopy(_test_method)
-                for k in TEST_METHOD:
-                    self.test_stat[i][j][k] = copy.deepcopy(_test_stat)
-
-        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
-        pass
-
-    def _generate_random_ap_prop(self, ht_type):
-        ap_prop = dict.fromkeys(AP_PROP)
-        # generate target ap_value
-        ap_prop["ssid_len"] = random.randint(SSID_LEN_RANGE[0], SSID_LEN_RANGE[1])
-        ap_prop["channel"] = self.ap_channel[ht_type]
-        ap_prop["enc"] = random.choice(ENC_TYPE)
-        ap_prop["pwd_len"] = random.randint(PWD_RANGE[ap_prop["enc"]][0], PWD_RANGE[ap_prop["enc"]][1])
-        ap_prop["ssid"] = Encoding.generate_random_printable_str(ap_prop["ssid_len"])
-        ap_prop["pwd"] = Encoding.generate_random_printable_str(ap_prop["pwd_len"])
-
-        return ap_prop
-
-    def _logging_performance(self, time_cost, ssid, password, smart_type, test_method, ht_type):
-        # update test statistics
-        stat = self.test_stat[smart_type][ht_type][test_method]
-        stat["total count"] += 1
-        # log performance to performance log file
-        with open(self._performance_log_file, "ab+") as f:
-            # log time and ssid
-            if time_cost is not False:
-                time_tmp = float(time_cost)/10
-                f.write("\r\n[%s]:\r\n[Succeed] [%.2f]\r\n" %
-                        (time.strftime("%m-%d %H:%M:%S", time.localtime()), time_tmp))
-                stat["total time"] += time_tmp
-                stat["longest time"] = time_tmp if time_tmp > stat["longest time"] else stat["longest time"]
-            else:
-                f.write("\r\n[%s]:\r\n[Fail]\r\n" %
-                        time.strftime("%m-%d %H:%M:%S", time.localtime()))
-                stat["fail count"] += 1
-
-            f.write("[%s] [%s] [%s]\r\n" %
-                    (smart_type, test_method, ht_type))
-            f.write("[ssid] %s \r\n[password] %s\r\n" %
-                    (ssid, password))
-        pass
-
-    def _generate_performance_report(self):
-        with open(self._performance_log_file, "ab+") as f:
-            for i in SMART_TYPE:
-                for j in HT:
-                    for k in TEST_METHOD:
-                        stat = self.test_stat[i][j][k]
-                        f.write("\r\n[Test report] [%s] [%s] [%s]\r\n" % (i, j, k))
-                        if stat["total count"] > 0:
-                            f.write("[Total]: %d\r\n" % stat["total count"])
-                            f.write("[Failed]: %d\r\n" % stat["fail count"])
-                            f.write("[Fail ratio]: %.2f%%\r\n" %
-                                    (float(stat["fail count"])/stat["total count"] * 100))
-                            f.write("[Longest time cost]: %.2f\r\n" % stat["longest time"])
-                            if (stat["total count"] - stat["fail count"]) > 0:
-                                f.write("[Average time cost]: %.2f\r\n" %
-                                        (stat["total time"]/(stat["total count"]-stat["fail count"])))
-
-    @staticmethod
-    def cmd_exception_catcher(e):
-        raise e
-        pass
-
-    def execute(self):
-        TCActionBase.TCActionBase.execute(self)
-        self.result_cntx.start()
-
-        # mandatory configurable params
-        try:
-            test_count = self.test_count
-            delay_time = self.delay_time
-        except StandardError, e:
-            NativeLog.add_trace_critical("Error configuration for WifiJAP script, error is %s" % e)
-            raise StandardError("Error configuration")
-
-        # step 0 : set AT1 mode
-        fail_string = "Fail to restore init condition"
-        if self.target_type[0] == "AT":
-            cmd = ["ATS AT1 AT+CWMODE=1"]
-            checker_stings = ["R AT1 L OK"]
-        else:
-            cmd = ["SSC SSC1 op -S -o 1"]
-            checker_stings = ["R SSC1 C +MODE:OK"]
-        if self.target_type[1] == "AT":
-            cmd.append("ATS AT2 AT+CWMODE=2")
-            checker_stings.append("R AT2 L OK")
-        else:
-            cmd.append("SSC SSC2 op -S -o 2")
-            checker_stings.append("R SSC2 C +MODE:OK")
-
-        if self.load_and_exe_one_step(checker_stings, cmd,
-                                      fail_string, check_time=150) is False:
-            NativeLog.add_trace_critical(fail_string)
-            return
-
-        for i in xrange(test_count):
-            _method = random.choice(self.test_method)
-            _ht = random.choice(self.ht)
-            _ap_prop = self._generate_random_ap_prop(_ht)
-            _smart_type = random.choice(self.smart_type)
-            _ht_ap = self.ht_ap[_ht]
-            is_hidden = 0 if _method == "ssid_broadcast" else 1
-            # get ip and
-
-            # step 1 : restore init condition
-            fail_string = "Fail to restore init condition"
-            if self.target_type[0] == "AT":
-                cmd = ["ATS AT1 AT+CWSTOPSMART", "WIFI <pc_wifi_nic> CONN %s %s <pc_ip_sc>" % (_ht_ap[0], _ht_ap[1])]
-                checker_stings = ["P AT1 L OK", "P PC_COM L OK"]
-            else:
-                cmd = ["SSC SSC1 smart -E", "WIFI <pc_wifi_nic> CONN %s %s <pc_ip_sc>" % (_ht_ap[0], _ht_ap[1])]
-                checker_stings = ["P SSC1 C +SC:OK", "P PC_COM L OK"]
-
-            if self.load_and_exe_one_step(checker_stings, cmd,
-                                          fail_string, check_time=200) is False:
-                NativeLog.add_trace_critical(fail_string)
-                continue
-            NativeLog.add_prompt_trace("Step1 Done")
-
-            # step 2 : test method is ssid_broadcast, then set AP on target 2
-            if _method == "ssid_broadcast":
-                fail_string = "Fail to set AP"
-                if self.target_type[1] == "AT":
-                    cmd = ["ATS AT2 AT+CWSAP=\"%s\",\"%s\",%d,%d" % (_ap_prop["ssid"], _ap_prop["pwd"],
-                                                                     _ap_prop["channel"], _ap_prop["enc"])]
-                    checker_stings = ["R AT2 L OK"]
-                else:
-                    cmd = ["SSC SSC2 ap -S -s %s -p %s -n %d -t %d" % (_ap_prop["ssid"], _ap_prop["pwd"],
-                                                                       _ap_prop["channel"], _ap_prop["enc"])]
-                    checker_stings = ["R SSC2 C +SAP:OK"]
-
-                if self.load_and_exe_one_step(checker_stings, cmd,
-                                              fail_string, check_time=50) is False:
-                    NativeLog.add_trace_critical(fail_string)
-                    continue
-            NativeLog.add_prompt_trace("Step2 Done")
-
-            # step 3 : start SMART
-            fail_string = "Fail to start smart config"
-            if self.target_type[0] == "AT":
-                cmd = ["ATS AT1 AT+CWSTARTSMART"]
-                checker_stings = ["R AT1 L OK"]
-            else:
-                cmd = ["SSC SSC1 smart -S -a 0"]
-                checker_stings = ["R SSC1 C +SC:OK"]
-
-            if self.load_and_exe_one_step(checker_stings, cmd,
-                                          fail_string, check_time=50) is False:
-                NativeLog.add_trace_critical(fail_string)
-                continue
-            # sleep for delay_time seconds to wait scan done or simulate delay config situation
-            time.sleep(delay_time)
-            NativeLog.add_prompt_trace("Step3 Done")
-
-            # step 4 : do smart config
-            fail_string = "Fail in smart config"
-            cmd = ["SMART %s <pc_ip_sc> %s %s %s %d"
-                   % (_smart_type, _ap_prop["ssid"], _ap_prop["pwd"], self.bssid, is_hidden)]
-            if self.target_type[0] == "AT":
-                checker_stings = ["P AT1 C Smart%20get%20wifi%20info",
-                                  "P LOG1 C %s C %s" % (_ap_prop["ssid"], _ap_prop["pwd"])]
-            else:
-                checker_stings = ["P SSC1 C %s C %s" % (_ap_prop["ssid"], _ap_prop["pwd"])]
-
-            try:
-                time_cost = self.load_and_exe_one_step(checker_stings, cmd,
-                                                       fail_string, check_time=400,
-                                                       cmd_exception_catcher=self.cmd_exception_catcher)
-            except StandardError:
-                NativeLog.add_prompt_trace("Exception occurred during executing cmd")
-                continue
-                pass
-            self._logging_performance(time_cost, _ap_prop["ssid"], _ap_prop["pwd"],
-                                      _smart_type, _method, _ht)
-            if time_cost is False:
-                NativeLog.add_prompt_trace(fail_string)
-                continue
-
-            # continue to next loop
-            NativeLog.add_prompt_trace("[WifiSmartConfig] Test count %d done" % i)
-
-        # generate report and cleanup
-        self._generate_performance_report()
-
-        self.result_cntx.set_result("Succeed")
-
-    def result_check(self, port_name, data):
-        TCActionBase.CommonTCActionBase.result_check(self, port_name, data)
-        self.result_cntx.append_data(port_name, data)
-
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
diff --git a/components/idf_test/integration_test/TestCaseScript/WiFiStress/__init__.py b/components/idf_test/integration_test/TestCaseScript/WiFiStress/__init__.py
deleted file mode 100755 (executable)
index 7960a3c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-__all__ = ["WifiJAP", ]
\ No newline at end of file
diff --git a/components/idf_test/integration_test/TestEnvAll.yml b/components/idf_test/integration_test/TestEnvAll.yml
deleted file mode 100644 (file)
index 6926a2d..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-test environment:
-- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_1,
-  test environment detail: 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_2,
-  test environment detail: 'PC has 1 WiFi NIC.
-
-    1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_3,
-  test environment detail: 'Able to access WAN after connect to AP.
-
-    1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_ADC,
-  test environment detail: 'PC has 1 wired NIC connected to AP.
-
-    Analog input connect to AT1 TOUT.
-
-    Multimeter connect to input, able to measure input voltage.
-
-    1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_APC1,
-  test environment detail: "PC has 1 wired NIC connected to AP.\nPC has 1 wired NIC\
-    \ connected to APC (static IP within the same subnet with APC). \nAPC control\
-    \ AP power supply. \nPC has 1 WiFi NIC. \n1 AT target connect with PC by UART\
-    \ (AT and LOG port).", test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_APC2,
-  test environment detail: "Able to access WAN after connect to AP.\nPC has 1 wired\
-    \ NIC connected to APC (static IP within the same subnet with APC). \nAPC control\
-    \ AP power supply.\nPC has 1 WiFi NIC.\n1 AT target connect with PC by UART (AT\
-    \ and LOG port).", test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_HighSpeedUART,
-  test environment detail: 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 AT target connect with PC by high speed UART (AT and LOG port).', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_SmartConfigIOT,
-  test environment detail: '1 AT target connect with PC by UART (AT and LOG port).
-
-    PC has 1 wired NIC connect to Common AP.
-
-    Several AP are placed near AT target.
-
-    Several smart phone installed test APK are placed near AT target.', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_1,
-  test environment detail: 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_JAP,
-  test environment detail: "Several AP are placed near AT target.\nPC has 1 wired\
-    \ NIC connected to APC (static IP within the same subnet with APC).\nAPC control\
-    \ power supply for all APs. \n2 AT target connect with PC by UART (AT and LOG\
-    \ port).", test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_Sleep,
-  test environment detail: 'AP support DTIM placed with AT target.
-
-    2 AT target connect with PC by UART (AT and LOG port).
-
-    Multimeter connect with PC via GPIB.
-
-    Series multimeter between GND and VCC of AT1.
-
-    AT1''s light sleep wakeup pin and wakeup indication connect with AT2''s GPIO.',
-  test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_SmartConfig,
-  test environment detail: '2 AT target connect with PC by UART (AT and LOG port).
-
-    PC has 1 WiFi NIC.
-
-    One HT20 AP and One HT40 AP are placed near target.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: 'SSC1
-
-    SSC2', additional param list: '', basic param list: '', script path: EnvBase.py,
-  tag: IR_T2_1, test environment detail: '[TBD] 本测试为非自动测试, 红外能够做到数据收发吻合即可通过', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: NVS_T1_1,
-  test environment detail: '1 NVS target connect with PC by UART.
-
-    1 SSC target connect with PC by UART.
-
-    SSC2 GPIO connect to NVS1 power control pin.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '',
-  basic param list: '', script path: EnvBase.py, tag: PWM_T1_1, test environment detail: "[TBD]\
-    \ 1. PWM OS SDK 以及 Non-OS SDK的测试建议分开进行, 放在不同的文件夹, 防止文件命名混淆\n2. 分析CSV文件的Python脚本只能分析单个channel\
-    \ \n3. 如果Init脚本打印\"Network Error\" 检查TCP Server是不是正常发送data", test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_1,
-  test environment detail: 'PC has 2 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_2,
-  test environment detail: 'Able to access WAN after connect to AP.
-
-    1 SSC target connect with PC by UART.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_8089,
-  test environment detail: 'PC has 1 wired NIC connected to AP.
-
-    1 8089 tablet able to run iperf test placed near SSC1.
-
-    1 SSC target connect with PC by UART.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_ADC,
-  test environment detail: 'PC has 1 wired NIC connected to AP.
-
-    Analog input connect to SSC1 TOUT.
-
-    Multimeter connect to input, able to measure input voltage.
-
-    1 SSC target connect with PC by UART.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_APC,
-  test environment detail: "PC has 1 wired NIC connected to AP.\nPC has 1 wired NIC\
-    \ connected to APC (static IP within the same subnet with APC). \nAPC control\
-    \ AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with PC by UART.",
-  test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_Enterprise,
-  test environment detail: "AP use WPA2-Etherprise is placed near SSC1. \n1 SSC target\
-    \ connect with PC by UART.", test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_IOT1,
-  test environment detail: 'PC has 1 WiFi NIC.
-
-    1 SSC target connect with PC by UART.
-
-    AP todo IOT test are placed near SSC1.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T1_InitData,
-  test environment detail: '2 SSC target connect with PC by UART.
-
-    SSC1 use 40M crystal oscillator.
-
-    SSC2 use normal 26M crystal oscillator.
-
-    SSC2 GPIO connect to SSC1 power control pin.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_ShieldBox,
-  test environment detail: 'refer to figure.
-
-    All APs and APC should be set to the same IP subnet.
-
-    PC wired NIC should set static IP address within the same subnet with AP.
-
-    Must use onboard wired NIC.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_Sleep1,
-  test environment detail: 'AP support DTIM placed with AT target.
-
-    SSC target connect with Raspberry Pi by UART.
-
-    Multimeter connect with Raspberry Pi via GPIB.
-
-    Series multimeter between GND and VCC of SSC1.
-
-    SSC1''s light sleep wakeup pin and wakeup indication connect with Raspberry Pi''s
-    GPIO.
-
-    SSC1''s XPD connect with RSTB.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_Sleep2,
-  test environment detail: 'AP support DTIM placed with AT target.
-
-    SSC target connect with Raspberry Pi by UART.
-
-    Multimeter connect with Raspberry Pi via GPIB.
-
-    Series multimeter between GND and VCC of SSC1.
-
-    SSC1''s RSTB pin connect with Raspberry Pi''s GPIO.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_TempBox,
-  test environment detail: '1 SSC target connect with PC by UART.
-
-    Put SSC target to temperature box.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '',
-  basic param list: '', script path: EnvBase.py, tag: SSC_T1_Timer, test environment detail: '[TBD]
-    通过串口工具调节Timer, 将GPIO_13端口连接到逻辑分析仪', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_VDD33,
-  test environment detail: '1 SSC target connect with PC by UART.
-
-    Multimeter connect to VDD33, able to measure voltage.', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_WEP,
-  test environment detail: '1 SSC target connect with PC by UART.
-
-    One WEP share key AP placed near SSC1.', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_1,
-  test environment detail: 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    2 SSC target connect with PC by UART.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1
-
-    SSC2', additional param list: '', basic param list: '', script path: EnvBase.py,
-  tag: SSC_T2_GPIO1, test environment detail: '[TBD] 2个ESP_8266通过UART连到PC, ESP_8266的
-    GPIO_6相连', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1
-
-    SSC2', additional param list: '', basic param list: '', script path: EnvBase.py,
-  tag: SSC_T2_GPIO2, test environment detail: '[TBD] 1. 2个ESP_8266通过UART连到PC, ESP_8266的
-    GPIO_15通过面包板相连
-
-    2. 可借助面包板, 将GPIO_15, 以及中断函数被打开的8266板的GPIO_2 相连', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1
-
-    SSC2', additional param list: '', basic param list: '', script path: EnvBase.py,
-  tag: SSC_T2_GPIO3, test environment detail: '[TBD] 2个ESP_8266通过UART连到PC, ESP_8266之间需要测试的Target_GPIO相连',
-  test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_JAP,
-  test environment detail: 'PC has 1 wired NIC connected to APC.
-
-    APC control the power supply of multiple APs.
-
-    2 SSC target connect with PC by UART.', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_PhyMode,
-  test environment detail: '2 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
-
-    Put 4 APs near SSC targets.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_ShieldBox,
-  test environment detail: '2 SSC target connect with PC by UART.
-
-    Put them to Shield box.', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_SmartConfig,
-  test environment detail: '2 SSC target connect with PC by UART.
-
-    PC has 1 WiFi NIC.
-
-    One HT20 AP and One HT40 AP are placed near target.', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 3.0, script path: EnvBase.py, tag: SSC_T3_PhyMode,
-  test environment detail: '3 SSC target connect with PC by UART.
-
-    PC has one WiFi NIC support capture wlan packet using libpcap.
-
-    Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2).
-
-    Put 4 APs near SSC targets.', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 5.0, script path: EnvBase.py, tag: SSC_T5_1,
-  test environment detail: 5 SSC target connect with PC by UART., test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 5.0, script path: EnvBase.py, tag: SSC_T5_IOT1,
-  test environment detail: '5 SSC targets connect with PC by UART.
-
-    some Android smart phone are placed near SSC targets.', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T6_1,
-  test environment detail: 'PC has 1 wired NIC connected to AP.
-
-    PC has 1 WiFi NIC.
-
-    6 SSC target connect with PC by UART.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: TempSensor_T1_1,
-  test environment detail: 'Tempeture sensor target connect with PC by UART.
-
-    AP support DTIM placed with AT target.
-
-    Multimeter connect with PC via GPIB.
-
-    Series multimeter between GND and VCC of TempSensor1.
-
-    PC has 1 wired NIC connected to switch.
-
-    APC, AP also connect with swtich.
-
-    All devices connected with switch use the same IP subnet.
-
-    APC control AP power supply.', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '',
-  basic param list: '', script path: EnvBase.py, tag: UART_T1_1, test environment detail: '[TBD]
-    将ESP_8266通过UART连到PC', test script: EnvBase}
-- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: 'SSC1
-
-    SSC2', additional param list: '', basic param list: '', script path: EnvBase.py,
-  tag: UART_T1_2, test environment detail: '[TBD] ESP_8266通过UART_0通过USB, UART_1 TXD
-    通过 TTLcable 连到PC', test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: UT_T1_1,
-  test environment detail: Environment for running ESP32 unit tests, test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: UT_T1_SDMODE,
-  test environment detail: Environment for running sd card sd mode unit tests, test script: EnvBase}
-- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: UT_T1_SPIMODE,
-  test environment detail: Environment for running sd card spi mode unit tests, test script: EnvBase}
-- {PC OS: linux, Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: WebServer_T1_1,
-  test environment detail: 'Web Server target connect with PC by UART.
-
-    PC has 1 wired NIC connected to switch.
-
-    APC, AP also connect with swtich.
-
-    All devices connected with switch use same IP subnet.
-
-    APC control AP power supply.', test script: EnvBase}
-- {PC OS: linux, Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: WebServer_T1_2,
-  test environment detail: 'Web Server target connect with PC by UART.
-
-    4 PC with WiFi NIC placed near WebServer1.', test script: EnvBase}
-- PC OS: ''
-  Special: N
-  Target Count: 1
-  script path: EnvBase.py
-  tag: SSC_T1_3
-  test environment detail: 'PC has one BT adapter (dongle). 1 SSC target connect with PC by UART.'
-  test script: EnvBase