From baa8f2d5f67d45e5761f92cb93fe22050f08d0fe Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Tue, 27 Feb 2018 14:25:49 +0100 Subject: Clean all OpenStack related modules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Xtesting is only focused on the framework and entry points. Change-Id: I1a4146ed8519438b13810a20ddf1140c35bb6ecd Signed-off-by: Cédric Ollivier --- functest/opnfv_tests/vnf/__init__.py | 0 functest/opnfv_tests/vnf/epc/__init__.py | 0 .../epc/featureFiles/000-local-commands.feature | 12 - .../Attach_Procedure_AttachWithIMSI.feature | 39 - ...tach_Procedure_AttachWithIMSI_Wrong_MCC.feature | 32 - ...tach_Procedure_AttachWithIMSI_Wrong_MNC.feature | 33 - ...tach_Procedure_AttachWithIMSI_Wrong_TAC.feature | 33 - .../Attach_Procedure_Attach_With_GUTI.feature | 36 - ..._Procedure_With_DNS_Server_Addr_Request.feature | 44 - ..._Procedure_With_DSMIPv6_HA_Addr_Request.feature | 44 - ...rocedure_With_DSMIPv6_HN_Prefix_Request.feature | 44 - ...edure_With_DSMIPv6_IPv4_HA_Addr_Request.feature | 44 - ...Procedure_With_IM_CN_SS_Signalling_Flag.feature | 44 - ...ach_Procedure_With_IP_Addr_Alloc_DHCPv4.feature | 44 - ...edure_With_IP_Addr_Alloc_NAS_Signalling.feature | 44 - ..._With_MS_Support_Bearer_Ctrl_Indication.feature | 44 - ...tach_Procedure_With_P_CSCF_Addr_Request.feature | 44 - .../vnf/epc/featureFiles/Auth_Accept.feature | 45 - ...y_Network_GUTIattach_AuthReject_re_Auth.feature | 47 - ..._GUTIattach_IMSIdiff_AuthReject_re_Auth.feature | 38 - ...y_Network_IMSIattach_AuthReject_re_Auth.feature | 62 - ...ccept_by_UE_GUTIattach_MAC_code_failure.feature | 45 - ...ccept_by_UE_IMSIattach_MAC_code_failure.feature | 42 - .../Auth_NotAccept_by_UE_SQN_failure.feature | 46 - ...uth_NotAccept_by_UE_non_EPS_AuthUnaccpt.feature | 45 - .../vnf/epc/featureFiles/ResourceBundle.xml | 4 - functest/opnfv_tests/vnf/epc/juju_epc.py | 513 - functest/opnfv_tests/vnf/epc/juju_epc.yaml | 32 - functest/opnfv_tests/vnf/ims/__init__.py | 0 .../opnfv_tests/vnf/ims/clearwater_ims_base.py | 164 - functest/opnfv_tests/vnf/ims/cloudify_ims.py | 540 - functest/opnfv_tests/vnf/ims/cloudify_ims.yaml | 51 - functest/opnfv_tests/vnf/ims/cloudify_ims_perf.py | 498 - .../opnfv_tests/vnf/ims/cloudify_ims_perf.yaml | 91 - functest/opnfv_tests/vnf/ims/ixia/__init__.py | 0 .../ims/ixia/files/REG_CALL_OPNFV_v13.rxf.template | 16731 ------------------- .../vnf/ims/ixia/files/Registration_only_LPS.tst | Bin 491520 -> 0 bytes .../opnfv_tests/vnf/ims/ixia/files/SIPCall.tst | Bin 573440 -> 0 bytes .../vnf/ims/ixia/utils/IxChassisUtils.py | 150 - .../opnfv_tests/vnf/ims/ixia/utils/IxLoadUtils.py | 398 - .../opnfv_tests/vnf/ims/ixia/utils/IxRestUtils.py | 193 - .../opnfv_tests/vnf/ims/ixia/utils/__init__.py | 0 functest/opnfv_tests/vnf/ims/orchestra.yaml | 68 - .../opnfv_tests/vnf/ims/orchestra_clearwaterims.py | 574 - functest/opnfv_tests/vnf/ims/orchestra_openims.py | 598 - functest/opnfv_tests/vnf/router/__init__.py | 0 .../opnfv_tests/vnf/router/cloudify_vrouter.py | 499 - .../opnfv_tests/vnf/router/cloudify_vrouter.yaml | 33 - .../vnf/router/test_controller/__init__.py | 0 .../router/test_controller/function_test_exec.py | 135 - functest/opnfv_tests/vnf/router/test_scenario.yaml | 28 - functest/opnfv_tests/vnf/router/utilvnf.py | 323 - .../vnf/router/vnf_controller/__init__.py | 0 .../vnf/router/vnf_controller/checker.py | 63 - .../vnf/router/vnf_controller/command_generator.py | 38 - .../vnf/router/vnf_controller/ssh_client.py | 135 - .../vnf/router/vnf_controller/vm_controller.py | 146 - .../vnf/router/vnf_controller/vnf_controller.py | 141 - functest/opnfv_tests/vnf/router/vrouter_base.py | 122 - 59 files changed, 23219 deletions(-) delete mode 100644 functest/opnfv_tests/vnf/__init__.py delete mode 100644 functest/opnfv_tests/vnf/epc/__init__.py delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/000-local-commands.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MCC.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MNC.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_TAC.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_Attach_With_GUTI.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DNS_Server_Addr_Request.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HA_Addr_Request.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HN_Prefix_Request.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_IPv4_HA_Addr_Request.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IM_CN_SS_Signalling_Flag.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_DHCPv4.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_NAS_Signalling.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_MS_Support_Bearer_Ctrl_Indication.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_P_CSCF_Addr_Request.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Auth_Accept.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_GUTIattach_MAC_code_failure.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_SQN_failure.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt.feature delete mode 100644 functest/opnfv_tests/vnf/epc/featureFiles/ResourceBundle.xml delete mode 100644 functest/opnfv_tests/vnf/epc/juju_epc.py delete mode 100644 functest/opnfv_tests/vnf/epc/juju_epc.yaml delete mode 100644 functest/opnfv_tests/vnf/ims/__init__.py delete mode 100644 functest/opnfv_tests/vnf/ims/clearwater_ims_base.py delete mode 100644 functest/opnfv_tests/vnf/ims/cloudify_ims.py delete mode 100644 functest/opnfv_tests/vnf/ims/cloudify_ims.yaml delete mode 100644 functest/opnfv_tests/vnf/ims/cloudify_ims_perf.py delete mode 100644 functest/opnfv_tests/vnf/ims/cloudify_ims_perf.yaml delete mode 100644 functest/opnfv_tests/vnf/ims/ixia/__init__.py delete mode 100644 functest/opnfv_tests/vnf/ims/ixia/files/REG_CALL_OPNFV_v13.rxf.template delete mode 100644 functest/opnfv_tests/vnf/ims/ixia/files/Registration_only_LPS.tst delete mode 100644 functest/opnfv_tests/vnf/ims/ixia/files/SIPCall.tst delete mode 100644 functest/opnfv_tests/vnf/ims/ixia/utils/IxChassisUtils.py delete mode 100644 functest/opnfv_tests/vnf/ims/ixia/utils/IxLoadUtils.py delete mode 100644 functest/opnfv_tests/vnf/ims/ixia/utils/IxRestUtils.py delete mode 100644 functest/opnfv_tests/vnf/ims/ixia/utils/__init__.py delete mode 100644 functest/opnfv_tests/vnf/ims/orchestra.yaml delete mode 100644 functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py delete mode 100644 functest/opnfv_tests/vnf/ims/orchestra_openims.py delete mode 100644 functest/opnfv_tests/vnf/router/__init__.py delete mode 100644 functest/opnfv_tests/vnf/router/cloudify_vrouter.py delete mode 100644 functest/opnfv_tests/vnf/router/cloudify_vrouter.yaml delete mode 100644 functest/opnfv_tests/vnf/router/test_controller/__init__.py delete mode 100644 functest/opnfv_tests/vnf/router/test_controller/function_test_exec.py delete mode 100644 functest/opnfv_tests/vnf/router/test_scenario.yaml delete mode 100644 functest/opnfv_tests/vnf/router/utilvnf.py delete mode 100644 functest/opnfv_tests/vnf/router/vnf_controller/__init__.py delete mode 100644 functest/opnfv_tests/vnf/router/vnf_controller/checker.py delete mode 100644 functest/opnfv_tests/vnf/router/vnf_controller/command_generator.py delete mode 100644 functest/opnfv_tests/vnf/router/vnf_controller/ssh_client.py delete mode 100644 functest/opnfv_tests/vnf/router/vnf_controller/vm_controller.py delete mode 100644 functest/opnfv_tests/vnf/router/vnf_controller/vnf_controller.py delete mode 100644 functest/opnfv_tests/vnf/router/vrouter_base.py (limited to 'functest/opnfv_tests/vnf') diff --git a/functest/opnfv_tests/vnf/__init__.py b/functest/opnfv_tests/vnf/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/functest/opnfv_tests/vnf/epc/__init__.py b/functest/opnfv_tests/vnf/epc/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/000-local-commands.feature b/functest/opnfv_tests/vnf/epc/featureFiles/000-local-commands.feature deleted file mode 100644 index 438e2c0e..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/000-local-commands.feature +++ /dev/null @@ -1,12 +0,0 @@ - Feature: Local_Commands_Testing - - @local-commands - Scenario: Local Commands testing - Given all configured endpoints for SSH are connected successfully - When I execute the command ifconfig in this system and check the presence of following strings in the response: - | responseResult | existence | - | inet | {string:nocase:present} | - | UP | {string:nocase:present} | - | BROADCAST | {string:nocase:present} | - | RUNNING | {string:nocase:present} | - | MULTICAST | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI.feature deleted file mode 100644 index 67831580..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI.feature +++ /dev/null @@ -1,39 +0,0 @@ -############################################################################################################################ -# Date: <22/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature:Attach_Procedure_AttachWithIMSI - -@attach-procedure @Attach_Procedure_AttachWithIMSI @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 - -Scenario: Attach Procedure Success configured with AttachWithIMSI when Selected PLMN is neither the registered PLMN nor in the list of equivalent PLMNs - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# Set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Wait for execution to complete before checking results -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with IMSI | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MCC.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MCC.feature deleted file mode 100644 index 4e3cfd7b..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MCC.feature +++ /dev/null @@ -1,32 +0,0 @@ -############################################################################################################################ -# Date: <31/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature:Attach_Procedure_AttachWithIMSI_Wrong_MCC - -@attach-procedure @Attach_Procedure_AttachWithIMSI_Wrong_MCC @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 - -Scenario: Attach Procedure Failure due to wrong MCC. - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with EPC parameter "ABOT.ENB.mobile_country_code=201" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Received s1 setup failure for MME | {string:nocase:present} | - diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MNC.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MNC.feature deleted file mode 100644 index 6082db06..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MNC.feature +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################################################################ -# Date: <31/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature:Attach_Procedure_AttachWithIMSI_Wrong_MNC - -@attach-procedure @Attach_Procedure_AttachWithIMSI_Wrong_MNC @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 - -Scenario: Attach Procedure Failure due to wrong MNC. - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with EPC parameter "ABOT.ENB.mobile_network_code=95" on node ABOT - -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Received s1 setup failure for MME | {string:nocase:present} | - - diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_TAC.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_TAC.feature deleted file mode 100644 index 855ffd63..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_TAC.feature +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################################################################ -# Date: <31/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature:Attach_Procedure_AttachWithIMSI_Wrong_TAC - -@attach-procedure @Attach_Procedure_AttachWithIMSI_Wrong_TAC @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 - -Scenario: Attach Procedure Failure due to wrong TAC - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with EPC parameter "ABOT.ENB.tracking_area_code=10" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Received s1 setup failure for MME | {string:nocase:present} | - - diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_Attach_With_GUTI.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_Attach_With_GUTI.feature deleted file mode 100644 index d6ca0369..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_Attach_With_GUTI.feature +++ /dev/null @@ -1,36 +0,0 @@ -############################################################################################################################ -# Date: <31/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature:Attach_Procedure_Attach_With_GUTI - -@attach-procedure @Attach_Procedure_Attach_With_GUTI @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 -Scenario: Attach Procedure Success with right GUTI. - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with GUTI | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | - diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DNS_Server_Addr_Request.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DNS_Server_Addr_Request.feature deleted file mode 100644 index f68e1812..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DNS_Server_Addr_Request.feature +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################################################################ -# Date: <22/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature: Attach Procedure With DNS Server Address Request Indication in PCO - -@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 -@TS_36_523_9_2_1_1_3 @Attach_Procedure_DNS_Server_Address_Request @PCO - -Scenario: Attach Procedure indicating a request DNS Server Address in the protocol configuration options - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# Set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - -Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IPV6_DNS_SERVER_ADDR_REQ=true" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Wait for execution to complete before checking results -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with IMSI | {string:nocase:present} | -| Send PDN Connectivity Request message with DNS Server Address Request | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | -| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0003 | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HA_Addr_Request.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HA_Addr_Request.feature deleted file mode 100644 index 92c38a2b..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HA_Addr_Request.feature +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################################################################ -# Date: <22/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature: Attach Procedure with DSMIPv6 Home Agent Address Request Indication in PCO - -@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 -@TS_36_523_9_2_1_1_3 @Attach_Procedure_DSMIPv6_Home_Agent_Address_Request @PCO - -Scenario: Attach Procedure indicating a request for DSMIPv6 Home Agent Address in the protocol configuration options - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# Set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - -Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IPV6_HA_ADDR_REQ=true" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Wait for execution to complete before checking results -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with IMSI | {string:nocase:present} | -| Send PDN Connectivity Request message with DSMIPv6 Home Agent Address Request | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | -| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0007 | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HN_Prefix_Request.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HN_Prefix_Request.feature deleted file mode 100644 index fe389028..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HN_Prefix_Request.feature +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################################################################ -# Date: <22/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature: Attach Procedure With DSMIPv6 Home Network Prefix Request Indication in PCO - -@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 -@TS_36_523_9_2_1_1_3 @Attach_Procedure_DSMIPv6_Home_Network_Prefix_Request @PCO - -Scenario: Attach Procedure indicating a request for DSMIPv6 Home Network Prefix Request in the protocol configuration options - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# Set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - -Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IPV6_HN_PREFIX_REQ=true" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Wait for execution to complete before checking results -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with IMSI | {string:nocase:present} | -| Send PDN Connectivity Request message with DSMIPv6 Home Network Prefix Request | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | -| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0008 | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_IPv4_HA_Addr_Request.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_IPv4_HA_Addr_Request.feature deleted file mode 100644 index 5821cd55..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_IPv4_HA_Addr_Request.feature +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################################################################ -# Date: <22/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature: Attach Procedure With DSMIPv6 IPv4 Home Agent Address Request Indication in PCO - -@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 -@TS_36_523_9_2_1_1_3 @Attach_Procedure_DSMIPv6_IPv4_Home_Agent_Address_Request @PCO - -Scenario: Attach Procedure indicating a request for DSMIPv6 IPv4 Home Agent Address in the protocol configuration options - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# Set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - -Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IPV6_IPV4_HA_ADDR_REQ=true" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Wait for execution to complete before checking results -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with IMSI | {string:nocase:present} | -| Send PDN Connectivity Request message with DSMIPv6 IPv4 Home Agent Address Request | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | -| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0009 | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IM_CN_SS_Signalling_Flag.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IM_CN_SS_Signalling_Flag.feature deleted file mode 100644 index 81f4fbc4..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IM_CN_SS_Signalling_Flag.feature +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################################################################ -# Date: <22/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature: Attach Procedure With IM CN Subsystem Signalling Flag Indication in PCO - -@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 -@TS_36_523_9_2_1_1_3 @Attach_Procedure_IM_CN_Subsystem_Signalling_Flag @PCO - -Scenario: Attach Procedure indicating IM CN Subsystem Signalling Flag in the protocol configuration options - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# Set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - -Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IM_CN_SS_SIGNAL_FLAG=true" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Wait for execution to complete before checking results -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with IMSI | {string:nocase:present} | -| Send PDN Connectivity Request message with IM CN Subsystem Signalling Flag | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | -| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0002 | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_DHCPv4.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_DHCPv4.feature deleted file mode 100644 index fba01f24..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_DHCPv4.feature +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################################################################ -# Date: <22/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature: Attach Procedure with IPv4 Address Allocation Via DHCPv4 Indication in PCO - -@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 -@TS_36_523_9_2_1_1_3 @Attach_Procedure_IPv4_Address_Allocation_Via_DHCPv4 @PCO - -Scenario: Attach Procedure indicating IPv4 address allocation via DHCPv4 in the protocol configuration options - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# Set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - -Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IP_ADDR_ALLOC_DHCPV4=true" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Wait for execution to complete before checking results -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with IMSI | {string:nocase:present} | -| Send PDN Connectivity Request message with IPv4 address allocation via DHCPv4 | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | -| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 000B | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_NAS_Signalling.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_NAS_Signalling.feature deleted file mode 100644 index 1cb869b4..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_NAS_Signalling.feature +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################################################################ -# Date: <22/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature: Attach Procedure With IP Address Allocation Via NAS Signalling Indication in PCO - -@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 -@TS_36_523_9_2_1_1_3 @Attach_Procedure_IP_Address_Allocation_Via_NAS_Signalling @PCO - -Scenario: Attach Procedure indicating IP address allocation via NAS signalling in the protocol configuration options - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# Set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - -Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IP_ADDR_NAS_SIGNALING=true" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Wait for execution to complete before checking results -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with IMSI | {string:nocase:present} | -| Send PDN Connectivity Request message with IP address allocation via NAS signalling | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | -| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 000A | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_MS_Support_Bearer_Ctrl_Indication.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_MS_Support_Bearer_Ctrl_Indication.feature deleted file mode 100644 index bfc7515c..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_MS_Support_Bearer_Ctrl_Indication.feature +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################################################################ -# Date: <22/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature: Attach Procedure With MS Support of Network Requested Bearer Control indicator in PCO - -@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 -@TS_36_523_9_2_1_1_3 @Attach_Procedure_MS_Support_Network_Requested_Bearer_Control_Indicator @PCO - -Scenario: Attach Procedure indicating MS Support of Network Requested Bearer Control indicator - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# Set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - -Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.MS_SUPPORT_BEARER_CTRL_IND=true" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Wait for execution to complete before checking results -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with IMSI | {string:nocase:present} | -| Send PDN Connectivity Request message with MS Support of Network Requested Bearer Control indicator | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | -| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0005 | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_P_CSCF_Addr_Request.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_P_CSCF_Addr_Request.feature deleted file mode 100644 index 605bb934..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_P_CSCF_Addr_Request.feature +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################################################################ -# Date: <22/08/2016> Version: <1.1> # -############################################################################################################################ - -Feature: Attach Procedure With P-CSCF Address Request Indication in PCO - -@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000 -@TS_36_523_9_2_1_1_3 @Attach_Procedure_P-CSCF_Address_Request @PCO - -Scenario: Attach Procedure indicating a request for P-CSCF address in the protocol configuration options - -Given all configured endpoints for SSH are connected successfully - -Given the steps below will be executed at the end -When I stop S1AP simulator on node ABOT -When I run the SSH command "sudo service mme_gw restart" on node MME -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds -Then the ending steps are complete - -# Set ABOT configuration -Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT -Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - -Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IPV6_P_CSCF_ADDR_REQ=true" on node ABOT - -# Execute ABOT S1AP Simulator -When I run S1AP simulator on node ABOT with 1 UE - -# Wait for execution to complete before checking results -Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - -# Validate Test Case Execution at Simulator -Then I receive S1AP response on node ABOT and verify the presence of all the following values: -| responseResult | existence | -| Send Attach Request message with IMSI | {string:nocase:present} | -| Send PDN Connectivity Request message with P-CSCF Address Request | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Authentication Request message | {string:nocase:present} | -| Send Authentication Response message | {string:nocase:present} | -| Received Security Mode Command message | {string:nocase:present} | -| Send Security Mode Complete message | {string:nocase:present} | -| Received Attach Accept message | {string:nocase:present} | -| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0001 | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_Accept.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_Accept.feature deleted file mode 100644 index 3136dbdb..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_Accept.feature +++ /dev/null @@ -1,45 +0,0 @@ - ############################################################################################################################ - # Date: <13/01/2017> Version: <1.1> # - ############################################################################################################################ - - - Feature:Auth_Accept - - @authentication-procedure @Auth_Accept @TS_24_301 @24_301_5_4_2_1 @24_301_5_4_2_3 @33_401_6_1_1 @Series-0004 - - Scenario: UE receives an AUTHENTICATION REQUEST message. UE responds with a correct AUTHENTICATION RESPONSE message and establishes correct - EPS security context. - - Given all configured endpoints for SSH are connected successfully - - Given the steps below will be executed at the end - When I stop S1AP simulator on node ABOT - When I run the SSH command "sudo service mme_gw restart" on node MME - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Then the ending steps are complete - - # Set ABOT configuration - Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT - - # Execute ABOT S1AP Simulator - When I run S1AP simulator on node ABOT with 1 UE - - # Wait for execution to complete before checking results - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - - # Validate Test Case Execution at Simulator - Then I receive S1AP response on node ABOT and verify the presence of all the following values: - | responseResult | existence | - | Send Attach Request message with GUTI | {string:nocase:present} | - | Received Identity Request message | {string:nocase:present} | - | Identification requested type = IMSI | {string:nocase:present} | - | Send Identity Response message | {string:nocase:present} | - | Received Authentication Request message | {string:nocase:present} | - | Send Authentication Response message | {string:nocase:present} | - | Received Security Mode Command message | {string:nocase:present} | - | Send Security Mode Complete message | {string:nocase:present} | - | Received Attach Accept message | {string:nocase:present} | - - - diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth.feature deleted file mode 100644 index fa0d3764..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth.feature +++ /dev/null @@ -1,47 +0,0 @@ - ############################################################################################################################ - # Date: <22/11/2016> Version: <1.1> # - ############################################################################################################################ - - - Feature:Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth - - @authentication-procedure @Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth @TS_24_301 @24_301_5_3_3 @24_301_5_5_1_2_2 @24_301_5_5_1_2_4 @24_301_6_5_1_2 @24_301_9_9_3_33 @TS_36_304 @36_304_4_3 @negTCs @Series-0001 - - Scenario: Authentication not accepted by the network when attach with GUTI, Authentication reject when RES is different from UE and MME. IMSI given by the UE during the identification procedure is same from the IMSI the network had associated with the GUTI. - - Given all configured endpoints for SSH are connected successfully - - Given the steps below will be executed at the end - When I stop S1AP simulator on node ABOT - When I run the SSH command "sudo service mme_gw restart" on node MME - #RES is restored to 0x00 in teardown process - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0x00" on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Then the ending steps are complete - - # set ABOT configuration - Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT - # set the value of RES parameter (other than 0x00) manually in Authentication Response message which is sent from UE to MME - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0xFF" on node ABOT - - - # Execute ABOT S1AP Simulator - When I run S1AP simulator on node ABOT with 1 UE - - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - - # Validate Test Case Execution at Simulator - Then I receive S1AP response on node ABOT and verify the presence of all the following values: - | responseResult | existence | - | Send Attach Request message with GUTI | {string:nocase:present} | - | Received Identity Request message | {string:nocase:present} | - | Identification requested type = IMSI | {string:nocase:present} | - | Send Identity Response message | {string:nocase:present} | - | Received Authentication Request message | {string:nocase:present} | - | Send Authentication Response message | {string:nocase:present} | - | Received Authentication Reject message | {string:nocase:present} | - | Authentication not accepted by the network | {string:nocase:present} | - diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth.feature deleted file mode 100644 index 4c00c878..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth.feature +++ /dev/null @@ -1,38 +0,0 @@ - ############################################################################################################################ - # Date: <22/11/2016> Version: <1.1> # - ############################################################################################################################ - - Feature:Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth - - @authentication-procedure @Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth @TS_24_301 @24_301_5_3_3 @24_301_5_5_1_2_2 @24_301_5_5_1_2_4 @24_301_6_5_1_2 @24_301_9_9_3_33 @TS_36_304 @36_304_4_3 @negTCs @Series-0001 - - Scenario: Authentication not accepted by the network when attach with GUTI, Authentication reject when RES is different from UE and MME. IMSI given by the UE during the identification procedure differs from the IMSI the network had associated with the GUTI - - Given all configured endpoints for SSH are connected successfully - - Given the steps below will be executed at the end - When I stop S1AP simulator on node ABOT - When I run the SSH command "sudo service mme_gw restart" on node MME - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0x00" on node ABOT - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.WRONGIMSI=false" on node ABOT - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Then the ending steps are complete - - # set ABOT configuration - Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT - # set the value of RES parameter (other than 0x00) manually in Authentication Response message which is sent from UE to MME - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0xFF" on node ABOT - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.WRONGIMSI=true" on node ABOT - - # Execute ABOT S1AP Simulator - When I run S1AP simulator on node ABOT with 1 UE - - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - - # Validate Test Case Execution at Simulator - Then I receive S1AP response on node ABOT and verify the presence of all the following values: - | responseResult | existence | - | Send Attach Request message with GUTI | {string:nocase:present} | - | Received Authentication Request message | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth.feature deleted file mode 100644 index cce93f42..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth.feature +++ /dev/null @@ -1,62 +0,0 @@ - ############################################################################################################################ - # Date: <22/11/2016> Version: <1.1> # - ############################################################################################################################ - - Feature:Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth - - @authentication-procedure @Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth @TS_24_301 @24_301_5_3_3 @24_301_5_5_1_2_2 @24_301_5_5_1_2_4 @24_301_6_5_1_2 @24_301_9_9_3_33 @TS_36_304 @36_304_4_3 @negTCs @Series-0001 - - Scenario: Authentication not accepted by the network when attach with IMSI, Authentication reject when RES is different from UE and MME - - Given all configured endpoints for SSH are connected successfully - - Given the steps below will be executed at the end - When I stop S1AP simulator on node ABOT - When I run the SSH command "sudo service mme_gw restart" on node MME - #RES is restore to 0x00 in teardown process - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0x00" on node ABOT - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Then the ending steps are complete - - # set ABOT configuration - Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - # set the value of RES parameter (other than 0x00) manually in Authentication Response message which is sent from UE to MME - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0xFF" on node ABOT - - # Execute ABOT S1AP Simulator - When I run S1AP simulator on node ABOT with 1 UE - - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - - # Validate Test Case Execution at Simulator - Then I receive S1AP response on node ABOT and verify the presence of all the following values: - | responseResult | existence | - | Send Attach Request message with IMSI | {string:nocase:present} | - | Received Authentication Request message | {string:nocase:present} | - | Send Authentication Response message | {string:nocase:present} | - | Received Authentication Reject message | {string:nocase:present} | - | Authentication not accepted by the network | {string:nocase:present} | - - - - - - - - - - - - - - - - - - - - - - diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_GUTIattach_MAC_code_failure.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_GUTIattach_MAC_code_failure.feature deleted file mode 100644 index ca5b281f..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_GUTIattach_MAC_code_failure.feature +++ /dev/null @@ -1,45 +0,0 @@ - ############################################################################################################################ - # Date: <13/12/2016> Version: <1.1> # - ############################################################################################################################ - - Feature:Auth_NotAccept_by_UE_GUTIattachMAC_code_failure - - @authentication-procedure @Auth_NotAccept_by_UE_GUTIattach_MAC_code_failure @TS_24_301 @24_301_5_4_2_6 @24_301_5_4_2_7 @negTCs @Series-0002 - - Scenario: UE received invalid MAC code in AUTN parameter in the AUTHENTICATION REQUEST message. Authentication not accepted by the UE when attach with GUTI. UE responds the Authentication failure message with EMM cause (reject cause) #20 "MAC failure". - - Given all configured endpoints for SSH are connected successfully - - Given the steps below will be executed at the end - When I stop S1AP simulator on node ABOT - When I run the SSH command "sudo service mme_gw restart" on node MME - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.USIM_API_K=\"8BAF473F2F8FD09487CCCBD7097C6862\"" on node ABOT - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Then the ending steps are complete - - # set ABOT configuration - Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT - - # CORRECT K_VALUE is 8BAF473F2F8FD09487CCCBD7097C6862 WRONG K_VALUE fec86ba6eb707ed08905757b1bb44b8f - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.USIM_API_K=\"fec86ba6eb707ed08905757b1bb44b8f\"" on node ABOT - - # Execute ABOT S1AP Simulator - When I run S1AP simulator on node ABOT with 1 UE - - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - - # Validate Test Case Execution at Simulator - Then I receive S1AP response on node ABOT and verify the presence of all the following values: - | responseResult | existence | - | Send Attach Request message with GUTI | {string:nocase:present} | - | Received Identity Request message | {string:nocase:present} | - | Identification requested type = IMSI | {string:nocase:present} | - | Send Identity Response message | {string:nocase:present} | - | Received Authentication Request message | {string:nocase:present} | - | Send Authentication Failure message (cause=20) | {string:nocase:present} | - | Received Authentication Reject message | {string:nocase:present} | - | Authentication not accepted by the network | {string:nocase:present} | - diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure.feature deleted file mode 100644 index 2b8cf401..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure.feature +++ /dev/null @@ -1,42 +0,0 @@ - ############################################################################################################################ - # Date: <13/12/2016> Version: <1.1> # - ############################################################################################################################ - - Feature:Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure - - @authentication-procedure @Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure @TS_24_301 @24_301_5_4_2_6 @24_301_5_4_2_7 @negTCs @Series-0002 - - Scenario: UE received invalid MAC code in AUTN parameter in the AUTHENTICATION REQUEST message. Authentication not accepted by the UE when attach with IMSI. UE responds the Authentication failure message with EMM cause (reject cause) #20 "MAC failure". - - Given all configured endpoints for SSH are connected successfully - - Given the steps below will be executed at the end - When I stop S1AP simulator on node ABOT - When I run the SSH command "sudo service mme_gw restart" on node MME - # WRONGIMSI is restored to false in teardown process - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.USIM_API_K_VALUE=\"8BAF473F2F8FD09487CCCBD7097C6862\"" on node ABOT - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Then the ending steps are complete - - # set ABOT configuration - Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - - # CORRECT K_VALUE is 8BAF473F2F8FD09487CCCBD7097C6862 WRONG K_VALUE fec86ba6eb707ed08905757b1bb44b8f - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.USIM_API_K=\"fec86ba6eb707ed08905757b1bb44b8f\"" on node ABOT - - # Execute ABOT S1AP Simulator - When I run S1AP simulator on node ABOT with 1 UE - - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - - # Validate Test Case Execution at Simulator - Then I receive S1AP response on node ABOT and verify the presence of all the following values: - | responseResult | existence | - | Send Attach Request message with IMSI | {string:nocase:present} | - | Received Authentication Request message | {string:nocase:present} | - | Send Authentication Failure message (cause=20) | {string:nocase:present} | - | Received Authentication Reject message | {string:nocase:present} | - | Authentication not accepted by the network | {string:nocase:present} | - diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_SQN_failure.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_SQN_failure.feature deleted file mode 100644 index ff2a2e20..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_SQN_failure.feature +++ /dev/null @@ -1,46 +0,0 @@ - ############################################################################################################################ - # Date: <13/01/2017> Version: <1.1> # - ############################################################################################################################ - - - Feature:Auth_NotAccept_by_UE_SQN_failure - - @authentication-procedure @Auth_NotAccept_by_UE_SQN_failure @TS_24_301 @24_301_5_4_2_6 @24_301_5_4_2_7 @negTCs @Series-0004 - - Scenario: UE receives an AUTHENTICATION REQUEST message with SQN out of range. UE sends an AUTHENTICATION FAILURE message to the network, with EMM cause "synch failure" and a re-synchronization token. Now UE receives a new correct AUTHENTICATION REQUEST message while T3420 is running. Finally UE sends a correct AUTHENTICATION RESPONSE message. - - Given all configured endpoints for SSH are connected successfully - - Given the steps below will be executed at the end - When I stop S1AP simulator on node ABOT - When I run the SSH command "sudo service mme_gw restart" on node MME - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.SYNC_FAILURE=false" on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Then the ending steps are complete - - # set ABOT configuration - Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.SYNC_FAILURE=true" on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT - - # Execute ABOT S1AP Simulator - When I run S1AP simulator on node ABOT with 1 UE - - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - - # Validate Test Case Execution at Simulator - Then I receive S1AP response on node ABOT and verify the presence of all the following values: - | responseResult | existence | - | Send Attach Request message with GUTI | {string:nocase:present} | - | Received Identity Request message | {string:nocase:present} | - | Identification requested type = IMSI | {string:nocase:present} | - | Send Identity Response message | {string:nocase:present} | - | Received Authentication Request message | {string:nocase:present} | - | Send Authentication Failure message (cause=21) | {string:nocase:present} | - | Received Authentication Request message | {string:nocase:present} | - | Send Authentication Response message | {string:nocase:present} | - | Received Security Mode Command message | {string:nocase:present} | - | Send Security Mode Complete message | {string:nocase:present} | - | Received Attach Accept message | {string:nocase:present} | diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt.feature deleted file mode 100644 index 372e6b79..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt.feature +++ /dev/null @@ -1,45 +0,0 @@ - ############################################################################################################################ - # Date: <13/01/2017> Version: <1.1> # - ############################################################################################################################ - - - Feature:Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt - - @authentication-procedure @Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt @TS_24_301 @24_301_5_4_2_6 @24_301_5_4_2_7 @negTCs @Series-0004 @SS_changesReqd - - Scenario: UE receives an AUTHENTICATION REQUEST message with "separation bit" in the AMF field is 0. UE shall send an AUTHENTICATION FAILURE message to the network, with the reject cause #26 "non-EPS authentication unacceptable" - - # AuC system changes required. HSS should send Authentication request message with AMF=AMF_RESYNCH amf = {0xff 0xff} - # file name kdf.c line no: 156 uint8_t amf[] = { 0xFF, 0xFF }; - - Given all configured endpoints for SSH are connected successfully - - Given the steps below will be executed at the end - When I stop S1AP simulator on node ABOT - When I run the SSH command "sudo service mme_gw restart" on node MME - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.SYNC_FAILURE=false" on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Then the ending steps are complete - - # set ABOT configuration - Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT - Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.SYNC_FAILURE=true" on node ABOT - Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT - - # Execute ABOT S1AP Simulator - When I run S1AP simulator on node ABOT with 1 UE - - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - Given the execution is paused for {abotprop.WAIT_10_SEC} seconds - - # Validate Test Case Execution at Simulator - Then I receive S1AP response on node ABOT and verify the presence of all the following values: - | responseResult | existence | - | Send Attach Request message with GUTI | {string:nocase:present} | - | Received Identity Request message | {string:nocase:present} | - | Identification requested type = IMSI | {string:nocase:present} | - | Send Identity Response message | {string:nocase:present} | - | Received Authentication Request message | {string:nocase:present} | - | Send Authentication Failure message (cause=26) | {string:nocase:present} | - diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/ResourceBundle.xml b/functest/opnfv_tests/vnf/epc/featureFiles/ResourceBundle.xml deleted file mode 100644 index 64297220..00000000 --- a/functest/opnfv_tests/vnf/epc/featureFiles/ResourceBundle.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/functest/opnfv_tests/vnf/epc/juju_epc.py b/functest/opnfv_tests/vnf/epc/juju_epc.py deleted file mode 100644 index 3b62a9a1..00000000 --- a/functest/opnfv_tests/vnf/epc/juju_epc.py +++ /dev/null @@ -1,513 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2016 Rebaca and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -"""Juju testcase implementation.""" - -import errno -import logging -import os -import time -import json -import sys -import uuid -from copy import deepcopy -from urlparse import urljoin -import pkg_resources -import yaml - -from functest.core import vnf -from functest.opnfv_tests.openstack.snaps import snaps_utils -from functest.utils import config - -from snaps.config.flavor import FlavorConfig -from snaps.config.image import ImageConfig -from snaps.config.network import NetworkConfig, SubnetConfig -from snaps.config.router import RouterConfig -from snaps.config.security_group import ( - Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig) -from snaps.config.user import UserConfig -from snaps.openstack.create_flavor import OpenStackFlavor -from snaps.openstack.create_image import OpenStackImage -from snaps.openstack.create_network import OpenStackNetwork -from snaps.openstack.create_router import OpenStackRouter -from snaps.openstack.create_security_group import OpenStackSecurityGroup -from snaps.openstack.create_user import OpenStackUser -from snaps.openstack.utils import keystone_utils -from snaps.openstack.utils import nova_utils - -__author__ = "Amarendra Meher " -__author__ = "Soumaya K Nayek " - -CLOUD_TEMPLATE = """clouds: - abot-epc: - type: openstack - auth-types: [userpass] - endpoint: {url} - regions: - {region}: - endpoint: {url}""" - -CREDS_TEMPLATE2 = """credentials: - abot-epc: - default-credential: abot-epc - abot-epc: - auth-type: userpass - password: {pass} - project-domain-name: {project_domain_n} - tenant-name: {tenant_n}""" - -CREDS_TEMPLATE3 = """credentials: - abot-epc: - default-credential: abot-epc - abot-epc: - auth-type: userpass - password: {pass} - project-domain-name: {project_domain_n} - tenant-name: {tenant_n} - user-domain-name: {user_domain_n} - username: {user_n}""" - - -class JujuEpc(vnf.VnfOnBoarding): - # pylint:disable=too-many-instance-attributes - """Abot EPC deployed with JUJU Orchestrator Case""" - - __logger = logging.getLogger(__name__) - - def __init__(self, **kwargs): - if "case_name" not in kwargs: - kwargs["case_name"] = "juju_epc" - super(JujuEpc, self).__init__(**kwargs) - - # Retrieve the configuration - self.case_dir = pkg_resources.resource_filename( - 'functest', 'opnfv_tests/vnf/epc') - try: - self.config = getattr( - config.CONF, 'vnf_{}_config'.format(self.case_name)) - except Exception: - raise Exception("VNF config file not found") - self.config_file = os.path.join(self.case_dir, self.config) - self.orchestrator = dict(requirements=get_config( - "orchestrator.requirements", self.config_file)) - - self.created_object = [] - self.details['orchestrator'] = dict( - name=get_config("orchestrator.name", self.config_file), - version=get_config("orchestrator.version", self.config_file), - status='ERROR', - result='' - ) - - self.vnf = dict( - descriptor=get_config("vnf.descriptor", self.config_file), - requirements=get_config("vnf.requirements", self.config_file) - ) - self.details['vnf'] = dict( - descriptor_version=self.vnf['descriptor']['version'], - name=get_config("vnf.name", self.config_file), - version=get_config("vnf.version", self.config_file), - ) - self.__logger.debug("VNF configuration: %s", self.vnf) - - self.details['test_vnf'] = dict( - name=get_config("vnf_test_suite.name", self.config_file), - version=get_config("vnf_test_suite.version", self.config_file), - tag_name=get_config("vnf_test_suite.tag_name", self.config_file) - ) - self.public_auth_url = None - - self.res_dir = os.path.join( - getattr(config.CONF, 'dir_results'), self.case_name) - - def _bypass_juju_network_discovery_bug(self, name): - user_creator = OpenStackUser( - self.snaps_creds, - UserConfig( - name=name, password=str(uuid.uuid4()), - roles={'_member_': self.tenant_name})) - user_creator.create() - self.created_object.append(user_creator) - return user_creator - - def _register_cloud(self): - self.__logger.info("Creating Cloud for Abot-epc .....") - clouds_yaml = os.path.join(self.res_dir, "clouds.yaml") - cloud_data = { - 'url': self.public_auth_url, - 'region': self.snaps_creds.region_name} - with open(clouds_yaml, 'w') as yfile: - yfile.write(CLOUD_TEMPLATE.format(**cloud_data)) - if os.system( - 'juju add-cloud abot-epc -f {} --replace'.format(clouds_yaml)): - raise vnf.VnfPreparationException - - def _register_credentials_v2(self): - self.__logger.info("Creating Credentials for Abot-epc .....") - user_creator = self._bypass_juju_network_discovery_bug( - 'juju_network_discovery_bug') - snaps_creds = user_creator.get_os_creds(self.snaps_creds.project_name) - credentials_yaml = os.path.join(self.res_dir, "credentials.yaml") - creds_data = { - 'pass': snaps_creds.password, - 'tenant_n': snaps_creds.project_name, - 'user_n': snaps_creds.username} - with open(credentials_yaml, 'w') as yfile: - yfile.write(CREDS_TEMPLATE2.format(**creds_data)) - if os.system( - 'juju add-credential abot-epc -f {} --replace'.format( - credentials_yaml)): - raise vnf.VnfPreparationException - - def _register_credentials_v3(self): - self.__logger.info("Creating Credentials for Abot-epc .....") - user_creator = self._bypass_juju_network_discovery_bug( - 'juju_network_discovery_bug') - snaps_creds = user_creator.get_os_creds(self.snaps_creds.project_name) - credentials_yaml = os.path.join(self.res_dir, "credentials.yaml") - creds_data = { - 'pass': snaps_creds.password, - 'tenant_n': snaps_creds.project_name, - 'user_n': snaps_creds.username, - 'project_domain_n': snaps_creds.project_domain_name, - 'user_domain_n': snaps_creds.user_domain_name} - with open(credentials_yaml, 'w') as yfile: - yfile.write(CREDS_TEMPLATE3.format(**creds_data)) - if os.system( - 'juju add-credential abot-epc -f {} --replace'.format( - credentials_yaml)): - raise vnf.VnfPreparationException - - def _add_custom_rule(self, sec_grp_name): - """ To add custom rule for SCTP Traffic """ - sec_grp_rules = list() - sec_grp_rules.append( - SecurityGroupRuleConfig( - sec_grp_name=sec_grp_name, direction=Direction.ingress, - protocol=Protocol.sctp)) - security_group = OpenStackSecurityGroup( - self.snaps_creds, - SecurityGroupConfig( - name=sec_grp_name, - rule_settings=sec_grp_rules)) - security_group.create() - self.created_object.append(security_group) - - def prepare(self): - """Prepare testcase (Additional pre-configuration steps).""" - self.__logger.info("Additional pre-configuration steps") - super(JujuEpc, self).prepare() - try: - os.makedirs(self.res_dir) - except OSError as ex: - if ex.errno != errno.EEXIST: - self.__logger.exception("Cannot create %s", self.res_dir) - raise vnf.VnfPreparationException - self.public_auth_url = keystone_utils.get_endpoint( - self.snaps_creds, 'identity') - # it enforces a versioned public identity endpoint as juju simply - # adds /auth/tokens wich fails vs an unversioned endpoint. - if not self.public_auth_url.endswith(('v3', 'v3/', 'v2.0', 'v2.0/')): - self.public_auth_url = urljoin(self.public_auth_url, 'v3') - self._register_cloud() - if self.snaps_creds.identity_api_version == 3: - self._register_credentials_v3() - else: - self._register_credentials_v2() - - def deploy_orchestrator(self): # pylint: disable=too-many-locals - """ - Create network, subnet, router - - Bootstrap juju - """ - self.__logger.info("Deployed Orchestrator") - private_net_name = getattr( - config.CONF, 'vnf_{}_private_net_name'.format(self.case_name)) - private_subnet_name = getattr( - config.CONF, 'vnf_{}_private_subnet_name'.format(self.case_name)) - private_subnet_cidr = getattr( - config.CONF, 'vnf_{}_private_subnet_cidr'.format(self.case_name)) - abot_router = getattr( - config.CONF, 'vnf_{}_external_router'.format(self.case_name)) - - self.__logger.info("Creating full network ...") - subnet_settings = SubnetConfig( - name=private_subnet_name, cidr=private_subnet_cidr) - network_settings = NetworkConfig( - name=private_net_name, subnet_settings=[subnet_settings]) - network_creator = OpenStackNetwork(self.snaps_creds, network_settings) - net_id = network_creator.create().id - self.created_object.append(network_creator) - - ext_net_name = snaps_utils.get_ext_net_name(self.snaps_creds) - self.__logger.info("Creating network Router ....") - router_creator = OpenStackRouter( - self.snaps_creds, RouterConfig( - name=abot_router, - external_gateway=ext_net_name, - internal_subnets=[subnet_settings.name])) - router_creator.create() - self.created_object.append(router_creator) - self.__logger.info("Creating Flavor ....") - flavor_settings = FlavorConfig( - name=self.orchestrator['requirements']['flavor']['name'], - ram=self.orchestrator['requirements']['flavor']['ram_min'], - disk=10, vcpus=1) - flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings) - flavor_creator.create() - self.created_object.append(flavor_creator) - self.__logger.info("Upload some OS images if it doesn't exist") - images = get_config("tenant_images", self.config_file) - self.__logger.info("Images needed for vEPC: %s", images) - for image_name, image_file in images.iteritems(): - self.__logger.info("image: %s, file: %s", image_name, image_file) - if image_file and image_name: - image_creator = OpenStackImage(self.snaps_creds, ImageConfig( - name=image_name, image_user='cloud', img_format='qcow2', - image_file=image_file)) - image_id = image_creator.create().id - os.system( - 'juju metadata generate-image -d ~ -i {} -s {} -r ' - '{} -u {}'.format( - image_id, image_name, self.snaps_creds.region_name, - self.public_auth_url)) - self.created_object.append(image_creator) - self.__logger.info("Network ID : %s", net_id) - juju_bootstrap_command = ( - 'juju bootstrap abot-epc abot-controller --config network={} ' - '--metadata-source ~ --config ssl-hostname-verification=false ' - '--constraints mem=2G --bootstrap-series xenial ' - '--config use-floating-ip=true --debug ' - '--config use-default-secgroup=true'.format(net_id)) - os.system(juju_bootstrap_command) - return True - - def deploy_vnf(self): - """Deploy ABOT-OAI-EPC.""" - self.__logger.info("Upload VNFD") - descriptor = self.vnf['descriptor'] - self.__logger.info("Get or create flavor for all Abot-EPC") - flavor_settings = FlavorConfig( - name=self.vnf['requirements']['flavor']['name'], - ram=self.vnf['requirements']['flavor']['ram_min'], - disk=10, - vcpus=1) - flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings) - flavor_creator.create() - self.created_object.append(flavor_creator) - self.__logger.info("Deploying Abot-epc bundle file ...") - os.system('juju deploy {}'.format('/' + descriptor.get('file_name'))) - self.__logger.info("Waiting for instances .....") - status = os.system('juju-wait') - self.__logger.info("juju wait completed: %s", status) - self.__logger.info("Deployed Abot-epc on Openstack") - nova_client = nova_utils.nova_client(self.snaps_creds) - if status == 0: - instances = get_instances(nova_client) - self.__logger.info("List of Instance: %s", instances) - for items in instances: - metadata = get_instance_metadata(nova_client, items) - if 'juju-units-deployed' in metadata: - sec_group = ('juju-' + - metadata['juju-controller-uuid'] + - '-' + metadata['juju-model-uuid']) - self.__logger.info("Instance: %s", sec_group) - break - self.__logger.info("Adding Security group rule....") - # This will add sctp rule to a common Security Group Created - # by juju and shared to all deployed units. - self._add_custom_rule(sec_group) - self.__logger.info("Copying the feature files to Abot_node ") - os.system('juju scp -- -r {}/featureFiles abot-' - 'epc-basic/0:~/'.format(self.case_dir)) - self.__logger.info("Copying the feature files in Abot_node ") - os.system("juju ssh abot-epc-basic/0 'sudo rsync -azvv " - "~/featureFiles /etc/rebaca-test-suite" - "/featureFiles'") - count = 0 - while count < 10: - epcstatus = os.system('juju status oai-epc | ' - 'grep {} | grep {} | grep {}' - .format('EPC', 'is', 'running')) - if epcstatus == 0: - break - else: - time.sleep(60) - count = count + 1 - os.system('juju-wait') - return True - return False - - def test_vnf(self): - """Run test on ABoT.""" - start_time = time.time() - self.__logger.info("Running VNF Test cases....") - os.system('juju run-action abot-epc-basic/0 run ' - 'tagnames={}'.format(self.details['test_vnf']['tag_name'])) - os.system('juju-wait') - duration = time.time() - start_time - self.__logger.info("Getting results from Abot node....") - os.system('juju scp abot-epc-basic/0:/var/lib/abot-' - 'epc-basic/artifacts/TestResults.json {}/.' - .format(self.case_dir)) - self.__logger.info("Parsing the Test results...") - res = (process_abot_test_result('{}/TestResults.' - 'json'.format(self.case_dir))) - short_result = sig_test_format(res) - self.__logger.info(short_result) - self.details['test_vnf'].update(status='PASS', - result=short_result, - full_result=res, - duration=duration) - - self.__logger.info("Test VNF result: Passed: %d, Failed:" - "%d, Skipped: %d", short_result['passed'], - short_result['failures'], short_result['skipped']) - return True - - def clean(self): - """Clean created objects/functions.""" - try: - if not self.orchestrator['requirements']['preserve_setup']: - self.__logger.info("Removing deployment files...") - testresult = os.path.join(self.case_dir, 'TestResults.json') - if os.path.exists(testresult): - os.remove(testresult) - self.__logger.info("Destroying Orchestrator...") - os.system('juju destroy-controller -y abot-controller ' - '--destroy-all-models') - except Exception: # pylint: disable=broad-except - self.__logger.warn("Some issue during the undeployment ..") - self.__logger.warn("Tenant clean continue ..") - - if not self.orchestrator['requirements']['preserve_setup']: - self.__logger.info('Remove the Abot_epc OS object ..') - super(JujuEpc, self).clean() - - return True - - -# ---------------------------------------------------------- -# -# YAML UTILS -# -# ----------------------------------------------------------- -def get_config(parameter, file_path): - """ - Returns the value of a given parameter in file.yaml - parameter must be given in string format with dots - Example: general.openstack.image_name - """ - with open(file_path) as config_file: - file_yaml = yaml.safe_load(config_file) - config_file.close() - value = file_yaml - for element in parameter.split("."): - value = value.get(element) - if value is None: - raise ValueError("The parameter %s is not defined in" - " reporting.yaml" % parameter) - return value - - -def sig_test_format(sig_test): - """ - Process the signaling result to have a short result - """ - nb_passed = 0 - nb_failures = 0 - nb_skipped = 0 - for data_test in sig_test: - if data_test['result'] == "passed": - nb_passed += 1 - elif data_test['result'] == "failed": - nb_failures += 1 - elif data_test['result'] == "skipped": - nb_skipped += 1 - total_sig_test_result = {} - total_sig_test_result['passed'] = nb_passed - total_sig_test_result['failures'] = nb_failures - total_sig_test_result['skipped'] = nb_skipped - return total_sig_test_result - - -def process_abot_test_result(file_path): - """ Process ABoT Result """ - with open(file_path) as test_result: - data = json.load(test_result) - res = [] - for tests in data: - tests = update_data(tests) - try: - flatten_steps = tests['elements'][0].pop('flatten_steps') - for steps in flatten_steps: - steps['result'] = steps['step_status'] - res.append(steps) - except: - logging.error("Could not post data to ElasticSearch host") - raise - return res - - -def update_data(obj): - """ Update Result data""" - try: - obj['feature_file'] = os.path.splitext(os.path.basename(obj['uri']))[0] - - for element in obj['elements']: - element['final_result'] = "passed" - element['flatten_steps'] = [] - - for step in element['steps']: - temp_dict = {} - step['result'][step['result']['status']] = 1 - if step['result']['status'].lower() in ['fail', 'failed']: - element['final_result'] = "failed" - - temp_dict['feature_file'] = obj['feature_file'] - temp_dict['step_name'] = step['name'] - temp_dict['step_status'] = step['result']['status'] - temp_dict['step_duration'] = step['result'].get('duration', 0) - temp_dict['step_' + step['result']['status']] = 1 - element['flatten_steps'].append(deepcopy(temp_dict)) - - # Need to put the tag in OBJ and not ELEMENT - if 'tags' in obj: - element['tags'] = deepcopy(obj['tags']) - for tag in obj['tags']: - element[tag['name']] = 1 - else: - for tag in element['tags']: - element[tag['name']] = 1 - - except Exception: # pylint: disable=broad-except - logging.error("Error in updating data, %s", sys.exc_info()[0]) - raise - - return obj - - -def get_instances(nova_client): - """ To get all vm info of a project """ - try: - instances = nova_client.servers.list() - return instances - except Exception as exc: # pylint: disable=broad-except - logging.error("Error [get_instances(nova_client)]: %s", exc) - return None - - -def get_instance_metadata(nova_client, instance): - """ Get instance Metadata - Instance ID """ - try: - instance = nova_client.servers.get(instance.id) - return instance.metadata - except Exception as exc: # pylint: disable=broad-except - logging.error("Error [get_instance_status(nova_client)]: %s", exc) - return None diff --git a/functest/opnfv_tests/vnf/epc/juju_epc.yaml b/functest/opnfv_tests/vnf/epc/juju_epc.yaml deleted file mode 100644 index 67f3224f..00000000 --- a/functest/opnfv_tests/vnf/epc/juju_epc.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -tenant_images: - trusty: - /home/opnfv/functest/images/ubuntu-14.04-server-cloudimg-amd64-disk1.img - xenial: - /home/opnfv/functest/images/ubuntu-16.04-server-cloudimg-amd64-disk1.img - -orchestrator: - name: juju - version: '2.0' - requirements: - dep_package: 'software-properties-common' - flavor: - name: m1.small.juju - ram_min: 2048 - preserve_setup: false -vnf: - name: juju_epc - version: '1' - descriptor: - name: abot-oai-epc - file_name: - /src/epc-requirements/abot_charm/functest-abot-epc-bundle/bundle.yaml - version: '1' - requirements: - flavor: - name: m1.medium.juju - ram_min: 4096 -vnf_test_suite: - name: abot-epc-basic - version: "3.1.0" - tag_name: "TS_24_301" diff --git a/functest/opnfv_tests/vnf/ims/__init__.py b/functest/opnfv_tests/vnf/ims/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/functest/opnfv_tests/vnf/ims/clearwater_ims_base.py b/functest/opnfv_tests/vnf/ims/clearwater_ims_base.py deleted file mode 100644 index 7e1d5bb2..00000000 --- a/functest/opnfv_tests/vnf/ims/clearwater_ims_base.py +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (c) 2017 All rights reserved -# This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# -# http://www.apache.org/licenses/LICENSE-2.0 -import json -import logging -import os -import shlex -import shutil -import subprocess -import time - -import pkg_resources -import requests - -import functest.core.vnf as vnf -from functest.utils import config -import functest.utils.functest_utils as ft_utils - -__author__ = ("Valentin Boucher , " - "Helen Yao ") - - -class ClearwaterOnBoardingBase(vnf.VnfOnBoarding): - """ vIMS clearwater base usable by several orchestrators""" - - def __init__(self, **kwargs): - self.logger = logging.getLogger(__name__) - super(ClearwaterOnBoardingBase, self).__init__(**kwargs) - self.case_dir = pkg_resources.resource_filename( - 'functest', 'opnfv_tests/vnf/ims') - self.data_dir = getattr(config.CONF, 'dir_ims_data') - self.result_dir = os.path.join(getattr(config.CONF, 'dir_results'), - self.case_name) - self.test_dir = getattr(config.CONF, 'dir_repo_vims_test') - - if not os.path.exists(self.data_dir): - os.makedirs(self.data_dir) - if not os.path.exists(self.result_dir): - os.makedirs(self.result_dir) - - def config_ellis(self, ellis_ip, signup_code='secret', two_numbers=False): - output_dict = {} - self.logger.debug('Configure Ellis: %s', ellis_ip) - output_dict['ellis_ip'] = ellis_ip - account_url = 'http://{0}/accounts'.format(ellis_ip) - params = {"password": "functest", - "full_name": "opnfv functest user", - "email": "functest@opnfv.org", - "signup_code": signup_code} - rq = requests.post(account_url, data=params) - output_dict['login'] = params - if rq.status_code != 201 and rq.status_code != 409: - raise Exception("Unable to create an account for number provision") - self.logger.debug('Account is created on Ellis: %s', params) - - session_url = 'http://{0}/session'.format(ellis_ip) - session_data = { - 'username': params['email'], - 'password': params['password'], - 'email': params['email'] - } - rq = requests.post(session_url, data=session_data) - if rq.status_code != 201: - raise Exception('Failed to get cookie for Ellis') - cookies = rq.cookies - self.logger.debug('Cookies: %s', cookies) - - number_url = 'http://{0}/accounts/{1}/numbers'.format( - ellis_ip, params['email']) - self.logger.debug('Create 1st calling number on Ellis') - i = 30 - while rq.status_code != 200 and i > 0: - try: - number_res = self.create_ellis_number(number_url, cookies) - break - except Exception: # pylint: disable=broad-except - if i == 1: - raise Exception("Unable to create a number") - self.logger.warn("Unable to create a number. Retry ..") - time.sleep(25) - i = i - 1 - output_dict['number'] = number_res - - if two_numbers: - self.logger.debug('Create 2nd calling number on Ellis') - number_res = self.create_ellis_number(number_url, cookies) - output_dict['number2'] = number_res - - return output_dict - - def create_ellis_number(self, number_url, cookies): - rq = requests.post(number_url, cookies=cookies) - - if rq.status_code != 200: - if rq and rq.json(): - reason = rq.json()['reason'] - else: - reason = rq - raise Exception("Unable to create a number: %s" % reason) - number_res = rq.json() - self.logger.info('Calling number is created: %s', number_res) - return number_res - - def run_clearwater_live_test(self, dns_ip, public_domain, - bono_ip=None, ellis_ip=None, - signup_code='secret'): - self.logger.info('Run Clearwater live test') - dns_file = '/etc/resolv.conf' - dns_file_bak = '/etc/resolv.conf.bak' - self.logger.debug('Backup %s -> %s', dns_file, dns_file_bak) - shutil.copy(dns_file, dns_file_bak) - cmd = ("dnsmasq -d -u root --server=/clearwater.opnfv/{0} " - "-r /etc/resolv.conf.bak".format(dns_ip)) - dnsmasq_process = subprocess.Popen(shlex.split(cmd)) - script = ('echo -e "nameserver {0}" > {1};' - 'cd {2};' - 'rake test[{3}] SIGNUP_CODE={4}' - .format('127.0.0.1', - dns_file, - self.test_dir, - public_domain, - signup_code)) - if bono_ip and ellis_ip: - subscript = ' PROXY={0} ELLIS={1}'.format(bono_ip, ellis_ip) - script = '{0}{1}'.format(script, subscript) - script = ('{0}{1}'.format(script, ' --trace')) - cmd = "/bin/bash -c '{0}'".format(script) - self.logger.debug('Live test cmd: %s', cmd) - output_file = os.path.join(self.result_dir, "ims_test_output.txt") - ft_utils.execute_command(cmd, - error_msg='Clearwater live test failed', - output_file=output_file) - dnsmasq_process.kill() - with open(dns_file_bak, 'r') as bak_file: - result = bak_file.read() - with open(dns_file, 'w') as f: - f.write(result) - - f = open(output_file, 'r') - result = f.read() - if result != "": - self.logger.debug(result) - - vims_test_result = "" - tempFile = os.path.join(self.test_dir, "temp.json") - try: - self.logger.debug("Trying to load test results") - with open(tempFile) as f: - vims_test_result = json.load(f) - f.close() - except Exception: # pylint: disable=broad-except - self.logger.error("Unable to retrieve test results") - - try: - os.remove(tempFile) - except Exception: # pylint: disable=broad-except - self.logger.error("Deleting file failed") - - return vims_test_result diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims.py b/functest/opnfv_tests/vnf/ims/cloudify_ims.py deleted file mode 100644 index 39bbb767..00000000 --- a/functest/opnfv_tests/vnf/ims/cloudify_ims.py +++ /dev/null @@ -1,540 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Orange and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -"""CloudifyIms testcase implementation.""" - -import logging -import os -import time - -from cloudify_rest_client import CloudifyClient -from cloudify_rest_client.executions import Execution -from scp import SCPClient -import yaml - -from functest.energy import energy -from functest.opnfv_tests.openstack.snaps import snaps_utils -import functest.opnfv_tests.vnf.ims.clearwater_ims_base as clearwater_ims_base -from functest.utils import config - -from snaps.config.flavor import FlavorConfig -from snaps.config.image import ImageConfig -from snaps.config.keypair import KeypairConfig -from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig -from snaps.config.router import RouterConfig -from snaps.config.security_group import ( - Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig) -from snaps.config.vm_inst import FloatingIpConfig, VmInstanceConfig - -from snaps.openstack.create_flavor import OpenStackFlavor -from snaps.openstack.create_image import OpenStackImage -from snaps.openstack.create_instance import OpenStackVmInstance -from snaps.openstack.create_keypairs import OpenStackKeypair -from snaps.openstack.create_network import OpenStackNetwork -from snaps.openstack.create_router import OpenStackRouter -from snaps.openstack.create_security_group import OpenStackSecurityGroup -from snaps.openstack.utils import keystone_utils - - -__author__ = "Valentin Boucher " - - -class CloudifyIms(clearwater_ims_base.ClearwaterOnBoardingBase): - """Clearwater vIMS deployed with Cloudify Orchestrator Case.""" - - __logger = logging.getLogger(__name__) - - def __init__(self, **kwargs): - """Initialize CloudifyIms testcase object.""" - if "case_name" not in kwargs: - kwargs["case_name"] = "cloudify_ims" - super(CloudifyIms, self).__init__(**kwargs) - - # Retrieve the configuration - try: - self.config = getattr( - config.CONF, 'vnf_{}_config'.format(self.case_name)) - except Exception: - raise Exception("VNF config file not found") - - config_file = os.path.join(self.case_dir, self.config) - self.orchestrator = dict( - requirements=get_config("orchestrator.requirements", config_file), - ) - self.details['orchestrator'] = dict( - name=get_config("orchestrator.name", config_file), - version=get_config("orchestrator.version", config_file), - status='ERROR', - result='' - ) - self.__logger.debug("Orchestrator configuration %s", self.orchestrator) - self.vnf = dict( - descriptor=get_config("vnf.descriptor", config_file), - inputs=get_config("vnf.inputs", config_file), - requirements=get_config("vnf.requirements", config_file) - ) - self.details['vnf'] = dict( - descriptor_version=self.vnf['descriptor']['version'], - name=get_config("vnf.name", config_file), - version=get_config("vnf.version", config_file), - ) - self.__logger.debug("VNF configuration: %s", self.vnf) - - self.details['test_vnf'] = dict( - name=get_config("vnf_test_suite.name", config_file), - version=get_config("vnf_test_suite.version", config_file) - ) - self.images = get_config("tenant_images", config_file) - self.__logger.info("Images needed for vIMS: %s", self.images) - - def prepare(self): - """Prepare testscase (Additional pre-configuration steps).""" - super(CloudifyIms, self).prepare() - - self.__logger.info("Additional pre-configuration steps") - - compute_quotas = self.os_project.get_compute_quotas() - network_quotas = self.os_project.get_network_quotas() - - for key, value in ( - self.vnf['requirements']['compute_quotas'].items()): - setattr(compute_quotas, key, value) - - for key, value in ( - self.vnf['requirements']['network_quotas'].items()): - setattr(network_quotas, key, value) - - compute_quotas = self.os_project.update_compute_quotas(compute_quotas) - network_quotas = self.os_project.update_network_quotas(network_quotas) - - # needs some images - self.__logger.info("Upload some OS images if it doesn't exist") - for image_name, image_file in self.images.iteritems(): - self.__logger.info("image: %s, file: %s", image_name, image_file) - if image_file and image_name: - image_creator = OpenStackImage( - self.snaps_creds, - ImageConfig( - name=image_name, image_user='cloud', - img_format='qcow2', image_file=image_file)) - image_creator.create() - self.created_object.append(image_creator) - - def deploy_orchestrator(self): - """ - Deploy Cloudify Manager. - - network, security group, fip, VM creation - """ - # network creation - - start_time = time.time() - self.__logger.info("Creating keypair ...") - kp_file = os.path.join(self.data_dir, "cloudify_ims.pem") - keypair_settings = KeypairConfig( - name='cloudify_ims_kp-{}'.format(self.uuid), - private_filepath=kp_file) - keypair_creator = OpenStackKeypair(self.snaps_creds, keypair_settings) - keypair_creator.create() - self.created_object.append(keypair_creator) - - self.__logger.info("Creating full network ...") - subnet_settings = SubnetConfig( - name='cloudify_ims_subnet-{}'.format(self.uuid), - cidr='10.67.79.0/24') - network_settings = NetworkConfig( - name='cloudify_ims_network-{}'.format(self.uuid), - subnet_settings=[subnet_settings]) - network_creator = OpenStackNetwork(self.snaps_creds, network_settings) - network_creator.create() - self.created_object.append(network_creator) - ext_net_name = snaps_utils.get_ext_net_name(self.snaps_creds) - router_creator = OpenStackRouter( - self.snaps_creds, - RouterConfig( - name='cloudify_ims_router-{}'.format(self.uuid), - external_gateway=ext_net_name, - internal_subnets=[subnet_settings.name])) - router_creator.create() - self.created_object.append(router_creator) - - # security group creation - self.__logger.info("Creating security group for cloudify manager vm") - sg_rules = list() - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="sg-cloudify-manager-{}".format(self.uuid), - direction=Direction.ingress, protocol=Protocol.tcp, - port_range_min=1, port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="sg-cloudify-manager-{}".format(self.uuid), - direction=Direction.ingress, protocol=Protocol.udp, - port_range_min=1, port_range_max=65535)) - - security_group_creator = OpenStackSecurityGroup( - self.snaps_creds, - SecurityGroupConfig( - name="sg-cloudify-manager-{}".format(self.uuid), - rule_settings=sg_rules)) - - security_group_creator.create() - self.created_object.append(security_group_creator) - - # orchestrator VM flavor - self.__logger.info("Get or create flavor for cloudify manager vm ...") - - flavor_settings = FlavorConfig( - name=self.orchestrator['requirements']['flavor']['name'], - ram=self.orchestrator['requirements']['flavor']['ram_min'], - disk=50, - vcpus=2) - flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings) - flavor_creator.create() - self.created_object.append(flavor_creator) - image_settings = ImageConfig( - name=self.orchestrator['requirements']['os_image'], - image_user='centos', - exists=True) - - port_settings = PortConfig( - name='cloudify_manager_port-{}'.format(self.uuid), - network_name=network_settings.name) - - manager_settings = VmInstanceConfig( - name='cloudify_manager-{}'.format(self.uuid), - flavor=flavor_settings.name, - port_settings=[port_settings], - security_group_names=[ - security_group_creator.sec_grp_settings.name], - floating_ip_settings=[FloatingIpConfig( - name='cloudify_manager_fip-{}'.format(self.uuid), - port_name=port_settings.name, - router_name=router_creator.router_settings.name)]) - - manager_creator = OpenStackVmInstance( - self.snaps_creds, manager_settings, image_settings, - keypair_settings) - - self.__logger.info("Creating cloudify manager VM") - manager_creator.create() - self.created_object.append(manager_creator) - - public_auth_url = keystone_utils.get_endpoint( - self.snaps_creds, 'identity') - - cfy_creds = dict( - keystone_username=self.snaps_creds.username, - keystone_password=self.snaps_creds.password, - keystone_tenant_name=self.snaps_creds.project_name, - keystone_url=public_auth_url, - region=self.snaps_creds.region_name) - self.__logger.info("Set creds for cloudify manager %s", cfy_creds) - - cfy_client = CloudifyClient( - host=manager_creator.get_floating_ip().ip, - username='admin', password='admin', tenant='default_tenant') - - self.orchestrator['object'] = cfy_client - - self.__logger.info("Attemps running status of the Manager") - cfy_status = None - retry = 10 - while str(cfy_status) != 'running' and retry: - try: - cfy_status = cfy_client.manager.get_status()['status'] - self.__logger.debug("The current manager status is %s", - cfy_status) - except Exception: # pylint: disable=broad-except - self.__logger.exception( - "Cloudify Manager isn't up and running. Retrying ...") - retry = retry - 1 - time.sleep(30) - - if str(cfy_status) == 'running': - self.__logger.info("Cloudify Manager is up and running") - else: - raise Exception("Cloudify Manager isn't up and running") - - self.__logger.info("Put OpenStack creds in manager") - secrets_list = cfy_client.secrets.list() - for k, val in cfy_creds.iteritems(): - if not any(d.get('key', None) == k for d in secrets_list): - cfy_client.secrets.create(k, val) - else: - cfy_client.secrets.update(k, val) - - duration = time.time() - start_time - - self.__logger.info("Put private keypair in manager") - if manager_creator.vm_ssh_active(block=True): - ssh = manager_creator.ssh_client() - scp = SCPClient(ssh.get_transport(), socket_timeout=15.0) - scp.put(kp_file, '~/') - cmd = "sudo cp ~/cloudify_ims.pem /etc/cloudify/" - self.run_blocking_ssh_command(ssh, cmd) - cmd = "sudo chmod 444 /etc/cloudify/cloudify_ims.pem" - self.run_blocking_ssh_command(ssh, cmd) - cmd = "sudo yum install -y gcc python-devel" - self.run_blocking_ssh_command( - ssh, cmd, "Unable to install packages on manager") - - self.details['orchestrator'].update(status='PASS', duration=duration) - - self.vnf['inputs'].update(dict( - external_network_name=ext_net_name, - network_name=network_settings.name, - key_pair_name=keypair_settings.name - )) - self.result = 1/3 * 100 - return True - - def deploy_vnf(self): - """Deploy Clearwater IMS.""" - start_time = time.time() - - self.__logger.info("Upload VNFD") - cfy_client = self.orchestrator['object'] - descriptor = self.vnf['descriptor'] - cfy_client.blueprints.publish_archive(descriptor.get('url'), - descriptor.get('name'), - descriptor.get('file_name')) - - self.__logger.info("Get or create flavor for all clearwater vm") - flavor_settings = FlavorConfig( - name=self.vnf['requirements']['flavor']['name'], - ram=self.vnf['requirements']['flavor']['ram_min'], - disk=25, - vcpus=1) - flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings) - flavor_creator.create() - self.created_object.append(flavor_creator) - - self.vnf['inputs'].update(dict( - flavor_id=self.vnf['requirements']['flavor']['name'], - )) - - self.__logger.info("Create VNF Instance") - cfy_client.deployments.create(descriptor.get('name'), - descriptor.get('name'), - self.vnf.get('inputs')) - - wait_for_execution(cfy_client, - _get_deployment_environment_creation_execution( - cfy_client, descriptor.get('name')), - self.__logger, - timeout=300) - - self.__logger.info("Start the VNF Instance deployment") - execution = cfy_client.executions.start(descriptor.get('name'), - 'install') - # Show execution log - execution = wait_for_execution(cfy_client, execution, self.__logger) - - duration = time.time() - start_time - - self.__logger.info(execution) - if execution.status == 'terminated': - self.details['vnf'].update(status='PASS', duration=duration) - self.result += 1/3 * 100 - result = True - else: - self.details['vnf'].update(status='FAIL', duration=duration) - result = False - return result - - def test_vnf(self): - """Run test on clearwater ims instance.""" - start_time = time.time() - - cfy_client = self.orchestrator['object'] - - outputs = cfy_client.deployments.outputs.get( - self.vnf['descriptor'].get('name'))['outputs'] - dns_ip = outputs['dns_ip'] - ellis_ip = outputs['ellis_ip'] - self.config_ellis(ellis_ip) - - if not dns_ip: - return False - - vims_test_result = self.run_clearwater_live_test( - dns_ip=dns_ip, - public_domain=self.vnf['inputs']["public_domain"]) - duration = time.time() - start_time - short_result, nb_test = sig_test_format(vims_test_result) - self.__logger.info(short_result) - self.details['test_vnf'].update(result=short_result, - full_result=vims_test_result, - duration=duration) - try: - vnf_test_rate = short_result['passed'] / nb_test - # orchestrator + vnf + test_vnf - self.result += vnf_test_rate / 3 * 100 - except ZeroDivisionError: - self.__logger.error("No test has been executed") - self.details['test_vnf'].update(status='FAIL') - return False - - return True - - def clean(self): - """Clean created objects/functions.""" - try: - cfy_client = self.orchestrator['object'] - dep_name = self.vnf['descriptor'].get('name') - # kill existing execution - self.__logger.info('Deleting the current deployment') - exec_list = cfy_client.executions.list(dep_name) - for execution in exec_list: - if execution['status'] == "started": - try: - cfy_client.executions.cancel(execution['id'], - force=True) - except Exception: # pylint: disable=broad-except - self.__logger.warn("Can't cancel the current exec") - - execution = cfy_client.executions.start( - dep_name, - 'uninstall', - parameters=dict(ignore_failure=True), - force=True) - - wait_for_execution(cfy_client, execution, self.__logger) - cfy_client.deployments.delete(self.vnf['descriptor'].get('name')) - cfy_client.blueprints.delete(self.vnf['descriptor'].get('name')) - except Exception: # pylint: disable=broad-except - self.__logger.warn("Some issue during the undeployment ..") - self.__logger.warn("Tenant clean continue ..") - - super(CloudifyIms, self).clean() - - @staticmethod - def run_blocking_ssh_command(ssh, cmd, - error_msg="Unable to run this command"): - """Command to run ssh command with the exit status.""" - _, stdout, stderr = ssh.exec_command(cmd) - CloudifyIms.__logger.debug("SSH %s stdout: %s", cmd, stdout.read()) - if stdout.channel.recv_exit_status() != 0: - CloudifyIms.__logger.error("SSH %s stderr: %s", cmd, stderr.read()) - raise Exception(error_msg) - - @energy.enable_recording - def run(self, **kwargs): - """Execute CloudifyIms test case.""" - return super(CloudifyIms, self).run(**kwargs) - - -# ---------------------------------------------------------- -# -# YAML UTILS -# -# ----------------------------------------------------------- -def get_config(parameter, file_path): - """ - Get config parameter. - - Returns the value of a given parameter in file.yaml - parameter must be given in string format with dots - Example: general.openstack.image_name - """ - with open(file_path) as config_file: - file_yaml = yaml.safe_load(config_file) - config_file.close() - value = file_yaml - for element in parameter.split("."): - value = value.get(element) - if value is None: - raise ValueError("The parameter %s is not defined in" - " reporting.yaml" % parameter) - return value - - -def wait_for_execution(client, execution, logger, timeout=1500, ): - """Wait for a workflow execution on Cloudify Manager.""" - # if execution already ended - return without waiting - if execution.status in Execution.END_STATES: - return execution - - if timeout is not None: - deadline = time.time() + timeout - - # Poll for execution status and execution logs, until execution ends - # and we receive an event of type in WORKFLOW_END_TYPES - offset = 0 - batch_size = 50 - event_list = [] - execution_ended = False - while True: - event_list = client.events.list( - execution_id=execution.id, - _offset=offset, - _size=batch_size, - include_logs=False, - sort='@timestamp').items - - offset = offset + len(event_list) - for event in event_list: - logger.debug(event.get('message')) - - if timeout is not None: - if time.time() > deadline: - raise RuntimeError( - 'execution of operation {0} for deployment {1} ' - 'timed out'.format(execution.workflow_id, - execution.deployment_id)) - else: - # update the remaining timeout - timeout = deadline - time.time() - - if not execution_ended: - execution = client.executions.get(execution.id) - execution_ended = execution.status in Execution.END_STATES - - if execution_ended: - break - - time.sleep(5) - - return execution - - -def _get_deployment_environment_creation_execution(client, deployment_id): - """ - Get the execution id of a env preparation. - - network, security group, fip, VM creation - """ - executions = client.executions.list(deployment_id=deployment_id) - for execution in executions: - if execution.workflow_id == 'create_deployment_environment': - return execution - raise RuntimeError('Failed to get create_deployment_environment ' - 'workflow execution.' - 'Available executions: {0}'.format(executions)) - - -def sig_test_format(sig_test): - """Process the signaling result to have a short result.""" - nb_passed = 0 - nb_failures = 0 - nb_skipped = 0 - for data_test in sig_test: - if data_test['result'] == "Passed": - nb_passed += 1 - elif data_test['result'] == "Failed": - nb_failures += 1 - elif data_test['result'] == "Skipped": - nb_skipped += 1 - short_sig_test_result = {} - short_sig_test_result['passed'] = nb_passed - short_sig_test_result['failures'] = nb_failures - short_sig_test_result['skipped'] = nb_skipped - nb_test = nb_passed + nb_skipped - return (short_sig_test_result, nb_test) diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims.yaml b/functest/opnfv_tests/vnf/ims/cloudify_ims.yaml deleted file mode 100644 index e1a7bf31..00000000 --- a/functest/opnfv_tests/vnf/ims/cloudify_ims.yaml +++ /dev/null @@ -1,51 +0,0 @@ ---- -tenant_images: - ubuntu_14.04: - /home/opnfv/functest/images/trusty-server-cloudimg-amd64-disk1.img - cloudify_manager_4.0: - /home/opnfv/functest/images/cloudify-manager-premium-4.0.1.qcow2 -orchestrator: - name: cloudify - version: '4.0' - requirements: - flavor: - name: m1.medium - ram_min: 4096 - os_image: 'cloudify_manager_4.0' -vnf: - name: clearwater - version: '107' - descriptor: - file_name: openstack-blueprint.yaml - name: clearwater-opnfv - url: - https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater/archive/master.zip - version: '122' - requirements: - flavor: - name: m1.small - ram_min: 2048 - compute_quotas: - cores: 50 - instances: 15 - network_quotas: - security_group: 20 - security_group_rule: 100 - port: 50 - inputs: - image_id: 'ubuntu_14.04' - flavor_id: 'm1.small' - agent_user: ubuntu - key_pair_name: cloudify_ims_kp - private_key_path: '/etc/cloudify/cloudify_ims.pem' - external_network_name: '' - public_domain: clearwater.opnfv - release: repo122 - bono_cluster_size: 1 - sprout_cluster_size: 1 - vellum_cluster_size: 1 - dime_cluster_size: 1 - homer_cluster_size: 1 -vnf_test_suite: - name: clearwater-live-test - version: "1.0" diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.py b/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.py deleted file mode 100644 index cdf1edc0..00000000 --- a/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.py +++ /dev/null @@ -1,498 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Orange, IXIA and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -"""CloudifyImsPerf testcase implementation.""" - -import logging -import os -import time - -import json -import yaml -import paramiko -import dns.resolver -from jinja2 import Environment, FileSystemLoader - -from functest.energy import energy -from functest.opnfv_tests.openstack.snaps import snaps_utils -from functest.opnfv_tests.vnf.ims import cloudify_ims -from functest.opnfv_tests.vnf.ims.ixia.utils import IxChassisUtils -from functest.opnfv_tests.vnf.ims.ixia.utils import IxLoadUtils -from functest.opnfv_tests.vnf.ims.ixia.utils import IxRestUtils -from functest.utils import config - -from snaps.config.flavor import FlavorConfig -from snaps.config.image import ImageConfig -from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig -from snaps.config.router import RouterConfig -from snaps.config.security_group import ( - Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig) -from snaps.config.vm_inst import FloatingIpConfig, VmInstanceConfig -from snaps.openstack.create_flavor import OpenStackFlavor -from snaps.openstack.create_instance import OpenStackVmInstance -from snaps.openstack.create_network import OpenStackNetwork -from snaps.openstack.create_router import OpenStackRouter -from snaps.openstack.create_security_group import OpenStackSecurityGroup - - -__author__ = "Valentin Boucher " - - -class CloudifyImsPerf(cloudify_ims.CloudifyIms): - """Clearwater vIMS deployed with Cloudify Orchestrator Case.""" - - __logger = logging.getLogger(__name__) - - def __init__(self, **kwargs): - """Initialize CloudifyIms testcase object.""" - if "case_name" not in kwargs: - kwargs["case_name"] = "cloudify_ims_perf" - super(CloudifyImsPerf, self).__init__(**kwargs) - - # Retrieve the configuration - try: - self.config = getattr( - config.CONF, 'vnf_{}_config'.format(self.case_name)) - except Exception: - raise Exception("VNF config file not found") - - self.snaps_creds = '' - self.created_object = [] - - config_file = os.path.join(self.case_dir, self.config) - self.orchestrator = dict( - requirements=get_config("orchestrator.requirements", config_file), - ) - self.details['orchestrator'] = dict( - name=get_config("orchestrator.name", config_file), - version=get_config("orchestrator.version", config_file), - status='ERROR', - result='' - ) - self.__logger.debug("Orchestrator configuration %s", self.orchestrator) - self.vnf = dict( - descriptor=get_config("vnf.descriptor", config_file), - inputs=get_config("vnf.inputs", config_file), - requirements=get_config("vnf.requirements", config_file) - ) - self.details['vnf'] = dict( - descriptor_version=self.vnf['descriptor']['version'], - name=get_config("vnf.name", config_file), - version=get_config("vnf.version", config_file), - ) - self.__logger.debug("VNF configuration: %s", self.vnf) - - self.test = dict( - version=get_config("vnf_test_suite.version", config_file), - inputs=get_config("vnf_test_suite.inputs", config_file), - requirements=get_config("vnf_test_suite.requirements", config_file) - ) - - self.details['test_vnf'] = dict( - name=get_config("vnf_test_suite.name", config_file), - version=get_config("vnf_test_suite.version", config_file), - requirements=get_config("vnf_test_suite.requirements", config_file) - ) - self.images = get_config("tenant_images", config_file) - self.__logger.info("Images needed for vIMS: %s", self.images) - - def test_vnf(self): - """Run IXIA Stress test on clearwater ims instance.""" - start_time = time.time() - - cfy_client = self.orchestrator['object'] - - outputs = cfy_client.deployments.outputs.get( - self.vnf['descriptor'].get('name'))['outputs'] - dns_ip = outputs['dns_ip'] - ellis_ip = outputs['ellis_ip'] - - self.__logger.info("Creating full IXIA network ...") - subnet_settings = SubnetConfig(name='ixia_management_subnet', - cidr='10.10.10.0/24') - network_settings = NetworkConfig(name='ixia_management_network', - subnet_settings=[subnet_settings]) - network_creator = OpenStackNetwork(self.snaps_creds, network_settings) - network_creator.create() - self.created_object.append(network_creator) - ext_net_name = snaps_utils.get_ext_net_name(self.snaps_creds) - router_creator = OpenStackRouter( - self.snaps_creds, - RouterConfig( - name='ixia_management_router', - external_gateway=ext_net_name, - internal_subnets=[subnet_settings.name])) - router_creator.create() - self.created_object.append(router_creator) - - # security group creation - self.__logger.info("Creating security groups for IXIA VMs") - sg_rules = list() - sg_rules.append( - SecurityGroupRuleConfig(sec_grp_name="ixia_management", - direction=Direction.ingress, - protocol=Protocol.tcp, port_range_min=1, - port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig(sec_grp_name="ixia_management", - direction=Direction.ingress, - protocol=Protocol.udp, port_range_min=1, - port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig(sec_grp_name="ixia_management", - direction=Direction.ingress, - protocol=Protocol.icmp)) - - ixia_managment_sg_settings = SecurityGroupConfig( - name="ixia_management", rule_settings=sg_rules) - securit_group_creator = OpenStackSecurityGroup( - self.snaps_creds, - ixia_managment_sg_settings) - - securit_group_creator.create() - self.created_object.append(securit_group_creator) - - sg_rules = list() - sg_rules.append( - SecurityGroupRuleConfig(sec_grp_name="ixia_ssh_http", - direction=Direction.ingress, - protocol=Protocol.tcp, port_range_min=1, - port_range_max=65535)) - - ixia_ssh_http_sg_settings = SecurityGroupConfig( - name="ixia_ssh_http", rule_settings=sg_rules) - securit_group_creator = OpenStackSecurityGroup( - self.snaps_creds, - ixia_ssh_http_sg_settings) - - securit_group_creator.create() - self.created_object.append(securit_group_creator) - - chassis_flavor_settings = FlavorConfig( - name="ixia_vChassis", - ram=4096, - disk=40, - vcpus=2) - flavor_creator = OpenStackFlavor(self.snaps_creds, - chassis_flavor_settings) - flavor_creator.create() - self.created_object.append(flavor_creator) - - card_flavor_settings = FlavorConfig( - name="ixia_vCard", - ram=4096, - disk=4, - vcpus=2) - flavor_creator = OpenStackFlavor(self.snaps_creds, - card_flavor_settings) - flavor_creator.create() - self.created_object.append(flavor_creator) - - load_flavor_settings = FlavorConfig( - name="ixia_vLoad", - ram=8192, - disk=100, - vcpus=4) - flavor_creator = OpenStackFlavor(self.snaps_creds, - load_flavor_settings) - flavor_creator.create() - self.created_object.append(flavor_creator) - - chassis_image_settings = ImageConfig( - name=self.test['requirements']['chassis']['image'], - image_user='admin', - exists=True) - - card_image_settings = ImageConfig( - name=self.test['requirements']['card']['image'], - image_user='admin', - exists=True) - - load_image_settings = ImageConfig( - name=self.test['requirements']['load']['image'], - image_user='admin', - exists=True) - - chassis_port_settings = PortConfig( - name='ixia_chassis_port', network_name=network_settings.name) - - card1_port1_settings = PortConfig( - name='ixia_card1_port1', network_name=network_settings.name) - - card2_port1_settings = PortConfig( - name='ixia_card2_port1', network_name=network_settings.name) - - card1_port2_settings = PortConfig( - name='ixia_card1_port2', network_name="cloudify_ims_network") - - card2_port2_settings = PortConfig( - name='ixia_card2_port2', network_name="cloudify_ims_network") - - load_port_settings = PortConfig( - name='ixia_load_port', network_name=network_settings.name) - - chassis_settings = VmInstanceConfig( - name='ixia_vChassis', - flavor=chassis_flavor_settings.name, - port_settings=[chassis_port_settings], - security_group_names=[ixia_ssh_http_sg_settings.name, - ixia_managment_sg_settings.name], - floating_ip_settings=[FloatingIpConfig( - name='ixia_vChassis_fip', - port_name=chassis_port_settings.name, - router_name=router_creator.router_settings.name)]) - - vm_creator = OpenStackVmInstance(self.snaps_creds, - chassis_settings, - chassis_image_settings) - - self.__logger.info("Creating Ixia vChassis VM") - vm_creator.create() - fip_chassis = vm_creator.get_floating_ip().ip - self.created_object.append(vm_creator) - - card1_settings = VmInstanceConfig( - name='ixia_vCard1', - flavor=card_flavor_settings.name, - port_settings=[card1_port1_settings, card1_port2_settings], - security_group_names=[ixia_managment_sg_settings.name]) - - vm_creator = OpenStackVmInstance(self.snaps_creds, - card1_settings, - card_image_settings) - - self.__logger.info("Creating Ixia vCard1 VM") - vm_creator.create() - vcard_ips = list() - vcard_ips_p2 = list() - vcard_ips.append(vm_creator.get_port_ip('ixia_card1_port1')) - vcard_ips_p2.append(vm_creator.get_port_ip('ixia_card1_port2')) - self.created_object.append(vm_creator) - - card2_settings = VmInstanceConfig( - name='ixia_vCard2', - flavor=card_flavor_settings.name, - port_settings=[card2_port1_settings, card2_port2_settings], - security_group_names=[ixia_managment_sg_settings.name]) - - vm_creator = OpenStackVmInstance(self.snaps_creds, - card2_settings, - card_image_settings) - - self.__logger.info("Creating Ixia vCard2 VM") - vm_creator.create() - vcard_ips.append(vm_creator.get_port_ip('ixia_card2_port1')) - vcard_ips_p2.append(vm_creator.get_port_ip('ixia_card2_port2')) - self.created_object.append(vm_creator) - - load_settings = VmInstanceConfig( - name='ixia_vLoad', - flavor=load_flavor_settings.name, - port_settings=[load_port_settings], - security_group_names=[ixia_ssh_http_sg_settings.name, - ixia_managment_sg_settings.name], - floating_ip_settings=[FloatingIpConfig( - name='ixia_vLoad_fip', - port_name=load_port_settings.name, - router_name=router_creator.router_settings.name)]) - - vm_creator = OpenStackVmInstance(self.snaps_creds, - load_settings, - load_image_settings) - - self.__logger.info("Creating Ixia vLoad VM") - vm_creator.create() - fip_load = vm_creator.get_floating_ip().ip - self.created_object.append(vm_creator) - - self.__logger.info("Chassis IP is: %s", fip_chassis) - login_url = "https://" + str(fip_chassis) + "/api/v1/auth/session" - cards_url = "https://" + str(fip_chassis) + "/api/v2/ixos/cards/" - - payload = json.dumps({"username": "admin", - "password": "admin", - "rememberMe": "false"}) - api_key = json.loads(( - IxChassisUtils.ChassisRestAPI.postWithPayload( - login_url, payload)))["apiKey"] - - self.__logger.info("Adding 2 card back inside the ixia chassis...") - - for ip in vcard_ips: - payload = {"ipAddress": str(ip)} - response = json.loads(IxChassisUtils.ChassisRestAPI.postOperation( - cards_url, api_key, payload)) - count = 0 - while (int( - IxChassisUtils.ChassisRestAPI.getWithHeaders( - response['url'], api_key)['progress']) != 100): - self.__logger.debug("Operation did not finish yet. \ - Waiting for 1 more second..") - time.sleep(1) - if count > 60: - raise Exception("Adding card take more than 60 seconds") - count += 1 - - ssh = paramiko.SSHClient() - ssh.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy()) - ssh.connect(fip_chassis, username="admin", password="admin") - cmd = "set license-check disable" - run_blocking_ssh_command(ssh, cmd) - cmd = "restart-service ixServer" - run_blocking_ssh_command(ssh, cmd) - - self.config_ellis(ellis_ip) - - # Get IPs of P-CSCF - resolver = dns.resolver.Resolver() - resolver.nameservers = [dns_ip] - result = resolver.query("bono.clearwater.local") - - iplistims = '' - i = 0 - for rdata in result: - i = i + 1 - print rdata.address - iplistims += str(rdata.address) - if i != len(result): - iplistims += ';' - - kResourcesUrl = 'http://%s:%s/api/v0/resources' % (fip_load, 8080) - - kRxfPath = r"REG_CALL_OPNFV_v13.rxf" - test_filname = self.test['inputs']['test_filname'] - kGatewaySharedFolder = '/mnt/ixload-share/' - kRxfRelativeUploadPath = 'uploads/%s' % os.path.split(kRxfPath)[1] - kRxfAbsoluteUploadPath = os.path.join(kGatewaySharedFolder, - kRxfRelativeUploadPath) - kChassisList = [str(fip_chassis)] - dataFileNameList = [test_filname, - 'Registration_only_LPS.tst', - 'SIPCall.tst'] - - kPortListPerCommunityCommunity = {"VoIP1@VM1": [(1, 1, 1)], - "VoIP2@VM2": [(1, 2, 1)]} - - kStatsToDisplayDict = self.test['inputs']['stats'] - connection = IxRestUtils.getConnection(fip_load, 8080) - - self.__logger.info("Creating a new session...") - sessionUrl = IxLoadUtils.createSession(connection, - self.test['version']) - - license_server = self.test['inputs']['licenseServer'] - IxLoadUtils.configureLicenseServer(connection, - sessionUrl, - license_server) - - files_dir = os.path.join(self.case_dir, 'ixia/files') - target_file = open(os.path.join(files_dir, test_filname), 'w') - j2_env = Environment(loader=FileSystemLoader(files_dir), - trim_blocks=True) - self.test['inputs'].update(dict( - ipchassis=fip_chassis, ipcard1=vcard_ips_p2[0], - ipcard2=vcard_ips_p2[1], iplistims=iplistims - )) - - target_file.write( - j2_env.get_template(test_filname + '.template').render( - self.test['inputs'] - )) - target_file.close() - - self.__logger.info('Uploading files %s...' % kRxfPath) - for dataFile in dataFileNameList: - localFilePath = os.path.join(files_dir, dataFile) - remoteFilePath = os.path.join(kGatewaySharedFolder, - 'uploads/%s' % dataFile) - IxLoadUtils.uploadFile(connection, kResourcesUrl, - localFilePath, remoteFilePath) - self.__logger.info('Upload file finished.') - - self.__logger.info("Loading repository %s..." % kRxfAbsoluteUploadPath) - IxLoadUtils.loadRepository(connection, sessionUrl, - kRxfAbsoluteUploadPath) - - self.__logger.info("Clearing chassis list...") - IxLoadUtils.clearChassisList(connection, sessionUrl) - - self.__logger.info("Adding chassis %s..." % (kChassisList)) - IxLoadUtils.addChassisList(connection, sessionUrl, kChassisList) - - self.__logger.info("Assigning new ports...") - IxLoadUtils.assignPorts(connection, sessionUrl, - kPortListPerCommunityCommunity) - - self.__logger.info("Starting the test...") - IxLoadUtils.runTest(connection, sessionUrl) - - self.__logger.info( - "Polling values for stats %s..." % (kStatsToDisplayDict)) - result = IxLoadUtils.pollStats(connection, sessionUrl, - kStatsToDisplayDict) - self.__logger.info("Test finished.") - self.__logger.info("Checking test status...") - testRunError = IxLoadUtils.getTestRunError(connection, sessionUrl) - - self.__logger.info(result) - duration = time.time() - start_time - self.details['test_vnf'].update(status='PASS', - result=result, - duration=duration) - if testRunError: - self.__logger.info( - "The test exited with following error: %s" % (testRunError)) - self.details['test_vnf'].update(status='FAIL', duration=duration) - return False - else: - self.__logger.info("The test completed successfully.") - self.details['test_vnf'].update(status='PASS', duration=duration) - self.result += 1/3 * 100 - return True - - def clean(self): - """Clean created objects/functions.""" - super(CloudifyImsPerf, self).clean() - - @energy.enable_recording - def run(self, **kwargs): - """Execute CloudifyIms test case.""" - return super(CloudifyImsPerf, self).run(**kwargs) - - -# ---------------------------------------------------------- -# -# YAML UTILS -# -# ----------------------------------------------------------- -def get_config(parameter, file_path): - """ - Get config parameter. - - Returns the value of a given parameter in file.yaml - parameter must be given in string format with dots - Example: general.openstack.image_name - """ - with open(file_path) as config_file: - file_yaml = yaml.safe_load(config_file) - config_file.close() - value = file_yaml - for element in parameter.split("."): - value = value.get(element) - if value is None: - raise ValueError("The parameter %s is not defined in" - " reporting.yaml" % parameter) - return value - - -def run_blocking_ssh_command(ssh, cmd, error_msg="Unable to run this command"): - """Command to run ssh command with the exit status.""" - stdin, stdout, stderr = ssh.exec_command(cmd) - if stdout.channel.recv_exit_status() != 0: - raise Exception(error_msg) diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.yaml b/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.yaml deleted file mode 100644 index 77b295d0..00000000 --- a/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.yaml +++ /dev/null @@ -1,91 +0,0 @@ ---- -tenant_images: - ubuntu_14.04: - http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img - cloudify_manager_4.0: - http://repository.cloudifysource.org/cloudify/4.0.1/sp-release/cloudify-manager-premium-4.0.1.qcow2 - # PATH of the virtual chassis image. - IXIA_CHASSIS: # Ixia_Virtual_Chassis_8.30_EA_KVM.qcow2 - # PATH of the virtual card image. - IXIA_CARD: # Ixia_Virtual_Load_Module_8.30_EA_KVM.qcow2 - # PATH of the virtual loader image. - IXIA_LOAD: # Ixia_Virtual_Loader_8.30_EA_KVM.qcow2 -orchestrator: - name: cloudify - version: '4.0' - requirements: - flavor: - name: m1.medium - ram_min: 4096 - os_image: 'cloudify_manager_4.0' -vnf: - name: clearwater - version: '107' - descriptor: - file_name: openstack-blueprint-with-numbers.yaml - name: clearwater-opnfv - url: - https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater/archive/master.zip - version: '122' - requirements: - flavor: - name: m1.small - ram_min: 2048 - compute_quotas: - cores: 150 - instances: 100 - ram: 256000 - network_quotas: - security_group: 25 - security_group_rule: 100 - port: 150 - inputs: - image_id: 'ubuntu_14.04' - flavor_id: 'm1.small' - agent_user: ubuntu - key_pair_name: cloudify_ims_kp - private_key_path: '/etc/cloudify/cloudify_ims.pem' - external_network_name: '' - public_domain: clearwater.opnfv - release: repo122 - bono_cluster_size: 2 - sprout_cluster_size: 2 - vellum_cluster_size: 2 - dime_cluster_size: 2 - homer_cluster_size: 2 - number_of_subscribers: 50000 -vnf_test_suite: - name: ixia - version: "8.30.0.161" - requirements: - chassis: - image: IXIA_CHASSIS - card: - image: IXIA_CARD - load: - image: IXIA_LOAD - inputs: - ipgw: '10.67.79.1' - pnregistering: '201001[0000-]' - pncalling: '201000[0000-]' - pncalled: '201000[5000-]' - sipportregistering: '[5060-]' - sipportcalling: '[5061-]' - sipportcalled: '[5062-]' - domainname: 'clearwater.opnfv' - authpassword: 'toto' - registeringtotalcalls: '1000' - registeringduration: '180' - activecalls: '1000' - testduration: '360' - test_filname: 'REG_CALL_OPNFV_v13.rxf' - licenseServer: '' # IP of YOUR IXIA LICENSE SERVER - stats: - 'Signaling(VoIPSip)': - - 'Successful Registrations' - - 'Failed Registrations' - - 'Active Calls' - - 'Attempted Calls' - - 'Received Calls' - - 'Failed Attempted Calls' - - 'Failed Received Calls' diff --git a/functest/opnfv_tests/vnf/ims/ixia/__init__.py b/functest/opnfv_tests/vnf/ims/ixia/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/functest/opnfv_tests/vnf/ims/ixia/files/REG_CALL_OPNFV_v13.rxf.template b/functest/opnfv_tests/vnf/ims/ixia/files/REG_CALL_OPNFV_v13.rxf.template deleted file mode 100644 index 27936281..00000000 --- a/functest/opnfv_tests/vnf/ims/ixia/files/REG_CALL_OPNFV_v13.rxf.template +++ /dev/null @@ -1,16731 +0,0 @@ - - - <_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML"> - <rpf> <Ixia.Aptixia.StackManager.SMSession type="Ixia.Aptixia.StackManager.SMSession" objectid="d0db76dc-f224-429f-91ba-e207cd4711db" version="6.70.420"> <doWaitLinkUp type="Bool">0</doWaitLinkUp> <doGratArp type="Bool">0</doGratArp> <subscribeToGratArpNotifications type="Bool">0</subscribeToGratArpNotifications> <doInterfaceCheck type="Bool">0</doInterfaceCheck> <rebootPortsBeforeConfigure type="Bool">0</rebootPortsBeforeConfigure> <testDuration type="Int">10000</testDuration> <checkLinkState type="Bool">0</checkLinkState> <portGroupList type="ListNode"> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="e7fa1f9e-23d9-4742-96b2-6edce6c4424e" version="6.70.420"> <name type="String">VM1</name> <category type="String" /> <stack type="Ixia.Aptixia.StackManager.L1EthernetPlugin" objectid="45426251-0720-4316-b8a5-d6bce32e3d2e" version="6.70.420"> <autoNegotiate type="Bool">1</autoNegotiate> <speed type="String">k100FD</speed> <advertise10Half type="Bool">1</advertise10Half> <advertise10Full type="Bool">1</advertise10Full> <advertise100Half type="Bool">1</advertise100Half> <advertise100Full type="Bool">1</advertise100Full> <advertise1000Full type="Bool">1</advertise1000Full> <advertise2500Full type="Bool">1</advertise2500Full> <advertise5000Full type="Bool">1</advertise5000Full> <advertise10000Full type="Bool">0</advertise10000Full> <cardDualPhy type="Ixia.Aptixia.StackManager.DualPhyPlugin" objectid="836ee0d6-1957-42eb-a7a4-53bcfbdd36e0" version="6.70.420"> <medium type="String">copper</medium> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </cardDualPhy> <cardElm type="Ixia.Aptixia.StackManager.EthernetELMPlugin" objectid="8387c005-0df9-4fd2-977e-1c234c7be0cc" version="6.70.420"> <negotiateMasterSlave type="Bool">1</negotiateMasterSlave> <negotiationType type="String">master</negotiationType> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </cardElm> <enableFlowControl type="Bool">0</enableFlowControl> <directedAddress type="String">01:80:C2:00:00:01</directedAddress> <dataCenter type="Ixia.Aptixia.StackManager.DataCenterSettings" objectid="df9be2ec-31d8-47f0-babe-79a1710303f3" version="6.70.420"> <dcSupported type="Bool">1</dcSupported> <dcEnabled type="Bool">0</dcEnabled> <dcFlowControl type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType">0</dcFlowControl> <dcMode type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode">2</dcMode> <dcPfcMapping type="IntList" /> <dcPfcPauseEnable type="Bool">0</dcPfcPauseEnable> <dcPfcPauseDelay type="Int">1</dcPfcPauseDelay> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </dataCenter> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.L2EthernetPlugin type="Ixia.Aptixia.StackManager.L2EthernetPlugin" objectid="166a11b6-4d30-40ea-b9e1-ac4fb44f112b" version="6.70.420"> <macRangeList type="ListNode"> <Ixia.Aptixia.StackManager.MacRange type="Ixia.Aptixia.StackManager.MacRange" objectid="ba896971-1d78-4e03-8f2a-28c65417612e" version="6.70.420"> <enabled type="Bool">1</enabled> <name type="String">MAC-R11</name> <mac type="String">00:0A:43:4F:1B:00</mac> <incrementBy type="String">00:00:00:00:00:01</incrementBy> <mtu type="Int">1410</mtu> <count type="Int">1</count> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="2b81e36c-9cbb-4d78-a70c-904da8d41b28" version="6.70.420"> <name type="String">VLAN-R11</name> <enabled type="Bool">0</enabled> <firstId type="Int">1</firstId> <incrementStep type="Int">1</incrementStep> <increment type="Int">1</increment> <uniqueCount type="Int">4094</uniqueCount> <priority type="Int">1</priority> <tpid type="String">0x8100</tpid> <innerEnable type="Bool">0</innerEnable> <innerFirstId type="Int">1</innerFirstId> <innerIncrementStep type="Int">1</innerIncrementStep> <innerIncrement type="Int">1</innerIncrement> <innerUniqueCount type="Int">4094</innerUniqueCount> <innerPriority type="Int">1</innerPriority> <idIncrMode type="Int">2</idIncrMode> <innerTpid type="String">0x8100</innerTpid> <ixLoadRestObjectId type="Int">9</ixLoadRestObjectId> </vlanRange> <ixLoadRestObjectId type="Int">9</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MacRange> </macRangeList> <vlanRangeList type="ListNode"> <Ixia.Aptixia.StackManager.VlanIdRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="2b81e36c-9cbb-4d78-a70c-904da8d41b28" version="6.70.420" /> </vlanRangeList> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Plugin type="Ixia.Aptixia.StackManager.IpV4V6Plugin" objectid="9ea551b2-a0af-4a7d-9872-e9b94298d7bd" version="6.70.420"> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="5affc0a7-68f6-46f6-b801-0e18e067a572" version="6.70.420"> <enabled type="Bool">1</enabled> <name type="String">IP-R13</name> <ipType type="String">IPv4</ipType> <ipAddress type="String">{{ipcard1}}</ipAddress> <prefix type="Int">16</prefix> <incrementBy type="String">0.0.0.1</incrementBy> <count type="Int">1</count> <autoCountEnabled type="Bool">0</autoCountEnabled> <gatewayAddress type="String">{{ipgw}}</gatewayAddress> <gatewayIncrement type="String">0.0.0.0</gatewayIncrement> <gatewayIncrementMode type="String">perSubnet</gatewayIncrementMode> <enableGatewayArp type="Bool">0</enableGatewayArp> <generateStatistics type="Bool">0</generateStatistics> <mss type="Int">1410</mss> <randomizeAddress type="Bool">0</randomizeAddress> <randomizeSeed type="Int">1007257123</randomizeSeed> <autoMacGeneration type="Bool">1</autoMacGeneration> <macRange type="Ixia.Aptixia.StackManager.MacRange" objectid="ba896971-1d78-4e03-8f2a-28c65417612e" version="6.70.420" /> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="2b81e36c-9cbb-4d78-a70c-904da8d41b28" version="6.70.420" /> <atmRange type="Ixia.Aptixia.StackManager.AtmRange" objectid="00000000-0000-0000-0000-000000000000" /> <pvcRange type="Ixia.Aptixia.StackManager.PvcRange" objectid="00000000-0000-0000-0000-000000000000" /> <autoIpTypeEnabled type="Bool">0</autoIpTypeEnabled> <ixLoadRestObjectId type="Int">9</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Range> </rangeList> <rangeGroups type="ListNode"> <Ixia.Aptixia.StackManager.RangeGroup type="Ixia.Aptixia.StackManager.RangeGroup" objectid="abf2b6e4-a102-4cbe-bf1b-a11f11b2faac" version="6.70.420"> <name type="String">Group1</name> <distribType type="Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType">0</distribType> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="5affc0a7-68f6-46f6-b801-0e18e067a572" version="6.70.420" /> </rangeList> <ixLoadRestObjectId type="Int">-1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.RangeGroup> </rangeGroups> <childrenList type="ListNode" /> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">IP-8</name> <ixLoadRestObjectId type="Int">26</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Plugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">MAC/VLAN-8</name> <ixLoadRestObjectId type="Int">25</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.L2EthernetPlugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">Ethernet-1</name> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </stack> <globalPluginList type="ListNode"> <Ixia.Aptixia.StackManager.FilterPlugin type="Ixia.Aptixia.StackManager.FilterPlugin" objectid="976ba0fd-58ea-44d4-ae43-1b36c2556072" version="6.70.420"> <auto type="Bool">1</auto> <all type="Bool">0</all> <pppoecontrol type="Bool">0</pppoecontrol> <pppoenetwork type="Bool">0</pppoenetwork> <isis type="Bool">0</isis> <ip type="String" /> <tcp type="String" /> <udp type="String" /> <mac type="String" /> <icmp type="String" /> <name type="String">Filter-1</name> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.FilterPlugin> <Ixia.Aptixia.StackManager.GratArpPlugin type="Ixia.Aptixia.StackManager.GratArpPlugin" objectid="3ebd05e7-88a6-49be-a50d-134908ac124c" version="6.70.420"> <enabled type="Bool">1</enabled> <forwardGratArp type="Bool">0</forwardGratArp> <rateControlEnabled type="Bool">0</rateControlEnabled> <maxFramesPerSecond type="Int">0</maxFramesPerSecond> <name type="String">GratARP-1</name> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.GratArpPlugin> <Ixia.Aptixia.StackManager.TCPPlugin type="Ixia.Aptixia.StackManager.TCPPlugin" objectid="1d9748c5-122e-4153-8ffd-67cd1309b8ce" version="6.70.420"> <bestPerfSettings type="Bool">0</bestPerfSettings> <accept_ra_all type="Bool">0</accept_ra_all> <tcp_abort_on_overflow type="Bool">0</tcp_abort_on_overflow> <tcp_adv_win_scale type="Int">2</tcp_adv_win_scale> <tcp_app_win type="Int">31</tcp_app_win> <tcp_bic type="Int">0</tcp_bic> <tcp_bic_fast_convergence type="Int">1</tcp_bic_fast_convergence> <tcp_bic_low_window type="Int">14</tcp_bic_low_window> <tcp_dsack type="Bool">1</tcp_dsack> <tcp_ecn type="Bool">0</tcp_ecn> <tcp_fack type="Bool">1</tcp_fack> <tcp_fin_timeout type="Int">60</tcp_fin_timeout> <tcp_frto type="Int">0</tcp_frto> <tcp_keepalive_intvl type="Int">75</tcp_keepalive_intvl> <tcp_keepalive_probes type="Int">9</tcp_keepalive_probes> <tcp_keepalive_time type="Int">7200</tcp_keepalive_time> <tcp_low_latency type="Int">0</tcp_low_latency> <tcp_max_orphans type="Int">8192</tcp_max_orphans> <tcp_max_syn_backlog type="Int">1024</tcp_max_syn_backlog> <tcp_max_tw_buckets type="Int">180000</tcp_max_tw_buckets> <tcp_mem_low type="Int">24576</tcp_mem_low> <tcp_mem_pressure type="Int">32768</tcp_mem_pressure> <tcp_mem_high type="Int">49152</tcp_mem_high> <tcp_moderate_rcvbuf type="Int">0</tcp_moderate_rcvbuf> <tcp_no_metrics_save type="Bool">0</tcp_no_metrics_save> <tcp_orphan_retries type="Int">0</tcp_orphan_retries> <tcp_reordering type="Int">3</tcp_reordering> <tcp_retrans_collapse type="Bool">1</tcp_retrans_collapse> <tcp_retries1 type="Int">3</tcp_retries1> <tcp_retries2 type="Int">5</tcp_retries2> <tcp_rfc1337 type="Bool">0</tcp_rfc1337> <tcp_rmem_min type="Int">4096</tcp_rmem_min> <tcp_rmem_default type="Int">8192</tcp_rmem_default> <tcp_rmem_max type="Int">262144</tcp_rmem_max> <tcp_sack type="Bool">1</tcp_sack> <tcp_stdurg type="Bool">0</tcp_stdurg> <tcp_synack_retries type="Int">5</tcp_synack_retries> <tcp_syn_retries type="Int">5</tcp_syn_retries> <tcp_timestamps type="Bool">1</tcp_timestamps> <tcp_tw_recycle type="Bool">1</tcp_tw_recycle> <tcp_tw_reuse type="Bool">0</tcp_tw_reuse> <tcp_vegas_alpha type="Int">2</tcp_vegas_alpha> <tcp_vegas_beta type="Int">6</tcp_vegas_beta> <tcp_vegas_cong_avoid type="Int">0</tcp_vegas_cong_avoid> <tcp_vegas_gamma type="Int">2</tcp_vegas_gamma> <tcp_westwood type="Int">0</tcp_westwood> <tcp_window_scaling type="Bool">0</tcp_window_scaling> <ip_no_pmtu_disc type="Bool">1</ip_no_pmtu_disc> <tcp_wmem_min type="Int">4096</tcp_wmem_min> <tcp_wmem_default type="Int">8192</tcp_wmem_default> <tcp_wmem_max type="Int">262144</tcp_wmem_max> <tcp_ipfrag_time type="Int">30</tcp_ipfrag_time> <tcp_port_min type="Int">1024</tcp_port_min> <tcp_port_max type="Int">65535</tcp_port_max> <tcp_rto_min type="Int">1000</tcp_rto_min> <tcp_rto_max type="Int">60000</tcp_rto_max> <tcp_tw_rfc1323_strict type="Bool">0</tcp_tw_rfc1323_strict> <udp_port_randomization type="Bool">0</udp_port_randomization> <disable_min_max_buffer_size type="Bool">1</disable_min_max_buffer_size> <llm_hdr_gap type="Int">8</llm_hdr_gap> <llm_hdr_gap_ns type="Int">10</llm_hdr_gap_ns> <inter_packet_granular_delay type="Double">0</inter_packet_granular_delay> <delayed_acks type="Bool">1</delayed_acks> <accept_ra_default type="Bool">0</accept_ra_default> <rps_needed type="Bool">0</rps_needed> <delayed_acks_segments type="Int">0</delayed_acks_segments> <delayed_acks_timeout type="Int">0</delayed_acks_timeout> <tcp_large_icwnd type="Int">0</tcp_large_icwnd> <tcp_mgmt_rmem type="Int">87380</tcp_mgmt_rmem> <tcp_mgmt_wmem type="Int">32768</tcp_mgmt_wmem> <adjust_tcp_buffers type="Bool">1</adjust_tcp_buffers> <name type="String">TCP-1</name> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.TCPPlugin> <Ixia.Aptixia.StackManager.DnsPlugin type="Ixia.Aptixia.StackManager.DnsPlugin" objectid="9cc60113-3e53-4cf2-b3b7-6fd7d3953bb4" version="6.70.420"> <domain type="String" /> <timeout type="Int">30</timeout> <nameServerList type="ListNode" /> <searchList type="ListNode" /> <hostList type="ListNode" /> <name type="String">DNS-1</name> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.DnsPlugin> <Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type="Ixia.Aptixia.StackManager.IxLoadSettingsPlugin" objectid="399db714-47a8-445d-a24b-90d00d3f2e9e" version="1.0.0"> <teardownInterfaceWithUser type="Bool">0</teardownInterfaceWithUser> <interfaceBehavior type="Int">0</interfaceBehavior> <name type="String">Settings-1</name> <ixLoadRestObjectId type="Int">5</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IxLoadSettingsPlugin> <Ixia.Aptixia.StackManager.MeshingPlugin type="Ixia.Aptixia.StackManager.MeshingPlugin" objectid="39d2a556-cf85-4102-8461-b1f1413b2db5" version="6.70.420"> <trafficMaps type="ListNode"> <Ixia.Aptixia.StackManager.MeshingTrafficMap type="Ixia.Aptixia.StackManager.MeshingTrafficMap" objectid="cdca1e00-77a3-49ef-8fe5-afb321a51af2" version="6.70.420"> <name type="String">CALLING!VoIP2_CALLED#{{sipportcalled}}</name> <configMapFilename type="String">CALLINGScript.configmap</configMapFilename> <sourceActivityId type="Int">1</sourceActivityId> <ipPreference type="Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference">0</ipPreference> <portRangesString type="String">{{sipportcalled}}</portRangesString> <meshingType type="Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType">2</meshingType> <destinationActivityId type="Int">0</destinationActivityId> </Ixia.Aptixia.StackManager.MeshingTrafficMap> </trafficMaps> <activityRangeMapInfoList type="ListNode" /> <name type="String">Meshing-1</name> <ixLoadRestObjectId type="Int">11</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MeshingPlugin> </globalPluginList> <portList type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList"> <String>{{ipchassis}};1;1</String> </portList> <typeSpecificData type="ListNode"> <Ixia.Aptixia.StackManager.IPSecPortGroupData type="Ixia.Aptixia.StackManager.IPSecPortGroupData" objectid="62e57abd-b4c6-45af-a720-7033259c203c" version="6.70.0"> <role type="String">Initiator</role> <associates type="ListNode" /> <overrideGlobalOptions type="Bool">0</overrideGlobalOptions> <useMaxInitiationRate type="Bool">0</useMaxInitiationRate> <maxInitiationRate type="Int">50</maxInitiationRate> <useMaxPendingTunnels type="Bool">0</useMaxPendingTunnels> <maxPendingTunnels type="Int">50</maxPendingTunnels> <teardownRate type="Int">10</teardownRate> <enableESPPerStreamStats type="Bool">0</enableESPPerStreamStats> <enableESPReplayStats type="Bool">0</enableESPReplayStats> <activities type="ListNode" /> <pcpuLogLevel type="String">0</pcpuLogLevel> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IPSecPortGroupData> </typeSpecificData> <virtualMode type="Bool">0</virtualMode> <allowedVirtualModeTypes type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList" /> <doOwnership type="Bool">0</doOwnership> <branchToNicMap type="ListNode" /> <cpuAggregation type="Bool">0</cpuAggregation> <activePort type="String" /> <networkLayersManager type="Ixia.Aptixia.StackManager.NetworkLayersManager" objectid="f7999b28-d3d6-4a69-bd61-ab5516b7c540" version="6.70.420"> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </networkLayersManager> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.PortGroup> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="b1fbd381-b769-4ec1-8715-299508ecb458" version="6.70.420"> <name type="String">VM2</name> <category type="String" /> <stack type="Ixia.Aptixia.StackManager.L1EthernetPlugin" objectid="48f486a6-f09b-4770-a091-e9ce609e9bec" version="6.70.420"> <autoNegotiate type="Bool">1</autoNegotiate> <speed type="String">k100FD</speed> <advertise10Half type="Bool">1</advertise10Half> <advertise10Full type="Bool">1</advertise10Full> <advertise100Half type="Bool">1</advertise100Half> <advertise100Full type="Bool">1</advertise100Full> <advertise1000Full type="Bool">1</advertise1000Full> <advertise2500Full type="Bool">1</advertise2500Full> <advertise5000Full type="Bool">1</advertise5000Full> <advertise10000Full type="Bool">1</advertise10000Full> <cardDualPhy type="Ixia.Aptixia.StackManager.DualPhyPlugin" objectid="c500685a-4fcb-4335-abe0-70c98cf1ba43" version="6.70.420"> <medium type="String">auto</medium> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </cardDualPhy> <cardElm type="Ixia.Aptixia.StackManager.EthernetELMPlugin" objectid="92644bb5-bda6-4072-98f9-47b47e4597c7" version="6.70.420"> <negotiateMasterSlave type="Bool">1</negotiateMasterSlave> <negotiationType type="String">master</negotiationType> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </cardElm> <enableFlowControl type="Bool">0</enableFlowControl> <directedAddress type="String">01:80:C2:00:00:01</directedAddress> <dataCenter type="Ixia.Aptixia.StackManager.DataCenterSettings" objectid="3726f608-97b7-4bf2-b88e-4c0bf13b45a0" version="6.70.420"> <dcSupported type="Bool">1</dcSupported> <dcEnabled type="Bool">0</dcEnabled> <dcFlowControl type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType">0</dcFlowControl> <dcMode type="Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode">2</dcMode> <dcPfcMapping type="IntList" /> <dcPfcPauseEnable type="Bool">0</dcPfcPauseEnable> <dcPfcPauseDelay type="Int">1</dcPfcPauseDelay> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </dataCenter> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.L2EthernetPlugin type="Ixia.Aptixia.StackManager.L2EthernetPlugin" objectid="820b0582-6a4c-4109-bd5d-587621a43ce2" version="6.70.420"> <macRangeList type="ListNode"> <Ixia.Aptixia.StackManager.MacRange type="Ixia.Aptixia.StackManager.MacRange" objectid="aa73bd95-9ffb-411e-8ab3-8a128767aacb" version="6.70.420"> <enabled type="Bool">1</enabled> <name type="String">MAC-R2</name> <mac type="String">00:0A:43:4F:2A:00</mac> <incrementBy type="String">00:00:00:00:00:01</incrementBy> <mtu type="Int">1410</mtu> <count type="Int">1</count> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="7024f4b3-1a75-491a-8da1-17a45a15d5cc" version="6.70.420"> <name type="String">VLAN-R2</name> <enabled type="Bool">0</enabled> <firstId type="Int">1</firstId> <incrementStep type="Int">1</incrementStep> <increment type="Int">1</increment> <uniqueCount type="Int">4094</uniqueCount> <priority type="Int">1</priority> <tpid type="String">0x8100</tpid> <innerEnable type="Bool">0</innerEnable> <innerFirstId type="Int">1</innerFirstId> <innerIncrementStep type="Int">1</innerIncrementStep> <innerIncrement type="Int">1</innerIncrement> <innerUniqueCount type="Int">4094</innerUniqueCount> <innerPriority type="Int">1</innerPriority> <idIncrMode type="Int">2</idIncrMode> <innerTpid type="String">0x8100</innerTpid> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </vlanRange> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MacRange> </macRangeList> <vlanRangeList type="ListNode"> <Ixia.Aptixia.StackManager.VlanIdRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="7024f4b3-1a75-491a-8da1-17a45a15d5cc" version="6.70.420" /> </vlanRangeList> <childrenList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Plugin type="Ixia.Aptixia.StackManager.IpV4V6Plugin" objectid="e53ae54e-ab21-4997-b532-e9bd58210050" version="6.70.420"> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="c69dae97-f1c2-4505-aedb-3f9ca3f4d02a" version="6.70.420"> <enabled type="Bool">1</enabled> <name type="String">IP-R2</name> <ipType type="String">IPv4</ipType> <ipAddress type="String">{{ipcard2}}</ipAddress> <prefix type="Int">16</prefix> <incrementBy type="String">0.0.0.1</incrementBy> <count type="Int">1</count> <autoCountEnabled type="Bool">0</autoCountEnabled> <gatewayAddress type="String">{{ipgw}}</gatewayAddress> <gatewayIncrement type="String">0.0.0.0</gatewayIncrement> <gatewayIncrementMode type="String">perSubnet</gatewayIncrementMode> <enableGatewayArp type="Bool">0</enableGatewayArp> <generateStatistics type="Bool">0</generateStatistics> <mss type="Int">1410</mss> <randomizeAddress type="Bool">0</randomizeAddress> <randomizeSeed type="Int">3534372608</randomizeSeed> <autoMacGeneration type="Bool">1</autoMacGeneration> <macRange type="Ixia.Aptixia.StackManager.MacRange" objectid="aa73bd95-9ffb-411e-8ab3-8a128767aacb" version="6.70.420" /> <vlanRange type="Ixia.Aptixia.StackManager.VlanIdRange" objectid="7024f4b3-1a75-491a-8da1-17a45a15d5cc" version="6.70.420" /> <atmRange type="Ixia.Aptixia.StackManager.AtmRange" objectid="00000000-0000-0000-0000-000000000000" /> <pvcRange type="Ixia.Aptixia.StackManager.PvcRange" objectid="00000000-0000-0000-0000-000000000000" /> <autoIpTypeEnabled type="Bool">0</autoIpTypeEnabled> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Range> </rangeList> <rangeGroups type="ListNode"> <Ixia.Aptixia.StackManager.RangeGroup type="Ixia.Aptixia.StackManager.RangeGroup" objectid="de9d629b-e0dc-41f5-99cb-5aa8a808ceee" version="6.70.420"> <name type="String">DistGroup1</name> <distribType type="Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType">0</distribType> <rangeList type="ListNode"> <Ixia.Aptixia.StackManager.IpV4V6Range type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="c69dae97-f1c2-4505-aedb-3f9ca3f4d02a" version="6.70.420" /> </rangeList> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.RangeGroup> </rangeGroups> <childrenList type="ListNode" /> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">IP-2</name> <ixLoadRestObjectId type="Int">6</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpV4V6Plugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">MAC/VLAN-2</name> <ixLoadRestObjectId type="Int">5</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.L2EthernetPlugin> </childrenList> <extensionList type="ListNode" /> <dscMode type="Bool">0</dscMode> <name type="String">Ethernet-2</name> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </stack> <globalPluginList type="ListNode"> <Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type="Ixia.Aptixia.StackManager.IxLoadSettingsPlugin" objectid="26685c48-95e7-4da5-a893-fc527b814b1c" version="1.0.0"> <teardownInterfaceWithUser type="Bool">0</teardownInterfaceWithUser> <interfaceBehavior type="Int">0</interfaceBehavior> <name type="String">Settings-2</name> <ixLoadRestObjectId type="Int">7</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IxLoadSettingsPlugin> <Ixia.Aptixia.StackManager.FilterPlugin type="Ixia.Aptixia.StackManager.FilterPlugin" objectid="3f42c205-a9ad-433b-b7af-19ea7ec76940" version="6.70.420"> <auto type="Bool">1</auto> <all type="Bool">0</all> <pppoecontrol type="Bool">0</pppoecontrol> <pppoenetwork type="Bool">0</pppoenetwork> <isis type="Bool">0</isis> <ip type="String" /> <tcp type="String" /> <udp type="String" /> <mac type="String" /> <icmp type="String" /> <name type="String">Filter-2</name> <ixLoadRestObjectId type="Int">8</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.FilterPlugin> <Ixia.Aptixia.StackManager.GratArpPlugin type="Ixia.Aptixia.StackManager.GratArpPlugin" objectid="fe43b342-829b-4ff4-8671-49ba1c4441e5" version="6.70.420"> <enabled type="Bool">1</enabled> <forwardGratArp type="Bool">0</forwardGratArp> <rateControlEnabled type="Bool">0</rateControlEnabled> <maxFramesPerSecond type="Int">0</maxFramesPerSecond> <name type="String">GratARP-2</name> <ixLoadRestObjectId type="Int">9</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.GratArpPlugin> <Ixia.Aptixia.StackManager.TCPPlugin type="Ixia.Aptixia.StackManager.TCPPlugin" objectid="57601116-d86b-4c04-856b-2241507a0378" version="6.70.420"> <bestPerfSettings type="Bool">0</bestPerfSettings> <accept_ra_all type="Bool">0</accept_ra_all> <tcp_abort_on_overflow type="Bool">0</tcp_abort_on_overflow> <tcp_adv_win_scale type="Int">2</tcp_adv_win_scale> <tcp_app_win type="Int">31</tcp_app_win> <tcp_bic type="Int">0</tcp_bic> <tcp_bic_fast_convergence type="Int">1</tcp_bic_fast_convergence> <tcp_bic_low_window type="Int">14</tcp_bic_low_window> <tcp_dsack type="Bool">1</tcp_dsack> <tcp_ecn type="Bool">0</tcp_ecn> <tcp_fack type="Bool">1</tcp_fack> <tcp_fin_timeout type="Int">60</tcp_fin_timeout> <tcp_frto type="Int">0</tcp_frto> <tcp_keepalive_intvl type="Int">75</tcp_keepalive_intvl> <tcp_keepalive_probes type="Int">9</tcp_keepalive_probes> <tcp_keepalive_time type="Int">7200</tcp_keepalive_time> <tcp_low_latency type="Int">0</tcp_low_latency> <tcp_max_orphans type="Int">8192</tcp_max_orphans> <tcp_max_syn_backlog type="Int">1024</tcp_max_syn_backlog> <tcp_max_tw_buckets type="Int">180000</tcp_max_tw_buckets> <tcp_mem_low type="Int">24576</tcp_mem_low> <tcp_mem_pressure type="Int">32768</tcp_mem_pressure> <tcp_mem_high type="Int">49152</tcp_mem_high> <tcp_moderate_rcvbuf type="Int">0</tcp_moderate_rcvbuf> <tcp_no_metrics_save type="Bool">0</tcp_no_metrics_save> <tcp_orphan_retries type="Int">0</tcp_orphan_retries> <tcp_reordering type="Int">3</tcp_reordering> <tcp_retrans_collapse type="Bool">1</tcp_retrans_collapse> <tcp_retries1 type="Int">3</tcp_retries1> <tcp_retries2 type="Int">5</tcp_retries2> <tcp_rfc1337 type="Bool">0</tcp_rfc1337> <tcp_rmem_min type="Int">4096</tcp_rmem_min> <tcp_rmem_default type="Int">4096</tcp_rmem_default> <tcp_rmem_max type="Int">262144</tcp_rmem_max> <tcp_sack type="Bool">1</tcp_sack> <tcp_stdurg type="Bool">0</tcp_stdurg> <tcp_synack_retries type="Int">5</tcp_synack_retries> <tcp_syn_retries type="Int">5</tcp_syn_retries> <tcp_timestamps type="Bool">1</tcp_timestamps> <tcp_tw_recycle type="Bool">1</tcp_tw_recycle> <tcp_tw_reuse type="Bool">0</tcp_tw_reuse> <tcp_vegas_alpha type="Int">2</tcp_vegas_alpha> <tcp_vegas_beta type="Int">6</tcp_vegas_beta> <tcp_vegas_cong_avoid type="Int">0</tcp_vegas_cong_avoid> <tcp_vegas_gamma type="Int">2</tcp_vegas_gamma> <tcp_westwood type="Int">0</tcp_westwood> <tcp_window_scaling type="Bool">0</tcp_window_scaling> <ip_no_pmtu_disc type="Bool">1</ip_no_pmtu_disc> <tcp_wmem_min type="Int">4096</tcp_wmem_min> <tcp_wmem_default type="Int">4096</tcp_wmem_default> <tcp_wmem_max type="Int">262144</tcp_wmem_max> <tcp_ipfrag_time type="Int">30</tcp_ipfrag_time> <tcp_port_min type="Int">1024</tcp_port_min> <tcp_port_max type="Int">65535</tcp_port_max> <tcp_rto_min type="Int">200</tcp_rto_min> <tcp_rto_max type="Int">120000</tcp_rto_max> <tcp_tw_rfc1323_strict type="Bool">0</tcp_tw_rfc1323_strict> <udp_port_randomization type="Bool">0</udp_port_randomization> <disable_min_max_buffer_size type="Bool">1</disable_min_max_buffer_size> <llm_hdr_gap type="Int">8</llm_hdr_gap> <llm_hdr_gap_ns type="Int">10</llm_hdr_gap_ns> <inter_packet_granular_delay type="Double">0</inter_packet_granular_delay> <delayed_acks type="Bool">1</delayed_acks> <accept_ra_default type="Bool">0</accept_ra_default> <rps_needed type="Bool">0</rps_needed> <delayed_acks_segments type="Int">0</delayed_acks_segments> <delayed_acks_timeout type="Int">0</delayed_acks_timeout> <tcp_large_icwnd type="Int">0</tcp_large_icwnd> <tcp_mgmt_rmem type="Int">87380</tcp_mgmt_rmem> <tcp_mgmt_wmem type="Int">32768</tcp_mgmt_wmem> <adjust_tcp_buffers type="Bool">1</adjust_tcp_buffers> <name type="String">TCP-2</name> <ixLoadRestObjectId type="Int">10</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.TCPPlugin> <Ixia.Aptixia.StackManager.DnsPlugin type="Ixia.Aptixia.StackManager.DnsPlugin" objectid="7682d113-cd50-4cc6-b23a-569c29f03886" version="6.70.420"> <domain type="String" /> <timeout type="Int">30</timeout> <nameServerList type="ListNode" /> <searchList type="ListNode" /> <hostList type="ListNode" /> <name type="String">DNS-2</name> <ixLoadRestObjectId type="Int">12</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.DnsPlugin> <Ixia.Aptixia.StackManager.MeshingPlugin type="Ixia.Aptixia.StackManager.MeshingPlugin" objectid="f5f1e4c2-eef8-4a34-ac13-e1e3eeb5328b" version="6.70.420"> <trafficMaps type="ListNode" /> <activityRangeMapInfoList type="ListNode" /> <name type="String">Meshing-2</name> <ixLoadRestObjectId type="Int">13</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MeshingPlugin> </globalPluginList> <portList type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList"> <String>{{ipchassis}};2;1</String> </portList> <typeSpecificData type="ListNode"> <Ixia.Aptixia.StackManager.IPSecPortGroupData type="Ixia.Aptixia.StackManager.IPSecPortGroupData" objectid="c279f05c-d2a7-476d-b4af-9c8ff0d878dd" version="6.70.0"> <role type="String">Initiator</role> <associates type="ListNode" /> <overrideGlobalOptions type="Bool">0</overrideGlobalOptions> <useMaxInitiationRate type="Bool">0</useMaxInitiationRate> <maxInitiationRate type="Int">50</maxInitiationRate> <useMaxPendingTunnels type="Bool">0</useMaxPendingTunnels> <maxPendingTunnels type="Int">50</maxPendingTunnels> <teardownRate type="Int">10</teardownRate> <enableESPPerStreamStats type="Bool">0</enableESPPerStreamStats> <enableESPReplayStats type="Bool">0</enableESPReplayStats> <activities type="ListNode" /> <pcpuLogLevel type="String">0</pcpuLogLevel> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IPSecPortGroupData> </typeSpecificData> <virtualMode type="Bool">0</virtualMode> <allowedVirtualModeTypes type="Ixia.RpFramework.Server.Core.ShadowedPropertyStringList" /> <doOwnership type="Bool">0</doOwnership> <branchToNicMap type="ListNode" /> <cpuAggregation type="Bool">0</cpuAggregation> <activePort type="String" /> <networkLayersManager type="Ixia.Aptixia.StackManager.NetworkLayersManager" objectid="d581a4e6-0e4b-4692-a0e2-12fd25d7db35" version="6.70.420"> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </networkLayersManager> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.PortGroup> </portGroupList> <externalProperties type="Ixia.Aptixia.StackManager.ExternalPropertyManager" objectid="0c7c98dd-4e41-4fb8-adb7-918848d0ba3e" version="6.70.420"> <properties type="ListNode"> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="c7be9c3b-0335-4cf6-bbcb-d9a90d6b78a0" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DHCPRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="d63defc3-039a-4af6-b0f6-19be5481d6bb" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">MobileSubscribersRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="d62b40dc-41c2-48b0-b3a6-4aa74e171a8c" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DHCPServerRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="45eba56d-c42f-4bbf-830b-1f102bf83c92" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPUERange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="a9e91079-1215-444b-a0a0-59f8ff4e7746" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPGRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="b91778ea-dac5-499a-8c54-b8ba0c78b44b" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPRange_SGW</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="13f113b2-8ce8-4742-ac72-f8ee04caa5d6" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPSUERange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="f2723794-57ce-471c-b3ae-10cd5ee235a2" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IpV4V6Range</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="3e8d5274-5483-41ca-8f4d-b1fce291dad1" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">PppoxRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="85b44e1f-0689-4feb-a14d-b43a1b837c1d" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">L2tpRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="c0383f23-e15f-4a97-bbf8-6ade8f6f2b0c" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatLTEUEUeRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="5912723b-fb9a-4e0a-bae4-38730c73cc0e" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">SixRdRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="9a6cb101-a624-4978-8d0c-85c5b6c26906" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPSgsnS3RangeUe</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="4f85b4a9-d55e-494e-beb6-5ef5b5d04cf8" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EmulatedRouterRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="489dbc18-55b5-4902-99ab-9a289a8c2e2b" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPNGAPRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="2992f902-204b-4050-8798-0b24ee090922" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatRNCIuPSUeRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="8b53f68d-6027-4150-9ca3-5a62606526bd" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">GTPNGUERange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="e85d740f-87a2-473a-a133-e08d5bb48ed2" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPUERange_S5S8_SGW</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="5a179c3f-82db-44b3-95fc-6e4dbfe17556" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPPcrfRange_S5S8_PGW</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="55d890fe-0faa-41bd-9fca-12463fd14b3d" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DSLiteRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="8dc83b0a-45a9-46b7-9b52-731eb114d315" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPSGSNRangeUe</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="a0883ed3-63b7-47cb-ab77-7ceebb8212e1" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">SlaacRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="7bb58c6e-377f-46be-a2b1-7d86997b2fa1" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">AtmRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="8a4c92be-449a-4f0e-bcf3-55fdfcc369cc" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatMMEApnRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="588aea0d-748b-4b82-9418-4f3a35185d2e" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatENodeBUuApnRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="9046358f-dde4-4f17-b596-5903079d3bcf" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">MacRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="a28df47f-783e-4bc9-aa22-78636ceaf1b7" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">DualStackIPRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="19deb9c9-8aef-41e2-8b8b-f01a8b274266" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPUERange_S2a_TWAN</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="6abb9650-bc55-4e9e-9dfc-81964310e662" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatSGSNIuPSApnRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="35dc8f8d-44fd-4c73-9771-6c62bd227435" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">IxCatENodeBSimUeRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="3c48b615-2c03-4c1b-8712-e83f63841d13" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">S6dRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="cd5080c1-8de4-4eb3-985a-3e9fe38ebed4" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">UERangeBase</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="24c2c3a6-f9fd-4b8e-bc9f-aeeac63bae01" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPMmeS10RangeUe</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="529a2786-eb8c-40cb-80b9-83415888012c" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">S6aRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="6593d153-2b87-4171-a8bf-8ae2b1907487" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">PptpRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="819a5c99-14bf-4efb-912a-5d2c985e97d1" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">BmScRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="83ff7bd6-95cf-4d75-91e4-3e2a9f5f6b7d" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">MBmsGwRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> <Ixia.Aptixia.StackManager.ExternalPropertyInfo type="Ixia.Aptixia.StackManager.ExternalPropertyInfo" objectid="022d8e72-36c8-4117-b901-baffb9d0805c" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <targetType type="String">EGTPPMIPHostRange</targetType> <valueType type="String">ExternalValueBoolean</valueType> <description type="String">Enable collection of interface statistics on this range</description> </Ixia.Aptixia.StackManager.ExternalPropertyInfo> </properties> <values type="ListNode"> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="57badb9d-afb8-4c05-9182-df7469457e4c" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="5affc0a7-68f6-46f6-b801-0e18e067a572" version="6.70.420" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="1efc6993-1480-469a-a6af-38b4093fb102" version="6.70.420"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">13</ixLoadRestObjectId> </value> <enabled type="Bool">1</enabled> <ixLoadRestObjectId type="Int">13</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="22a742ae-d9bd-4548-83f1-84da6cc07c5f" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.IpV4V6Range" objectid="c69dae97-f1c2-4505-aedb-3f9ca3f4d02a" version="6.70.420" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="b664f3f9-4f42-48c1-a481-75ba76740055" version="6.70.420"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </value> <enabled type="Bool">1</enabled> <ixLoadRestObjectId type="Int">2</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="77dd061e-b592-4d9e-9c38-24a46fec1121" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.MacRange" objectid="aa73bd95-9ffb-411e-8ab3-8a128767aacb" version="6.70.420" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="b5f138be-a18b-46a3-b3f8-c90fa5711597" version="6.70.420"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </value> <enabled type="Bool">0</enabled> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> <Ixia.Aptixia.StackManager.ExternalProperty type="Ixia.Aptixia.StackManager.ExternalProperty" objectid="6dc25ae2-da26-4df6-8a25-cf296dd9430b" version="6.70.420"> <propertyName type="String">Publish Statistics</propertyName> <target type="Ixia.Aptixia.StackManager.MacRange" objectid="ba896971-1d78-4e03-8f2a-28c65417612e" version="6.70.420" /> <value type="Ixia.Aptixia.StackManager.ExternalValueBoolean" objectid="0858fb9d-2304-44d4-b413-569815c8b6a7" version="6.70.420"> <value type="Bool">0</value> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </value> <enabled type="Bool">0</enabled> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.ExternalProperty> </values> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </externalProperties> <availableNetworkTimelines type="ListNode" /> <typeSpecificData type="ListNode"> <Ixia.Aptixia.StackManager.IxLoadSessionData type="Ixia.Aptixia.StackManager.IxLoadSessionData" objectid="149d16d7-c594-4866-917f-fe1b44fac83f" version="1.0.0"> <portGroupList type="ListNode"> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="b1fbd381-b769-4ec1-8715-299508ecb458" version="6.70.420" /> <Ixia.Aptixia.StackManager.PortGroup type="Ixia.Aptixia.StackManager.PortGroup" objectid="e7fa1f9e-23d9-4742-96b2-6edce6c4424e" version="6.70.420" /> </portGroupList> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IxLoadSessionData> <Ixia.Aptixia.StackManager.MacSessionData type="Ixia.Aptixia.StackManager.MacSessionData" objectid="7869d347-cce4-4cd3-9eed-88a3914ae956" version="6.70.420"> <duplicateCheckingScope type="Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions">2</duplicateCheckingScope> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.MacSessionData> <Ixia.Aptixia.StackManager.IpSessionData type="Ixia.Aptixia.StackManager.IpSessionData" objectid="93416b84-eb4a-4637-ab56-4a4de6250c3b" version="6.70.420"> <duplicateCheckingScope type="Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions">2</duplicateCheckingScope> <enableGatewayArp type="Bool">0</enableGatewayArp> <gatewayArpRequestRate type="Int">300</gatewayArpRequestRate> <maxOutstandingGatewayArpRequests type="Int">300</maxOutstandingGatewayArpRequests> <ignoreUnresolvedIPs type="Bool">0</ignoreUnresolvedIPs> <sendAllRequests type="Bool">0</sendAllRequests> <individualARPTimeOut type="Int">500</individualARPTimeOut> <ixLoadRestObjectId type="Int">4</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IpSessionData> <Ixia.Aptixia.StackManager.IPSecSessionData type="Ixia.Aptixia.StackManager.IPSecSessionData" objectid="8611fd36-7f8c-48bc-ac46-f6e2f0816cb5" version="6.70.0"> <ipsecTunnelSetup type="Ixia.Aptixia.StackManager.IPSecTunnelSetup" objectid="e08e1671-e189-4cba-8894-5dda9b24701a" version="6.70.0"> <tunnelSetupTimeout type="Int">30</tunnelSetupTimeout> <tunnelRetransmissionTimeout type="Int">30</tunnelRetransmissionTimeout> <numRetries type="Int">0</numRetries> <retryInterval type="Int">10</retryInterval> <retryDelay type="Int">10</retryDelay> <testType type="String">P2D</testType> <logLevel type="String">3</logLevel> <sendCiscoVid type="Bool">0</sendCiscoVid> <useMaxInitiationRate type="Bool">0</useMaxInitiationRate> <useMaxPendingTunnels type="Bool">0</useMaxPendingTunnels> <enableRekey type="Bool">1</enableRekey> <rekeyRetries type="Int">3</rekeyRetries> <rekeyFuzzPercentage type="Int">0</rekeyFuzzPercentage> <rekeyMargin type="Int">10</rekeyMargin> <ixLoadRestObjectId type="Int">7</ixLoadRestObjectId> </ipsecTunnelSetup> <ipsecCertificates type="Ixia.Aptixia.StackManager.IPSecCertificates" objectid="b53c8c74-6c81-4e4a-84cb-5beb05b38343" version="6.70.0"> <uniqueCert type="Bool">0</uniqueCert> <certSource type="String">kNewCert</certSource> <caURL type="String" /> <caDN type="String" /> <certSubjectDN type="String" /> <certSubjectAltDN type="String" /> <remoteIkeId type="String" /> <bitSize type="String">k512</bitSize> <saveCert type="Bool">1</saveCert> <cacheCertFolder type="String">C:\Program Files (x86)\Ixia\CachedCerts</cacheCertFolder> <certParentFolder type="String">C:\Program Files (x86)\Ixia\CachedCerts</certParentFolder> <certNumber type="String" /> <caCertNumber type="String" /> <earlyExpDate type="String" /> <lateExpDate type="String" /> <usePerRangeCertNameExp type="Bool">0</usePerRangeCertNameExp> <checkCrl type="Bool">0</checkCrl> <crlOverrideEnable type="Bool">0</crlOverrideEnable> <crlOverrideUrl type="String" /> <checkOcsp type="Bool">0</checkOcsp> <ocspOverrideEnable type="Bool">0</ocspOverrideEnable> <ocspOverrideUrl type="String" /> <unknownIsRevoked type="Bool">0</unknownIsRevoked> <certProto type="String">kSCEP</certProto> <ixLoadRestObjectId type="Int">7</ixLoadRestObjectId> </ipsecCertificates> <ipsecCertManager type="Ixia.Aptixia.StackManager.IPSecCertManager" objectid="21591e4a-9e87-48e6-8679-68685c5c8383" version="6.70.0"> <caURL type="String" /> <caDN type="String">CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com</caDN> <certSubjectDN type="String">CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia</certSubjectDN> <keyGenAlgo type="String">kRSA_512</keyGenAlgo> <cacheCertFolder type="String">C:\Program Files (x86)\Ixia\CachedCerts</cacheCertFolder> <caKeyFile type="String">C:\Program Files (x86)\Ixia\ca-priv.key</caKeyFile> <caCrtFile type="String">C:\Program Files (x86)\Ixia\ca-cert.crt</caCrtFile> <certNumber type="Int">1</certNumber> <certProto type="String">kSCEP</certProto> <createRootCA type="Bool">0</createRootCA> <uniqueCert type="Bool">0</uniqueCert> <descFilePath type="String">C:\Program Files (x86)\Ixia\CachedCerts\sample.desc</descFilePath> <useDescFile type="Bool">0</useDescFile> <ixLoadRestObjectId type="Int">6</ixLoadRestObjectId> </ipsecCertManager> <eapSimTuples type="ListNode" /> <eapAkaTuples type="ListNode" /> <maxInitiationRate type="Int">50</maxInitiationRate> <maxPendingTunnels type="Int">50</maxPendingTunnels> <negotiationStartDelay type="Int">0</negotiationStartDelay> <teardownRate type="Int">10</teardownRate> <burstInitiation type="Bool">0</burstInitiation> <parallelInitiation type="Bool">0</parallelInitiation> <enableWildcardTsi type="Bool">0</enableWildcardTsi> <enableWildcardTsr type="Bool">0</enableWildcardTsr> <enablePlutoWildcardTsi type="Bool">0</enablePlutoWildcardTsi> <enablePlutoModeCfgWildcardTsr type="Bool">1</enablePlutoModeCfgWildcardTsr> <enablePlutoS2SWildcardTsr type="Bool">0</enablePlutoS2SWildcardTsr> <payloadAttrTypes type="ListNode" /> <ixLoadRestObjectId type="Int">3</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.IPSecSessionData> </typeSpecificData> <statViewManager type="Ixia.Aptixia.StackManager.StatViewManager" objectid="32b6a125-39ad-4da3-9710-e09cc94bf306" version="6.70.420"> <enableStats type="Bool">1</enableStats> <enableOverviewStats type="Bool">1</enableOverviewStats> <enablePerSessionStats type="Bool">1</enablePerSessionStats> </statViewManager> <waitForLinkUp type="Bool">0</waitForLinkUp> <overloadProtection type="Bool">1</overloadProtection> <ixLoadRestObjectId type="Int">1</ixLoadRestObjectId> </Ixia.Aptixia.StackManager.SMSession> </rpf> - - <_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig"> - - - <_quickTestConfig ver="[0, [1, [0, [0]]]]" type="ixQuickTestConfig"> - - - 17217 - 8.30.0.161 - REG_CALL_OPNFV_ORANGE_v13.rxf - - C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion - REG_CALL_OPNFV_ORANGE_v9j.rxf - Test1 - - - - {{ipchassis}} - 1 - None - - - <_apiUniqueId type="int">15685 - - - 1 - - - - - - - - - - - - Test1 - - True - False - True - False - 1 - - False - 4 - 0 - - 1 - 0 - 30 - 0 - 0 - <_apiUniqueId type="int">15467 - - - - New Traffic Flow - - - Originate - - - VoIP1@VM1 - None - netTraffic - True - Peer - ethernet - ipTrafficAgent - Both - - - - None - VoIP1 - Peer - ipTrafficAgent - None - - - True - REGISTERING - None - False - Both - 0 - - - 100.0 - 27 - - 4.10 - - - -2 - START - Start - - - Output1 - 0 - 2 - 0 - 2 - - - - - -3 - STOP - Stop - - - - 2 - Procedure - Register Complete (#4) - - - OK - 0 - 47 - 1 - 3 - - - - - 47 - CommandEx - Sleep (#2) - - - OK - 0 - -3 - 1 - 1 - - - FlowSleep - - - - <None> - 1 - - - 0 - 0 - - - - False - False - 600000 - False - False - 1 - False - 10 - - - False - 0 - False - True - 25 - False - False - 10 - 0 - 0 - - False - - - 0 - 0 - 1 - 1000 - 0 - -20 - 0 - 0 - 10 - 0 - 200 - 200 - -10 - 4000 - 2000 - 500 - 2000 - True - False - - - 15 - - - 25 - False - False - - - False - False - False - 0 - 1 - 10 - [00-10] - - - - 86534 - 3 - 0 - activeUsers - 1000 - 9223372036854775807 - 23 - False - - 32000 - False - False - False - False - - REGISTERING - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - {{sipportregistering}} - 0 - 1 - {{pnregistering}} - 1 - 0 - 1 - 0 - - 1 - 1 - 0 - 1 - [10000-65535,4] - 40000 - 2855 - 0 - 1 - 1 - 1 - 1 - 1 - 1 - False - False - False - False - 5061 - True - 1 - 2 - 1 - False - False - 0 - 0 - aptixia-T.03440c56.4e1a.4def.8406.ec64db91d4c1-L2EthernetPlugin-166a11b6.4d30.40ea.b9e1.ac4fb44f112b-161.105.231.12;1;1default - - - - 1 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - - 0 - 0 - - 1 - 0 - 0 - 0 - - 0 - 0 - 0 - 0 - - - 2855 - 0 - 0 - 0 - 0 - 1 - 12 - 0 - False - False - False - False - - False - 1 - 2 - 1 - False - False - 0 - 0 - - - False - - - 5060 - - - - - - 0 - - - - - - - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - 0 - 0 - - 0 - 0 - 0 - 0 - - 0 - 0 - 0 - 0 - - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - False - False - False - False - - False - 0 - 1 - 1 - False - False - 0 - 0 - - - False - False - - 5060 - - - - - - 0 - - - - - - - - - .\Registration_only_LPS.tst - 0 - 48 - 66 - 2 - 0 - - - 0 - 1 - 0 - 0 - True - False - 1 - 0 - 1 - 0 - 1 - 1 - True - 0 - 1 - 0 - 1 - True - False - True - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - 9 - 1 - 1 - 32 - <_gbDebugLogs type="bool">False - False - - <_dict type="list"> - - _ipRule1 - - 1 - 0 - - - - dl_S_ADV - - 1 - 1 - - - - loopMidDelay - - - - dl_T_IO - - - - dl_T_INFO - - - - dl_S_SEND - - - - _rtpIpRule1 - - - - _estimatedBacklog - - - - loopPreDelay - - - - dl_EE_VRB - - - - dl_S_VRB - - - - log_filesize - - - - rtp_log_in_file - - - - loopCount - - 0 - 1 - - - - dl_T_VRB - - - - aliases - - - - dl_Q_ADV - - - - multipleUsersPerIO - - - - log_level - - - - rtpIpRule - - - - dl_1 - - - - dl_3 - - - - dl_2 - - - - rampdownSleep - - - - _portRule1 - - - - dl_FLOW - - - - dl_S_SER - - - - log_in_memory - - - - dl_R_VRB - - - - dl_Q_VRB - - - - portRuleCh - - - - rtpPortRule - - - - dl_M_IO - - - - dl_EE_DD - - - - rtpIpRuleCh - - - - dl_S_FSM - - - - loopMode - - - - _rtpPortRule1 - - - - dl_BUG - - - - dl_S_SUA - - - - ipRule - - - - ipRuleCh - - - - phoneRule - - - - dl_S_INFO - - - - dl_R_PAR - - - - gracefulRampDown - - - - dl_S_WAIT - - - - dl_SDP_DD - - - - dl_TRACE - - - - _gbDebugLogs - - - - rtpPortRuleCh - - - - dl_TG_VRB - - - - portRule - - - - dl_L_INFO - - - - dl_TG_ADV - - - - dl_R_DD - - - - dl_T_ADV - - - - ccExportProfile - - - - dl_L_ADV - - - - dl_L_VRB - - - - - - - False - 1-5 - 0 - 10000 - 1 - 500 - 500 - 4000 - 1 - 0 - 0 - 18 - 1 - 1500 - 5 - 2500 - 1500 - 2000 - 1 - 40 - 0 - 0 - 800 - 2150 - 1500 - 2000 - 500 - 0 - 750 - 86534 - 0 - {{registeringtotalcalls}} - - - 0 - - - 0 - 35 - 0 - - - Default.cap - False - False - 10000 - 0x8078C5D3 - - - - - - 0 - 0 - 160 - - - 8 - 8 - 160 - - - 2 - <_gbVideoCodecs type="bool">False - 96 - <_gbDataCodecs type="bool">False - - - 100 - - - 101 - - - -1 - - - [10000-65535,4] - False - False - False - False - False - False - False - False - False - False - False - False - False - AS:48 - False - 800 - False - 800 - False - AS:384 - False - 6400 - False - 6400 - False - AS:48 - False - 800 - False - 800 - - <_dict type="list"> - - videoRR_value - - - - _gbVideoSDPParams - - - - textRS_value - - - - channelsQoVPerZionPort - - - - _gbAudioSDPParams - - - - dedicatedCoreRange - - - - enableRTP - - - - rtpTosVal - - - - channelTypeQoV - - - - enableMediaSDPParams - - - - _gbTextSDPParams - - - - activityIdQoV - - - - rtpPort - - - - serviceEnabledQoV - - - - audioRS_option - - - - useJitComp - - - - maxMosStreams - - - - audioB_option - - - - audioB_value - - - - portIPsQoV - - - - customTos - - - - enableHwAcc - - - - enableIxStack - - - - jitMs - - - - videoRR_option - - - - rtpTos - - - - enableRTCPMux - - - - textRR_option - - - - silenceMode - - - - _gbMediaSDPParams - - - - textB_option - - - - enableQoV - - - - jitCMs - - - - valueQoV - - - - enableRTCP - - - - dedicatedCoreRangeLength - - - - enableMDI - - - - chEnableHwAcc - - - - enableOWD - - - - unitsQoV - - - - ixnamSupported - - - - chDisableHwAcc - - - - customTosGroupBox - - - - audioRR_option - - - - enablePerStream - - - - useSilence - - - - useMos - - - - textRR_value - - - - audioRS_value - - - - videoB_value - - - - mosInterval - - - - enableAdvStatCalc - - - - useJitter - - - - limitMos - - - - metricsQoV - - - - videoRS_option - - - - videoRS_value - - - - jitCMaxDrop - - - - audioRR_value - - - - textB_value - - - - enableTosRtp - - - - videoB_option - - - - activityNameQoV - - - - textRS_option - - - - enableNBExec - - - - - - - False - 0 - False - False - IxLoad - 2000 - 2000 - - <_dict type="list"> - - rtcpSDESTool - - - - rtcpSenderTimer - - - - rtcpCNAMEType - - - - hasSDESTool - - - - rtcpReceiverTimer - - - - rtcpIgnoreSSRC - - - - hasSDESName - - - - enableRTCPMux2 - - - - - - - False - <_gbEnableAudio type="bool">False - False - False - <_JB1 type="bool">False - 20 - False - 1000 - 7 - rtp_esmad-asordo-l_1224 - False - False - 1 - False - 1 - False - 0x20 - 32 - <_COV1 type="bool">False - False - 5 - - 0 - False - <_gbEnableQoV type="bool">False - False - - - 0 - 100 - 0 - 0 - 0 - 0 - English(US) - - 0 - False - <_gbEnableQoV type="bool">False - False - - - 0 - 100 - 0 - 0 - 0 - 0 - English(US) - US_042.wav - <_audioFormat type="str">Format: PCM, Duration: 32785 ms, Size: 524556 bytes - -20 - <_gbOutputLevel type="bool">False - 0 - 10 - 1 - - <_dict type="list"> - - _gbEnableQoV - - - - channelTypeQoV - - - - pesqPolqa - - - - enablePTT - - - - enableP56 - - - - qovAnalize - - - - channelsQoVPerZionPort - - - - _COV1 - - 0 - 0 - - - - useTelchemy - - - - activityIdQoV - - - - rtpTosVal - - - - useJitComp - - - - audioDuration - - - - _JB1 - - - - enableAudio - - - - portIPsQoV - - - - _gbQoVMetrics - - - - dodName - - - - jitMs - - - - _gbASRLanguage - - - - rtpTos - - - - radioBtnQoVASR - - - - silenceMode - - - - playTypeAudio - - - - useQoV - - - - activityNameQoV - - - - enableQoV - - - - jitCMs - - - - valueQoV - - - - _gbOutputLevel - - - - unitsQoV - - - - serviceEnabledQoV - - - - audioClip - - - - languageASR - - - - customTosGroupBox - - - - audioDurationUnit - - - - useMos - - - - channelsQoV - - - - customTos - - - - qovSettings - - - - useJitter - - - - useSilence - - - - metricsQoV - - - - jitCMaxDrop - - - - enableTosRtp - - - - enableAudioOWD - - - - _audioFormat - - - - _gbEnableAudio - - - - outputLevel - - - - - - - 0 - False - False - False - <_gbBtnTosBit7_0 type="bool">False - <_gbBtnTosBit7_1 type="bool">False - <_gbBtnTosBit6_0 type="bool">False - <_gbBtnTosBit6_1 type="bool">False - <_gbBtnTosBit5_0 type="bool">False - <_gbBtnTosBit5_1 type="bool">False - <_gbBtnTosBit4_0 type="bool">False - <_gbBtnTosBit4_1 type="bool">False - <_gbBtnTosBit3_0 type="bool">False - <_gbBtnTosBit3_1 type="bool">False - <_gbBtnTosBit2_0 type="bool">False - <_gbBtnTosBit2_1 type="bool">False - <_gbDisabledBtns type="bool">False - - - False - False - False - False - False - False - False - False - False - False - False - False - <_masterKeySelection type="int">0 - - - <_enableSRTP type="bool">False - <_useStaticKey type="bool">False - <_singleMasterKeyGrp type="bool">False - <_multipleMasterKeysGrp type="bool">False - - <_dict type="list"> - - bDisableSRTPAuthentication - - - - _singleMasterKeyGrp - - - - bIncludeMKI - - - - bEnableSRTP - - - - bDisableValidations - - - - _useStaticKey - - - - bEnablePreencryption - - - - _multipleMasterKeysGrp - - - - _enableSRTP - - - - bStaticMasterKeySalt - - - - staticKeyFile - - - - bDisableMasterSalt - - - - staticSingleKeySalt - - - - bAllowOnlySecureStreams - - - - bDisableSRTCPEncryption - - - - bEnableVideoSRTP - - - - bDisableSRTPEncryption - - - - bEnableTextSRTP - - - - _masterKeySelection - - - - - - - - 0 - 0 - 0 - 0 - 0 - 66 - 0 - 1 - - - False - 0 - False - 0 - False - 0 - False - 0 - False - 0 - False - 0 - False - 0 - - - False - False - 1 - <_gbEnableVideo type="bool">False - Fire_avc.mp4 - <_videoFormat type="str">Codec: H264, Duration: 12800 ms, Size: 2012176 bytes, Bitrate: 1225 kbps - 0 - 5 - 1 - False - <_gbUseConference type="bool">False - 0 - 1 - 1 - 1 - 1 - False - <_gbUseTelepresence type="bool">False - - 1 - 1 - 1 - False - False - <_gbTipMoreClips type="int">0 - Fire_avc.mp4 - 0 - 1 - 1 - 1 - 1 - <_gbTipPresentation type="bool">False - False - Fire_avc.mp4 - US_042.wav - 1 - 1 - 1 - 1 - 0 - False - <_gbTipLegacy type="int">0 - Fire_avc.mp4 - False - <_gbTipLegacyAudio type="int">0 - US_042.wav - False - False - False - False - False - False - False - False - False - False - True - - <_gbTosVideo type="bool">False - False - 1 - 0x20 - <_gbCustomTosVideo type="bool">False - 32 - False - False - False - 1 - True - False - <_gbH323AdvancedSettings type="bool">False - False - <_gbUseH323AdvancedSettings type="bool">False - - - False - - <_dict type="list"> - - hintTrackType - - - - videoMaxSessions - - - - useSingleNALUnit - - - - enableVideo - - - - useConference - - - - customTosVideo - - - - tipSettings - - - - playTypeVideo - - - - rotationScheme - - - - _gbUseH323AdvancedSettings - - - - isMP4 - - - - confVideoDuration - - - - tosValVideo - - - - enablePACSI - - - - _videoFormat - - - - confDuration - - - - tosVideo - - - - _gbUseTelepresence - - - - enableVideoOWD - - - - enableTosVideo - - - - fmtp - - - - videoType - - - - confDurationUnit - - - - videoDurationUnit - - - - _gbUseConference - - - - _gbH323AdvancedSettings - - - - _gbTosVideo - - - - _gbCustomTosVideo - - - - ignoreHintTrack - - - - enableAcceptSSRCChanges - - - - videoDuration - - - - useH323AdvancedSettings - - - - videoClip - - - - confVideoDurationUnit - - - - rtpmap - - - - _gbEnableVideo - - - - btnTelepresence - - - - useMosVideo - - - - - - - 0 - <_gbRotationScheme type="int">0 - 0 - 0 - 0 - 0 - - <_dict type="list"> - - rotationScheme - - - - confDuration - - - - confVideoDurationUnit - - - - confDurationUnit - - - - _gbRotationScheme - - - - confVideoDuration - - - - - - - 0 - 0 - 0 - False - False - <_gbTipMoreClips type="int">0 - Fire_avc.mp4 - 0 - 0 - 0 - 0 - 0 - <_gbTipPresentation type="bool">False - False - Fire_avc.mp4 - US_042.wav - 0 - 0 - 0 - 0 - 0 - False - <_gbTipLegacy type="int">0 - Fire_avc.mp4 - False - <_gbTipLegacyAudio type="int">0 - US_042.wav - False - False - False - False - False - False - False - False - False - False - True - - <_dict type="list"> - - tipUnrestrictedMedia - - - - tipLegacyClipAudio - - - - tipRotationScheme - - - - tipLegacyMode - - - - _tipLegacyClip - - - - tipVideoRefresh - - - - tipUsePresentationStream - - - - tipRtcpFeedback - - - - tipStartAfterUnit - - - - tipArithmetingCoding - - - - _gbTipLegacyAudio - - - - tipConfDuration - - - - tipConfDurationUnit - - - - tipG722Legacy - - - - tipDuration - - - - tipLegacyClip - - - - tipMoreClips - - - - tipDurationUnit - - - - tipInbandSets - - - - tipLegacyModeAudio - - - - _tipVideoClip2 - - - - tipAudioDurationUnit - - - - tipResolution - - - - tipDinamicChannels - - - - _tipLegacyClipAudio - - - - tipSyntheticPayload - - - - _gbTipPresentation - - - - tipHighProfile - - - - tipAudioActivityMetric - - - - tipGDR - - - - tipVideoClip2 - - - - _gbTipMoreClips - - - - tipVersion - - - - _tipVideoClip - - - - tipEndpointType - - - - _gbTipLegacy - - - - tipLTRP - - - - tipStartAfter - - - - _tipAudioClip - - - - tipPresentationRotation - - - - tipAudioClip - - - - tipVideoClip - - - - tipAudioDuration - - - - - - - False - False - <_gbEnableText type="bool">False - The quick brown fox jumps over the lazy dog - Format: t140, Max duration: 42300 ms - 1.0 - 1.0 - 300 - 0 - 0 - 5 - 1 - <_gbTosText type="bool">False - False - 1 - 0x20 - <_gbCustomTosText type="bool">False - 32 - - <_dict type="list"> - - tosValText - - - - _gbEnableText - - - - textClip - - - - customTosText - - - - textChpsMin - - - - textRedundancyLevel - - - - textChpsMax - - - - textBufferTime - - - - textDuration - - - - enableTextOWD - - - - _gbTosText - - - - enableText - - - - textPlayType - - - - _gbCustomTosText - - - - enableTosText - - - - textFormat - - - - textDurationUnit - - - - tosText - - - - - - - False - <_gbEnableT38 type="bool">False - <_gbEnableT38_2 type="bool">False - Ixia2Pages.tif - <_faxFormat type="str">Format: TIFF, Img size: 1660 x 2291, Size: 140402 bytes - 1 - 40000 - 0 - <_gbT38UdpEncapsulation type="bool">False - 102 - True - 0 - True - 5 - True - 0 - False - 0 - False - False - <_gbUdpOptions type="bool">False - True - 0 - True - 256 - False - 200 - - - <_dict type="list"> - - t38TranscodingMMR - - - - t38UdpEncapsulation - - - - useT38MaxBitrate - - - - t38RateMgmt - - - - t38TranscodingJBIG - - - - enableT38 - - - - t38TransportType - - - - _gbEnableT38_2 - - - - _gbEnableT38 - - - - useFaxVersion - - - - t38Port - - - - t38FillBitRemoval - - - - faxVersion - - - - useT38FillBitRemoval - - - - useT38RateMgmt - - - - faxImage - - - - useT38MaxBufferSize - - - - errorRecoverySchema - - - - t38MaxDatagramSize - - - - t38MaxBufferSize - - - - t38PayloadType - - - - useT38MaxDatagramSize - - - - t38MaxBitrate - - - - _faxFormat - - - - _gbUdpOptions - - - - _gbT38UdpEncapsulation - - - - imagesList - - - - useErrorRecoverySchema - - - - - - - 5551[000-] - 0 - 5 - 0 - 0 - 1 - 0 - 1 - 2 - 2 - 0 - 1 - True - True - True - True - 3 - 1 - - <_dict type="list"> - - t30SendResolution - - - - sendCedBeforeDIS - - - - t30ReceiveR8x7 - - - - t30SendPageSize - - - - t30ReceiveR8x3 - - - - t30SendProtocol - - - - t30ReceiveProtocol - - - - sendCNG - - - - t30SendCoding - - - - t30ReceiveMSLT - - - - t30SendMSLT - - - - t30ReceiveCoding - - - - t30ReceivePageSize - - - - t30ReceiveModulations - - - - t30ReceiveR8x15 - - - - t30StationId - - - - t30SendDataRate - - - - t30Receive200x200 - - - - - - - False - <_gbEnableMSRP type="bool">False - 2855 - 0 - alice[00-99].example.com - - 0 - False - 10.10.10.1 - True - 2855 - False - 0 - 0x00 - 0 - True - True - False - 30000 - 60000 - 30000 - 70000 - - - 0 - - False - - - <_dict type="list"> - - domainType - - - - filesCount - - - - firstRelayIpEnabled - - - - automaticMSRPAuth - - - - msrpSendEmptyMsg - - - - msrpTransactionTimeout - - - - msrpInterChunkTimeout - - - - tosMSRPVal - - - - enableMSRP - - - - localDomain - - - - relaysCount - - - - customMSRPTos - - - - firstRelayIp - - - - advSettings - - - - files - - - - msrpFirstChunkTimeout - - - - firstRelayIsIPv4 - - - - msrpPort - - - - _gbMSRPCustomTos - - - - msrpSessionTimeout - - - - _gbEnableMSRP - - - - enableMSRPTos - - - - msrpReuseTCP - - - - msrpGuiFiles - - - - msrpTos - - - - relays - - - - msrpRelayPort - - - - - - <_tempFile ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_FileRecord"> - 0 - <_typeStr type="str"> - - - - - <_bFileSize type="int">20 - <_msrpSizeCombo type="int">2 - 0 - 0 - application/octet-stream - - - <_tempAdvSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPAdvancedSettings"> - False - - - - - - - - - 0 - 201004[0000-] - - <_PN1 type="bool">False - <_bTelGrp type="bool">False - False - <_bkTelURIparams type="str">phone-context=example.com - - <_dict type="list"> - - phoneBookList - - - - filePath - - - - pattern - - - - ckTelURIBook - - - - _bkTelURIparams - - - - _PN1 - - - - _bTelGrp - - - - fromFile - - - - - - - - - - - - - <_gbStep1 type="bool">False - - - ANY - - - INVITE - - - ACK - - - BYE - - - CANCEL - - - OPTIONS - - - REGISTER - - - NOTIFY - - - SUBSCRIBE - - - REFER - - - MESSAGE - - - PRACK - - - INFO - - - UPDATE - - - - <_gbStep2 type="bool">False - 2 - 1 - - - To - - - From - - - Contact - - - Also - - - Authorization - - - Call-ID - - - Content-Length - - - Content-Type - - - CSeq - - - Event - - - Proxy-Authenticate - - - Proxy-Authorization - - - RAck - - - Record-Route - - - Refer-To - - - Referred-By - - - Replaces - - - Route - - - RSeq - - - Subscription-State - - - Via - - - WWW-Authenticate - - - To - t - 1 - 1 - 3 - False - - False - False - <_gbStep3 type="bool">False - 0 - False - < - 1 - False - > - last - 1 - last - <_gbStep4 type="bool">False - 0 - - - - 0 - - - - C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion - - - - None - False - <_useTPb type="int">0 - <_tBp type="str"><None> - <_tBpPrv type="str"> - <_tPhone type="str">150[00000000-] - 0 - 150[00000000-] - <_tTelGrp type="bool">False - <_ckTTelURIParams type="bool">False - <_tTelURIparams type="str">phone-context=example.com - - - <_dict type="list"> - - _tBpPrv - - - - overridePhoneNo - - - - transTelPar - - - - _useTPb - - - - tPhone - - - - _tTelGrp - - - - _tPhone - - - - _ckTTelURIParams - - - - symTransferStr - - - - tPhoneType - - - - _tTelURIparams - - - - _tBp - - - - - - - 0 - mysipdomain.ixiacom.com - <_useEPb type="int">0 - <_eBp type="str"><None> - <_eBpPrv type="str"> - <_ePhone type="str">160[00000000-] - 0 - 160[00000000-] - <_eTelGrp type="bool">False - <_ckETelURI type="bool">False - <_eTelURIparams type="str">phone-context=example.com - - - <_dict type="list"> - - _useEPb - - - - _eBpPrv - - - - domainName - - - - _eBp - - - - _ePhone - - - - _eTelGrp - - - - ePhoneType - - - - _eTelURIparams - - - - useDomainName - - - - editTelPar - - - - ePhone - - - - _ckETelURI - - - - - - - - <_useSPb type="int">0 - <_sBp type="str"><None> - <_sBpPrv type="str"> - <_sPhone type="str">{{pnregistering}} - 0 - {{pnregistering}} - <_sTelGrp type="bool">False - <_ckSTelURIParams type="bool">False - <_sTelURIparams type="str">phone-context=example.com - - <_sTelGrp1 type="bool">False - <_dTelGrp1 type="bool">False - None - False - <_useDPb type="int">0 - <_dBp type="str"><None> - <_dBpPrv type="str"> - <_dPhone type="str">170[00000000-] - 0 - 170[00000000-] - <_dTelGrp type="bool">False - <_ckDTelURIParams type="bool">False - <_dTelURIparams type="str">phone-context=example.com - - False - False - False - sos - - - sos - - - sos.ambulance - - - sos.fire - - - sos.police - - - - <_dict type="list"> - - _useSPb - - - - _dTelGrp1 - - - - sourceIPs - - - - enableEmergencyCalls - - - - _sPhone - - - - _dBpPrv - - - - destPhoneType - - - - destTelPar - - - - useAnonymous - - - - _dTelGrp - - - - symDestStr - - - - _gbEmergencyDest - - - - _sBp - - - - makeEmergencyReg - - - - destPhone - - - - _gbEmergency - - - - _gbEmergencySource - - - - _ckSTelURIParams - - - - _dTelURIparams - - - - _dBp - - - - ovrDestPhone - - - - _sTelGrp1 - - - - emergencyServiceList - - - - _dPhone - - - - srcPhone - - - - srcTelPar - - - - _sTelURIparams - - - - _UseSrv1 - - - - srcPhoneType - - - - _sBpPrv - - - - _sTelGrp - - - - emergencyService - - - - _useDPb - - - - _ckDTelURIParams - - - - - - - True - {{sipportregistering}} - False - False - - {{pnregistering}}@{{domainname}} - {{authpassword}} - <None> - 0 - 0 - 0 - ixia - C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion - ixia - 0 - 0 - 0 - False - <Default> - 00000000000000000000000000000000 - 00000000000000000000000000000001 - 00000000000000000000000000000002 - 00000000000000000000000000000004 - 00000000000000000000000000000008 - 64 - 0 - 32 - 64 - 96 - False - 0 - 0x00 - 0 - False - 0 - True - {{iplistims}} - 5060 - {{domainname}} - False - False - False - True - False - IP:PORT - False - False - - 1024 - False - False - False - - - False - ipsec-3gpp - 0 - hmac-sha-1-96 - 0 - esp - 0 - trans - 0 - aes-cbc - 255 - [3000-4000] - 4060 - - <_dict type="list"> - - protocol - - - - encrypt_algorithmStr - - - - algorithm - - - - modeStr - - - - protocolStr - - - - mechanism - - - - algorithmStr - - - - mode - - - - port_s - - - - port_c - - - - spi_start_idx - - - - encrypt_algorithm - - - - checked - - - - - - - False - False - 60 - False - False - 0 - True - False - <_enableAutoHeaders type="bool">False - <_btnAutoHeaders type="bool">False - False - False - - <_dict type="list"> - - _gbSrvSettings - - - - akaSharedSecretType - - - - T1 - - - - tcpWriteImmediate - - - - telURISource - - - - _gbRetransmissions - - - - _enableAutoHeaders - - - - enableSIP - - - - fqdn - - - - akaSharedSecretSource - - - - milenageConfCombo - - - - milenage_c3 - - - - milenage_c2 - - - - milenage_c5 - - - - milenage_c4 - - - - akaConfCombo - - - - akaOperatorVariantType - - - - overrideRegistrar - - - - port - - - - milenage_r4 - - - - milenage_r5 - - - - realm - - - - milenage_r3 - - - - milenage_r1 - - - - srvPort - - - - tos - - - - user - - - - akaOperatorVariantSource - - - - ovrDest - - - - useServer - - - - nUdpMaxSize - - - - retransmit1xx - - - - srvDomain - - - - _btnEditContact1 - - - - telURIDest - - - - ovrTimeout - - - - enablePeriodicDNSQueries - - - - useIPSecDoubleSPIPatch - - - - securityMechanismValList - - - - enableRetransmissions - - - - overrideRegistrarAddress - - - - enableTos - - - - srvAddr - - - - ovrDestHostPort - - - - DNSTimeoutValue - - - - tosVal - - - - passwd - - - - akaSharedSecretSequence - - - - T2 - - - - autoRegister - - - - skipDeleteDNSRecordsAtLoopEnd - - - - enableSigComp - - - - akaOperatorVariantSequence - - - - enableVoLTE - - - - retransmitACK - - - - _btnAutoHeaders - - - - volte_grbox - - - - customSipTos - - - - dontEndMediaOnBye - - - - milenage_r2 - - - - akaExportComplete - - - - mediaBearerType - - - - registrarSrv - - - - milenage_c1 - - - - akaUseOPasOPC - - - - _ovrDest1 - - - - outboundProxy - - - - _UseSrv1 - - - - _enableSIP1 - - - - closeTCPConnectionsOnRampdown - - - - ovrContact - - - - akaAbsolutePath - - - - serverAddresses - - - - enableCCDedicatedBearer - - - - akaConfComboSelIndex - - - - _gbCustomTos - - - - ovrTrans - - - - useDnsSrv - - - - ovrTransOption - - - - _enableSIP2 - - - - _gbPeriodicDNSQuery - - - - ignoreRetransmissions - - - - - - - True - - - True - REGISTER - 0 - Expires Header(s) - 3600 - - <_dict type="list"> - - message - - - - msgPartStr - - - - checked - - - - value - - - - msgPart - - - - - - - True - INVITE - 2 - Session-Expire(s) - 90 - - <_dict type="list"> - - message - - - - msgPartStr - - - - checked - - - - value - - - - msgPart - - - - - - - True - UPDATE - 2 - Session-Expire(s) - 90 - - <_dict type="list"> - - message - - - - msgPartStr - - - - checked - - - - value - - - - msgPart - - - - - - - 1 - 3000 - 50 - 32 - False - 500 - 4000 - True - True - True - False - False - 0 - False - False - False - 150 - False - False - False - - 0 - True - - <_dict type="list"> - - btnRefreshProcList - - - - autoEndCall - - - - ignoreRetransmissions - - - - minInterReregister - - - - autoEndCall2 - - - - enableTimers - - - - refreshInSecs - - - - retransmit1xx - - - - auto4xxAbort - - - - _gbEnableTimers - - - - ovrTimeout - - - - sessionRefreshType - - - - auto4xx - - - - procListChanged - - - - T2 - - - - autoProcedureList - - - - _gbAutoPRACK - - - - T1 - - - - refreshAfterPercent - - - - enableAutoPRACK - - - - stopActiveRetr - - - - enableRetransmissions - - - - rprTimeUntilNextRPR - - - - rprScenarioHasPRACK - - - - expirationValList - - - - refreshAfterSecs - - - - autoProceduresCount - - - - retransmitACK - - - - rprSendNegotiatedSDP - - - - - - - False - <_useCloud1 type="bool">False - <None> - - False - - False - <_ovrCloudRules1 type="bool">False - - <_dict type="list"> - - _gbVirtualIPs - - - - useCloud - - - - ovrCloudRules - - - - _ovrCloudRules1 - - - - _useCloud1 - - - - enableVirtualIPs - - - - virtualIPTable - - - - serverRules - - - - cloud - - - - - - - False - False - False - False - <_enableTLS1 type="bool">False - <_enableTLS2 type="bool">False - <_enableTLS3 type="bool">False - 5061 - 3 - False - <_tlsSessionRefresh type="bool">False - 3600 - 0 - False - <_tlsReuseConnection type="bool">False - False - False - <_gbTlsMutual type="bool">False - - - True - ECDHE-ECDSA-AES128-GCM-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-ECDSA-AES256-GCM-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-RSA-AES128-GCM-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-ECDSA-AES256-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-ECDSA-AES128-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-RSA-AES128-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - AES128-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - AES256-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-ECDSA-AES256-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-ECDSA-AES128-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-RSA-AES256-GCM-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-RSA-AES128-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-RSA-AES256-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - DES-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - DES-CBC3-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP-DES-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP-RC2-CBC-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP-RC4-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP1024-DES-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP1024-RC4-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - IDEA-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - NULL-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - NULL-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - RC4-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - RC4-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - C:\Program Files (x86)\Ixia\IxLoad\8.20-EA\aptixia\data\SSL_Certificates - Unsecured_RSA_key_1024.pem - Unsecured_RSA_cert_1024.pem - 0 - 0 - - 0 - 0 - True - False - - <_dict type="list"> - - tlsCertType - - - - tlsPassword - - - - tlsPort - - - - tlsMutual - - - - tlsPrivateKeyCertificate - - - - tlsTransportType - - - - enableTLS_HTTP - - - - tlsCyphers - - - - tlsProtocol - - - - tlsKeyType - - - - _tlsSessionRefresh - - - - tlsCertificatesPath - - - - tlsEnableTcpKeepAlive - - - - _gbTlsMutual - - - - tlsPublicKeyCertificate - - - - _enableCert - - - - enableTLS - - - - tlsAuthClient - - - - ignoreSubjectAltName - - - - _enableTLS4 - - - - _enableTLS1 - - - - _enableTLS2 - - - - _enableTLS3 - - - - enableDTLS - - - - enableTLS_MSRP - - - - tlsReuseConnection - - - - tlsRefreshInterval - - - - tlsSessionRefresh - - - - tlsDisableUdpAndTcp - - - - sipScheme - - - - _tlsReuseConnection - - - - - - - 200 - 30000 - False - - - 6 - 100 - 30000 - - - - - - - - - - - - - 0 - False - <_gbHardcodedForDemo type="bool">False - <_gbStunSettings type="bool">False - False - 127.0.0.1 - 3478 - False - False - <_gbSRVCCSettings type="bool">False - False - - False - False - False - <_gbPCO type="bool">False - - False - False - - - - <_dict type="list"> - - _gbIceSettings - - - - _gbPCO - - - - VOIP_IPAddress4 - - - - _gbStunSettings - - - - VOIP_IPAddress0 - - - - VOIP_IPAddress3 - - - - VOIP_IPAddress2 - - - - bUseIce - - - - mobilityPath - - - - VOIP_Var0 - - - - VOIP_IPAddress1 - - - - PCO_List - - - - _gbSRVCCSettings - - - - absolutePathForCsvWithVariables - - - - VOIP_Var2 - - - - PCO_Groupbox - - - - bUseHardcoded - - - - bUseSRVCC - - - - useBHCA - - - - ipPreference - - - - btnBrowseForVariableCsv - - - - bUsePCO - - - - stunPort - - - - bUseStun - - - - stunAddr - - - - ddgGroupboxSRVCC - - - - _gbHardcodedForDemo - - - - pathForCsvWithVariables - - - - DodPathForCsvWithVariables - - - - _varCsvGroupBox - - - - VOIP_Var1 - - - - loadVariablesFromCsv - - - - VOIP_Var3 - - - - bIceLite - - - - VOIP_Var4 - - - - - - - False - sc.home1.net - False - phone-context=example - 61814712345 - 0 - 0 - False - False - False - False - - False - 160[00000000-] - <None> - - 0 - 0 - False - False - False - False - - False - 160[00000000-] - <None> - - 0 - 0 - - False - False - None - 0 - - - 0 - False - False - False - - <_dict type="list"> - - smOrigNumberingPlan - - - - smsFiles - - - - enableSMS - - - - enableSMOrigReplyPath - - - - smsFilesCount - - - - btnSMRecipEdit - - - - grBoxSMOriginator - - - - grBoxSMRecipient - - - - enableSMRecipOverrideSrc - - - - enableSMOrigReqStatusReport - - - - smsAddressOriginator - - - - telURI - - - - depActivities - - - - pcpuCommonPath - - - - smOrigTypeOfNo - - - - smRecipTypeOfNo - - - - requestURI - - - - smsFilesBackup - - - - smsAddressRecipient - - - - enableTelURI - - - - useFilesFromActivity - - - - smRecipNumberingPlan - - - - smscPhoneNo - - - - smsImportFilesActivity - - - - enableSMRecipReplyPath - - - - btnSMOrigEdit - - - - smscNumberingPlan - - - - duringLoadFromBackup - - - - enableSMRecipReqStatusReport - - - - grBoxSMServiceCenter - - - - verifyUserInfo - - - - smscTypeOfNo - - - - enableSMOrigOverrideDest - - - - smsActivityForFiles - - - - - - - 0 - - - - - - 0 - 0 - 0 - - - - <_dict type="list"> - - segmentNo - - - - contentViewShow - - - - ixSmsFilePath - - - - contentViewEdit - - - - comboCoding - - - - segmentOrder - - - - comboRefNo - - - - loadedFileType - - - - btnSmsLoadFiles - - - - ixSmsFileName - - - - btnSmsSaveAs - - - - fileName - - - - totalTpudSize - - - - - - - 0 - <None> - - 160[00000000-] - 0 - 160[00000000-] - False - - - - <_dict type="list"> - - userPattern - - - - phoneBookPreview - - - - ePhoneType - - - - fakeEnableTelURI - - - - fakeTelToPort - - - - comboPhoneBook - - - - ePhone - - - - fakeTelURI - - - - radioBtnPhoneNo - - - - - - - 0 - <None> - - 160[00000000-] - 0 - 160[00000000-] - False - - - - <_dict type="list"> - - userPattern - - - - phoneBookPreview - - - - ePhoneType - - - - fakeEnableTelURI - - - - fakeTelToPort - - - - comboPhoneBook - - - - ePhone - - - - fakeTelURI - - - - radioBtnPhoneNo - - - - - - - True - - - - - INVITE - - - ACK - - - BYE - - - CANCEL - - - OPTIONS - - - REGISTER - - - NOTIFY - - - SUBSCRIBE - - - REFER - - - MESSAGE - - - PRACK - - - INFO - - - UPDATE - - - 100 (Trying) - - - 180 (Ringing) - - - 181 (Call Is Being Forwarded) - - - 182 (Queued) - - - 183 (Session Progress) - - - 200 (OK) - - - 202 (Accepted) - - - 300 (Multiple Choices) - - - 301 (Moved Permanently) - - - 302 (Moved Temporarily) - - - 305 (Use Proxy) - - - 380 (Alternative Service) - - - 400 (Bad Request) - - - 401 (Unauthorized) - - - 402 (Payment Required) - - - 403 (Forbidden) - - - 404 (Not Found) - - - 405 (Method Not Allowed) - - - 406 (Not Acceptable) - - - 407 (Proxy Authentication Required) - - - 408 (Request Timeout) - - - 410 (Gone) - - - 413 (Request Entity Too Large) - - - 414 (Request-URI Too Large) - - - 415 (Unsupported Media Type) - - - 416 (Unsupported URI Scheme) - - - 420 (Bad Extension) - - - 421 (Extension Required) - - - 423 (Interval Too Brief) - - - 480 (Temporarily not available) - - - 481 (Call Leg/Transaction Does Not Exist) - - - 482 (Loop Detected) - - - 483 (Too Many Hops) - - - 484 (Address Incomplete) - - - 485 (Ambiguous) - - - 486 (Busy Here) - - - 487 (Request Terminated) - - - 488 (Not Acceptable Here) - - - 491 (Request Pending) - - - 493 (Undecipherable) - - - 500 (Internal Server Error) - - - 501 (Not Implemented) - - - 502 (Bad Gateway) - - - 503 (Service Unavailable) - - - 504 (Server Time-out) - - - 505 (SIP Version not supported) - - - 513 (Message Too Large) - - - 600 (Busy Everywhere) - - - 603 (Decline) - - - 604 (Does not exist anywhere) - - - 606 (Not Acceptable) - - - - - - Request-Uri - - - Via - - - From - - - To - - - Call-ID - - - CSeq - - - Contact - - - Content-Length - - - Route - - - Record-Route - - - Authorization - - - Proxy-Authorization - - - Referred-By - - - Replaces - - - Event - - - RAck - - - RSeq - - - Refer-To - - - Subscription-State - - - WWW-Authenticate - - - Also - - - To - - False - - - True - - - False - - - - - - False - 40000 - 60000 - 1 - False - False - 10 - False - False - - <_dict type="list"> - - tcpIdlePeriod - - - - tcpEndPortLabel - - - - tcpIdlePeriodLabel - - - - donotCloseTCPInsideCallEnable - - - - tcpPortStepLabel - - - - tcpLocalPortStep - - - - tcpLocalPortEnd - - - - tcpStartPortLabel - - - - tcpLocalPortStart - - - - closeIdleTcpConnectionsEnable - - - - recordingServerEnable - - - - overrideTCPLocalPort - - - - closeNonsecureTcpConnectionsEnable - - - - - - - 2 - <_apiUniqueId type="int">15470 - 27 - 11 - - - <_dict type="list"/> - - VoIP - - - - True - CALLING - None - False - Both - 0 - - - - VoIP2_CALLED - protocolSpecific - - - protocolSpecific - - True - None - - - VoIP2@VM2 - None - netTraffic - True - Peer - ethernet - ipTrafficAgent - Both - - - - None - VoIP2 - Peer - ipTrafficAgent - None - - - 1 - CALLED - None - False - Both - 0 - - - 100.0 - 43 - - 4.10 - - - -2 - START - Start - - - Output1 - 0 - 3 - 0 - 2 - - - - - -3 - STOP - Stop - - - - 3 - Procedure - SIP ReceiveCall (#3) - - - OK - 0 - 17 - 1 - 4 - - - Error - 1 - -3 - 2 - 1 - - - - - 11 - Procedure - SIP EndCall Receive (#4) - - - OK - 0 - -3 - 1 - 1 - - - Error - 1 - -3 - 2 - 1 - - - - - 17 - CommandEx - Voice Session (#2) - - - OK - 0 - 11 - 1 - 3 - - - Error - 1 - 11 - 2 - 3 - - - RTPVoiceSession - - - - VoiceLink1 - 2 - - - 3 - 5 - - - - False - False - 600000 - False - False - 1 - False - 10 - - - False - 0 - False - True - 25 - False - False - 10 - 0 - 0 - - False - - - 0 - 0 - 1 - 1000 - 0 - -20 - 0 - 0 - 10 - 0 - 200 - 200 - -10 - 4000 - 2000 - 500 - 2000 - True - False - - - 15 - - - 25 - False - False - - - False - False - False - 0 - 1 - 10 - [00-10] - - - - 653520 - 3 - 2 - activeUsers - 1000 - 9223372036854775807 - 8 - False - - 32000 - False - False - False - False - - CALLED - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - {{sipportcalled}} - 0 - 1 - {{pncalled}} - 1 - 0 - 1 - 0 - - 1 - 1 - 0 - 1 - [10000-65535,4] - 40000 - 2855 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - False - False - False - False - 5061 - True - 1 - 2 - 1 - False - False - 0 - 0 - aptixia-T.03440c56.4e1a.4def.8406.ec64db91d4c1-L2EthernetPlugin-820b0582.6a4c.4109.bd5d.587621a43ce2-161.105.231.12;2;1default - - - - 1 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - - 0 - 0 - - 1 - 0 - 0 - 0 - - 0 - 0 - 0 - 0 - - - 2855 - 0 - 0 - 0 - 0 - 1 - 12 - 0 - False - False - False - False - - False - 1 - 2 - 1 - False - False - 0 - 0 - - - False - - - 5060 - - - - - - 0 - - - - - - - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - 0 - 0 - - 0 - 0 - 0 - 0 - - 0 - 0 - 0 - 0 - - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - False - False - False - False - - False - 0 - 1 - 1 - False - False - 0 - 0 - - - False - False - - 5060 - - - - - - 0 - - - - - - - - - .\SIPCall.tst - 1 - 18 - 66 - 8 - 0 - - - 0 - 1 - 0 - 0 - True - False - 1 - 0 - 1 - 0 - 1 - 1 - True - 0 - 1 - 1 - 1 - True - False - True - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - 9 - 1 - 1 - 32 - <_gbDebugLogs type="bool">False - False - - <_dict type="list"> - - _ipRule1 - - - - dl_S_ADV - - - - loopMidDelay - - - - dl_T_IO - - - - dl_T_INFO - - - - dl_S_SEND - - - - _rtpIpRule1 - - - - _estimatedBacklog - - - - loopPreDelay - - - - dl_S_VRB - - - - dl_TG_ADV - - - - log_filesize - - - - rtp_log_in_file - - - - dl_T_VRB - - - - aliases - - - - dl_Q_ADV - - - - multipleUsersPerIO - - - - log_level - - - - rtpIpRule - - - - dl_1 - - - - dl_3 - - - - dl_2 - - - - rampdownSleep - - - - _portRule1 - - - - dl_S_SER - - - - dl_R_VRB - - - - dl_L_ADV - - - - dl_Q_VRB - - - - portRuleCh - - - - dl_S_INFO - - - - rtpPortRule - - - - dl_M_IO - - - - dl_EE_DD - - - - rtpIpRuleCh - - - - dl_S_FSM - - - - loopMode - - - - gracefulRampDown - - - - dl_FLOW - - - - dl_BUG - - - - dl_S_SUA - - - - ipRule - - - - ipRuleCh - - - - phoneRule - - - - _rtpPortRule1 - - - - dl_R_PAR - - - - loopCount - - - - dl_S_WAIT - - - - dl_SDP_DD - - - - dl_TRACE - - - - _gbDebugLogs - - - - rtpPortRuleCh - - - - dl_TG_VRB - - - - portRule - - - - dl_L_INFO - - - - dl_EE_VRB - - - - dl_R_DD - - - - dl_T_ADV - - - - ccExportProfile - - - - log_in_memory - - - - dl_L_VRB - - - - - - - False - 1-5 - 0 - 10000 - 1 - 500 - 500 - 4000 - 1 - 0 - 0 - 18 - 0 - 30000 - 16750 - 33500 - 1500 - 2000 - 500 - 40 - 0 - 0 - 800 - 2150 - 1500 - 2000 - 500 - 0 - 30000 - {{activecalls}} - 0 - {{activecalls}} - - - 1 - - - 0 - 35 - 0 - - - Default.cap - False - False - 10000 - 0x8078C5D3 - - - - - - 0 - 0 - 160 - - - 8 - 8 - 160 - - - 2 - <_gbVideoCodecs type="bool">False - 96 - <_gbDataCodecs type="bool">False - - - 100 - - - 101 - - - -1 - - - [10000-65535,4] - False - False - False - False - False - False - False - False - False - False - False - False - False - AS:48 - False - 800 - False - 800 - False - AS:384 - False - 6400 - False - 6400 - False - AS:48 - False - 800 - False - 800 - - <_dict type="list"> - - videoRR_value - - - - _gbVideoSDPParams - - - - textRS_value - - - - jitMs - - - - _gbAudioSDPParams - - - - ixnamSupported - - - - dedicatedCoreRange - - - - enableRTP - - - - rtpTosVal - - - - channelTypeQoV - - - - enableMediaSDPParams - - - - _gbTextSDPParams - - - - activityIdQoV - - - - rtpPort - - - - audioRS_option - - - - useJitComp - - - - dedicatedCoreRangeLength - - - - audioB_option - - - - audioB_value - - - - portIPsQoV - - - - audioRS_value - - - - enableHwAcc - - - - chEnableHwAcc - - - - channelsQoVPerZionPort - - - - videoRR_option - - - - rtpTos - - - - enableRTCPMux - - - - textRR_option - - - - silenceMode - - - - _gbMediaSDPParams - - - - textB_option - - - - enableQoV - - - - jitCMs - - - - valueQoV - - - - enableRTCP - - - - maxMosStreams - - - - enableMDI - - - - enableIxStack - - - - enableOWD - - - - unitsQoV - - - - serviceEnabledQoV - - - - chDisableHwAcc - - - - customTosGroupBox - - - - audioRR_option - - - - enablePerStream - - - - limitMos - - - - useMos - - - - textRR_value - - - - customTos - - - - videoB_value - - - - mosInterval - - - - enableAdvStatCalc - - - - useJitter - - - - useSilence - - - - metricsQoV - - - - videoRS_option - - - - videoRS_value - - - - jitCMaxDrop - - - - audioRR_value - - - - textB_value - - - - enableTosRtp - - - - videoB_option - - - - activityNameQoV - - - - textRS_option - - - - enableNBExec - - - - - - - False - 0 - False - False - IxLoad - 2000 - 2000 - - <_dict type="list"> - - rtcpSDESTool - - - - rtcpSenderTimer - - - - rtcpCNAMEType - - - - hasSDESTool - - - - rtcpReceiverTimer - - - - rtcpIgnoreSSRC - - - - hasSDESName - - - - enableRTCPMux2 - - - - - - - False - <_gbEnableAudio type="bool">False - False - False - <_JB1 type="bool">False - 20 - False - 1000 - 7 - rtp_esmad-asordo-l_2170 - False - False - 1 - False - 1 - False - 0x20 - 32 - <_COV1 type="bool">False - False - 5 - - 0 - False - <_gbEnableQoV type="bool">False - False - - - 0 - 100 - 0 - 0 - 0 - 0 - English(US) - - 0 - False - <_gbEnableQoV type="bool">False - False - - - 0 - 100 - 0 - 0 - 0 - 0 - English(US) - US_042.wav - <_audioFormat type="str">Format: PCM, Duration: 32785 ms, Size: 524556 bytes - -20 - <_gbOutputLevel type="bool">False - 0 - 10 - 1 - - <_dict type="list"> - - _gbEnableQoV - - - - channelTypeQoV - - - - pesqPolqa - - - - enablePTT - - - - enableP56 - - - - qovAnalize - - - - channelsQoVPerZionPort - - - - _COV1 - - - - useTelchemy - - - - activityIdQoV - - - - rtpTosVal - - - - useJitComp - - - - audioDuration - - - - _JB1 - - - - enableAudio - - - - enableTosRtp - - - - portIPsQoV - - - - _gbQoVMetrics - - - - dodName - - - - jitMs - - - - _gbASRLanguage - - - - rtpTos - - - - radioBtnQoVASR - - - - silenceMode - - - - playTypeAudio - - - - useQoV - - - - activityNameQoV - - - - enableQoV - - - - jitCMs - - - - valueQoV - - - - _gbOutputLevel - - - - unitsQoV - - - - serviceEnabledQoV - - - - audioClip - - - - languageASR - - - - customTosGroupBox - - - - audioDurationUnit - - - - useMos - - - - customTos - - - - qovSettings - - - - useJitter - - - - useSilence - - - - metricsQoV - - - - jitCMaxDrop - - - - channelsQoV - - - - enableAudioOWD - - - - _audioFormat - - - - _gbEnableAudio - - - - outputLevel - - - - - - - 0 - False - False - False - <_gbBtnTosBit7_0 type="bool">False - <_gbBtnTosBit7_1 type="bool">False - <_gbBtnTosBit6_0 type="bool">False - <_gbBtnTosBit6_1 type="bool">False - <_gbBtnTosBit5_0 type="bool">False - <_gbBtnTosBit5_1 type="bool">False - <_gbBtnTosBit4_0 type="bool">False - <_gbBtnTosBit4_1 type="bool">False - <_gbBtnTosBit3_0 type="bool">False - <_gbBtnTosBit3_1 type="bool">False - <_gbBtnTosBit2_0 type="bool">False - <_gbBtnTosBit2_1 type="bool">False - <_gbDisabledBtns type="bool">False - - - False - False - False - False - False - False - False - False - False - False - False - False - <_masterKeySelection type="int">0 - - - <_enableSRTP type="bool">False - <_useStaticKey type="bool">False - <_singleMasterKeyGrp type="bool">False - <_multipleMasterKeysGrp type="bool">False - - <_dict type="list"> - - bEnableSRTP - - - - _singleMasterKeyGrp - - - - bDisableSRTPEncryption - - - - bDisableSRTPAuthentication - - - - bDisableValidations - - - - _useStaticKey - - - - bEnablePreencryption - - - - staticSingleKeySalt - - - - _enableSRTP - - - - bStaticMasterKeySalt - - - - staticKeyFile - - - - bDisableMasterSalt - - - - _multipleMasterKeysGrp - - - - bAllowOnlySecureStreams - - - - bDisableSRTCPEncryption - - - - bEnableVideoSRTP - - - - bIncludeMKI - - - - bEnableTextSRTP - - - - _masterKeySelection - - - - - - - - 0 - 0 - 0 - 0 - 0 - 66 - 0 - 1 - - - False - 0 - False - 0 - False - 0 - False - 0 - False - 0 - False - 0 - False - 0 - - - False - False - 1 - <_gbEnableVideo type="bool">False - Fire_avc.mp4 - <_videoFormat type="str">Codec: H264, Duration: 12800 ms, Size: 2012176 bytes, Bitrate: 1225 kbps - 0 - 5 - 1 - False - <_gbUseConference type="bool">False - 0 - 1 - 1 - 1 - 1 - False - <_gbUseTelepresence type="bool">False - - 1 - 1 - 1 - False - False - <_gbTipMoreClips type="int">0 - Fire_avc.mp4 - 0 - 1 - 1 - 1 - 1 - <_gbTipPresentation type="bool">False - False - Fire_avc.mp4 - US_042.wav - 1 - 1 - 1 - 1 - 0 - False - <_gbTipLegacy type="int">0 - Fire_avc.mp4 - False - <_gbTipLegacyAudio type="int">0 - US_042.wav - False - False - False - False - False - False - False - False - False - False - True - - <_gbTosVideo type="bool">False - False - 1 - 0x20 - <_gbCustomTosVideo type="bool">False - 32 - False - False - False - 1 - True - False - <_gbH323AdvancedSettings type="bool">False - False - <_gbUseH323AdvancedSettings type="bool">False - - - False - - <_dict type="list"> - - hintTrackType - - - - videoMaxSessions - - - - useSingleNALUnit - - - - enableVideo - - - - useConference - - - - customTosVideo - - - - tipSettings - - - - playTypeVideo - - - - rotationScheme - - - - _gbUseH323AdvancedSettings - - - - isMP4 - - - - confVideoDuration - - - - tosValVideo - - - - enablePACSI - - - - _videoFormat - - - - confDuration - - - - tosVideo - - - - _gbUseTelepresence - - - - enableVideoOWD - - - - enableTosVideo - - - - fmtp - - - - videoType - - - - confDurationUnit - - - - videoDurationUnit - - - - _gbUseConference - - - - _gbH323AdvancedSettings - - - - _gbTosVideo - - - - _gbCustomTosVideo - - - - ignoreHintTrack - - - - enableAcceptSSRCChanges - - - - videoDuration - - - - useH323AdvancedSettings - - - - videoClip - - - - confVideoDurationUnit - - - - rtpmap - - - - _gbEnableVideo - - - - btnTelepresence - - - - useMosVideo - - - - - - - 0 - <_gbRotationScheme type="int">0 - 0 - 0 - 0 - 0 - - <_dict type="list"> - - rotationScheme - - - - confDuration - - - - confVideoDurationUnit - - - - confDurationUnit - - - - _gbRotationScheme - - - - confVideoDuration - - - - - - - 0 - 0 - 0 - False - False - <_gbTipMoreClips type="int">0 - Fire_avc.mp4 - 0 - 0 - 0 - 0 - 0 - <_gbTipPresentation type="bool">False - False - Fire_avc.mp4 - US_042.wav - 0 - 0 - 0 - 0 - 0 - False - <_gbTipLegacy type="int">0 - Fire_avc.mp4 - False - <_gbTipLegacyAudio type="int">0 - US_042.wav - False - False - False - False - False - False - False - False - False - False - True - - <_dict type="list"> - - tipDuration - - - - tipRotationScheme - - - - tipLegacyMode - - - - _tipLegacyClip - - - - tipVideoClip - - - - tipVideoRefresh - - - - tipUsePresentationStream - - - - tipGDR - - - - tipStartAfterUnit - - - - tipArithmetingCoding - - - - _gbTipLegacyAudio - - - - tipConfDuration - - - - tipConfDurationUnit - - - - tipG722Legacy - - - - tipLegacyClipAudio - - - - tipLegacyClip - - - - tipMoreClips - - - - tipDurationUnit - - - - tipInbandSets - - - - tipSyntheticPayload - - - - _tipVideoClip2 - - - - tipAudioDurationUnit - - - - tipResolution - - - - _tipVideoClip - - - - _tipLegacyClipAudio - - - - tipAudioDuration - - - - tipLegacyModeAudio - - - - _gbTipPresentation - - - - tipHighProfile - - - - tipRtcpFeedback - - - - tipVideoClip2 - - - - _gbTipMoreClips - - - - tipVersion - - - - tipDinamicChannels - - - - tipEndpointType - - - - _gbTipLegacy - - - - tipLTRP - - - - tipStartAfter - - - - _tipAudioClip - - - - tipPresentationRotation - - - - tipAudioClip - - - - tipAudioActivityMetric - - - - tipUnrestrictedMedia - - - - - - - False - False - <_gbEnableText type="bool">False - The quick brown fox jumps over the lazy dog - Format: t140, Max duration: 42300 ms - 1.0 - 1.0 - 300 - 0 - 0 - 5 - 1 - <_gbTosText type="bool">False - False - 1 - 0x20 - <_gbCustomTosText type="bool">False - 32 - - <_dict type="list"> - - tosValText - - - - _gbEnableText - - - - textClip - - - - customTosText - - - - textChpsMin - - - - textRedundancyLevel - - - - textChpsMax - - - - textBufferTime - - - - textDuration - - - - enableTextOWD - - - - _gbTosText - - - - enableText - - - - textPlayType - - - - _gbCustomTosText - - - - enableTosText - - - - textFormat - - - - textDurationUnit - - - - tosText - - - - - - - False - <_gbEnableT38 type="bool">False - <_gbEnableT38_2 type="bool">False - Ixia2Pages.tif - <_faxFormat type="str">Format: TIFF, Img size: 1660 x 2291, Size: 140402 bytes - 1 - 40000 - 0 - <_gbT38UdpEncapsulation type="bool">False - 102 - True - 0 - True - 5 - True - 0 - False - 0 - False - False - <_gbUdpOptions type="bool">False - True - 0 - True - 256 - False - 200 - - - <_dict type="list"> - - t38TranscodingMMR - - - - t38UdpEncapsulation - - - - useT38MaxBitrate - - - - t38RateMgmt - - - - t38TranscodingJBIG - - - - enableT38 - - - - t38TransportType - - - - _gbEnableT38_2 - - - - _gbEnableT38 - - - - t38Port - - - - t38FillBitRemoval - - - - faxVersion - - - - useT38FillBitRemoval - - - - useT38RateMgmt - - - - faxImage - - - - useT38MaxBufferSize - - - - errorRecoverySchema - - - - t38MaxDatagramSize - - - - t38MaxBufferSize - - - - _faxFormat - - - - t38PayloadType - - - - useT38MaxDatagramSize - - - - t38MaxBitrate - - - - useFaxVersion - - - - _gbUdpOptions - - - - _gbT38UdpEncapsulation - - - - imagesList - - - - useErrorRecoverySchema - - - - - - - 5551[000-] - 0 - 5 - 0 - 0 - 1 - 0 - 1 - 2 - 2 - 0 - 1 - True - True - True - True - 3 - 1 - - <_dict type="list"> - - t30SendResolution - - - - sendCedBeforeDIS - - - - t30ReceiveR8x7 - - - - t30SendPageSize - - - - t30ReceiveR8x3 - - - - t30SendCoding - - - - t30ReceiveProtocol - - - - sendCNG - - - - t30SendProtocol - - - - t30ReceiveMSLT - - - - t30SendMSLT - - - - t30SendDataRate - - - - t30ReceivePageSize - - - - t30ReceiveModulations - - - - t30ReceiveR8x15 - - - - t30StationId - - - - t30ReceiveCoding - - - - t30Receive200x200 - - - - - - - False - <_gbEnableMSRP type="bool">False - 2855 - 0 - alice[00-99].example.com - - 0 - False - 10.10.10.1 - True - 2855 - False - 0 - 0x00 - 0 - True - True - False - 30000 - 60000 - 30000 - 70000 - - - 0 - - False - - - <_dict type="list"> - - customMSRPTos - - - - filesCount - - - - firstRelayIpEnabled - - - - automaticMSRPAuth - - - - msrpSendEmptyMsg - - - - msrpTransactionTimeout - - - - msrpInterChunkTimeout - - - - tosMSRPVal - - - - enableMSRP - - - - localDomain - - - - relaysCount - - - - domainType - - - - firstRelayIp - - - - advSettings - - - - files - - - - msrpFirstChunkTimeout - - - - firstRelayIsIPv4 - - - - msrpPort - - - - _gbMSRPCustomTos - - - - msrpSessionTimeout - - - - _gbEnableMSRP - - - - enableMSRPTos - - - - msrpReuseTCP - - - - msrpGuiFiles - - - - msrpTos - - - - relays - - - - msrpRelayPort - - - - - - <_tempFile ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_FileRecord"> - 0 - <_typeStr type="str"> - - - - - <_bFileSize type="int">20 - <_msrpSizeCombo type="int">2 - 0 - 0 - application/octet-stream - - - <_tempAdvSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPAdvancedSettings"> - False - - - - - - - - - 0 - 201004[0000-] - - <_PN1 type="bool">False - <_bTelGrp type="bool">False - False - <_bkTelURIparams type="str">phone-context=example.com - - <_dict type="list"> - - phoneBookList - - - - filePath - - - - pattern - - - - ckTelURIBook - - - - _bkTelURIparams - - - - _PN1 - - - - _bTelGrp - - - - fromFile - - - - - - - - - - - - - <_gbStep1 type="bool">False - - - ANY - - - INVITE - - - ACK - - - BYE - - - CANCEL - - - OPTIONS - - - REGISTER - - - NOTIFY - - - SUBSCRIBE - - - REFER - - - MESSAGE - - - PRACK - - - INFO - - - UPDATE - - - - <_gbStep2 type="bool">False - 2 - 1 - - - To - - - From - - - Contact - - - Also - - - Authorization - - - Call-ID - - - Content-Length - - - Content-Type - - - CSeq - - - Event - - - Proxy-Authenticate - - - Proxy-Authorization - - - RAck - - - Record-Route - - - Refer-To - - - Referred-By - - - Replaces - - - Route - - - RSeq - - - Subscription-State - - - Via - - - WWW-Authenticate - - - To - t - 1 - 1 - 3 - False - - False - False - <_gbStep3 type="bool">False - 0 - False - < - 1 - False - > - last - 1 - last - <_gbStep4 type="bool">False - 0 - - - - 0 - - - - C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion - - - - None - False - <_useTPb type="int">0 - <_tBp type="str"><None> - <_tBpPrv type="str"> - <_tPhone type="str">150[00000000-] - 0 - 150[00000000-] - <_tTelGrp type="bool">False - <_ckTTelURIParams type="bool">False - <_tTelURIparams type="str">phone-context=example.com - - - <_dict type="list"> - - _tBpPrv - - - - overridePhoneNo - - - - _tTelGrp - - - - _useTPb - - - - tPhone - - - - transTelPar - - - - _tPhone - - - - _ckTTelURIParams - - - - symTransferStr - - - - tPhoneType - - - - _tTelURIparams - - - - _tBp - - - - - - - 0 - mysipdomain.ixiacom.com - <_useEPb type="int">0 - <_eBp type="str"><None> - <_eBpPrv type="str"> - <_ePhone type="str">160[00000000-] - 0 - 160[00000000-] - <_eTelGrp type="bool">False - <_ckETelURI type="bool">False - <_eTelURIparams type="str">phone-context=example.com - - - <_dict type="list"> - - _useEPb - - - - _eBpPrv - - - - domainName - - - - _eBp - - - - _ePhone - - - - _eTelGrp - - - - ePhoneType - - - - _eTelURIparams - - - - useDomainName - - - - editTelPar - - - - ePhone - - - - _ckETelURI - - - - - - - - <_useSPb type="int">0 - <_sBp type="str"><None> - <_sBpPrv type="str"> - <_sPhone type="str">{{pncalled}} - 0 - {{pncalled}} - <_sTelGrp type="bool">False - <_ckSTelURIParams type="bool">False - <_sTelURIparams type="str">phone-context=example.com - - <_sTelGrp1 type="bool">False - <_dTelGrp1 type="bool">False - None - False - <_useDPb type="int">0 - <_dBp type="str"><None> - <_dBpPrv type="str"> - <_dPhone type="str">170[00000000-] - 0 - 170[00000000-] - <_dTelGrp type="bool">False - <_ckDTelURIParams type="bool">False - <_dTelURIparams type="str">phone-context=example.com - - False - False - False - sos - - - sos - - - sos.ambulance - - - sos.fire - - - sos.police - - - - <_dict type="list"> - - _useSPb - - - - _dTelGrp1 - - - - sourceIPs - - - - enableEmergencyCalls - - - - _sPhone - - - - _dBpPrv - - - - destPhoneType - - - - destTelPar - - - - useAnonymous - - - - _dTelGrp - - - - symDestStr - - - - _gbEmergencyDest - - - - _sBp - - - - makeEmergencyReg - - - - destPhone - - - - srcTelPar - - - - _gbEmergencySource - - - - _ckSTelURIParams - - - - _dTelURIparams - - - - _dBp - - - - ovrDestPhone - - - - _sTelGrp1 - - - - emergencyServiceList - - - - _dPhone - - - - srcPhone - - - - _gbEmergency - - - - _sTelURIparams - - - - _UseSrv1 - - - - srcPhoneType - - - - _sBpPrv - - - - _sTelGrp - - - - emergencyService - - - - _useDPb - - - - _ckDTelURIParams - - - - - - - True - {{sipportcalled}} - False - False - - {{pncalled}}@{{domainname}} - {{authpassword}} - <None> - 0 - 0 - 0 - ixia - C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion - ixia - 0 - 0 - 0 - False - <Default> - 00000000000000000000000000000000 - 00000000000000000000000000000001 - 00000000000000000000000000000002 - 00000000000000000000000000000004 - 00000000000000000000000000000008 - 64 - 0 - 32 - 64 - 96 - False - 0 - 0x00 - 0 - False - 0 - True - {{iplistims}} - 5060 - {{domainname}} - False - False - True - True - False - IP:PORT - False - True - {{domainname}} - 2048 - False - False - False - - - False - ipsec-3gpp - 0 - hmac-sha-1-96 - 0 - esp - 0 - trans - 0 - aes-cbc - 255 - [3000-4000] - 4060 - - <_dict type="list"> - - protocol - - - - encrypt_algorithmStr - - - - algorithm - - - - modeStr - - - - protocolStr - - - - mechanism - - - - algorithmStr - - - - mode - - - - port_s - - - - port_c - - - - spi_start_idx - - - - encrypt_algorithm - - - - checked - - - - - - - False - False - 60 - False - False - 0 - True - False - <_enableAutoHeaders type="bool">False - <_btnAutoHeaders type="bool">False - False - False - - <_dict type="list"> - - _gbSrvSettings - - - - akaSharedSecretType - - - - _btnAutoHeaders - - - - tcpWriteImmediate - - - - ovrDest - - - - _enableAutoHeaders - - - - enableSIP - - - - fqdn - - - - akaSharedSecretSource - - - - milenageConfCombo - - - - milenage_c3 - - - - milenage_c2 - - - - milenage_c5 - - - - milenage_c4 - - - - akaConfCombo - - - - _UseSrv1 - - - - akaOperatorVariantType - - - - overrideRegistrar - - - - port - - - - milenage_r2 - - - - registrarSrv - - - - milenage_r4 - - - - milenage_r5 - - - - _gbRetransmissions - - - - milenage_r3 - - - - milenage_r1 - - - - tos - - - - user - - - - akaOperatorVariantSource - - - - telURISource - - - - useServer - - - - nUdpMaxSize - - - - retransmit1xx - - - - srvDomain - - - - _btnEditContact1 - - - - telURIDest - - - - ovrTimeout - - - - enablePeriodicDNSQueries - - - - useIPSecDoubleSPIPatch - - - - securityMechanismValList - - - - skipDeleteDNSRecordsAtLoopEnd - - - - overrideRegistrarAddress - - - - enableTos - - - - srvAddr - - - - ovrDestHostPort - - - - DNSTimeoutValue - - - - tosVal - - - - passwd - - - - T2 - - - - autoRegister - - - - T1 - - - - enableSigComp - - - - akaOperatorVariantSequence - - - - enableVoLTE - - - - retransmitACK - - - - akaSharedSecretSequence - - - - volte_grbox - - - - customSipTos - - - - dontEndMediaOnBye - - - - realm - - - - akaExportComplete - - - - mediaBearerType - - - - _gbPeriodicDNSQuery - - - - enableRetransmissions - - - - milenage_c1 - - - - akaUseOPasOPC - - - - _ovrDest1 - - - - outboundProxy - - - - ignoreRetransmissions - - - - closeTCPConnectionsOnRampdown - - - - ovrContact - - - - akaAbsolutePath - - - - serverAddresses - - - - enableCCDedicatedBearer - - - - akaConfComboSelIndex - - - - _gbCustomTos - - - - ovrTrans - - - - useDnsSrv - - - - ovrTransOption - - - - _enableSIP2 - - - - _enableSIP1 - - - - srvPort - - - - - - - True - - - True - REGISTER - 0 - Expires Header(s) - 3600 - - <_dict type="list"> - - message - - - - msgPart - - - - checked - - - - value - - - - msgPartStr - - - - - - - True - INVITE - 2 - Session-Expire(s) - 90 - - <_dict type="list"> - - message - - - - msgPart - - - - checked - - - - value - - - - msgPartStr - - - - - - - True - UPDATE - 2 - Session-Expire(s) - 90 - - <_dict type="list"> - - message - - - - msgPart - - - - checked - - - - value - - - - msgPartStr - - - - - - - 1 - 3000 - 50 - 32 - False - 500 - 4000 - True - True - True - False - False - 0 - False - False - False - 150 - False - False - False - - 0 - True - - <_dict type="list"> - - btnRefreshProcList - - - - autoEndCall - - - - ignoreRetransmissions - - - - minInterReregister - - - - autoEndCall2 - - - - enableTimers - - - - refreshInSecs - - - - retransmit1xx - - - - _gbEnableTimers - - - - ovrTimeout - - - - sessionRefreshType - - - - auto4xx - - - - retransmitACK - - - - procListChanged - - - - T2 - - - - autoProcedureList - - - - _gbAutoPRACK - - - - T1 - - - - refreshAfterPercent - - - - enableAutoPRACK - - - - stopActiveRetr - - - - enableRetransmissions - - - - rprTimeUntilNextRPR - - - - rprScenarioHasPRACK - - - - expirationValList - - - - refreshAfterSecs - - - - autoProceduresCount - - - - auto4xxAbort - - - - rprSendNegotiatedSDP - - - - - - - False - <_useCloud1 type="bool">False - <None> - - False - - False - <_ovrCloudRules1 type="bool">False - - <_dict type="list"> - - _gbVirtualIPs - - - - useCloud - - - - ovrCloudRules - - - - _ovrCloudRules1 - - - - cloud - - - - enableVirtualIPs - - - - virtualIPTable - - - - serverRules - - - - _useCloud1 - - - - - - - False - False - False - False - <_enableTLS1 type="bool">False - <_enableTLS2 type="bool">False - <_enableTLS3 type="bool">False - 5061 - 3 - False - <_tlsSessionRefresh type="bool">False - 3600 - 0 - False - <_tlsReuseConnection type="bool">False - False - False - <_gbTlsMutual type="bool">False - - - True - ECDHE-ECDSA-AES128-GCM-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-ECDSA-AES256-GCM-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-RSA-AES128-GCM-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-ECDSA-AES256-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-ECDSA-AES128-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-RSA-AES128-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - AES128-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - AES256-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-ECDSA-AES256-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-ECDSA-AES128-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-RSA-AES256-GCM-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-RSA-AES128-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-RSA-AES256-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - DES-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - DES-CBC3-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP-DES-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP-RC2-CBC-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP-RC4-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP1024-DES-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP1024-RC4-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - IDEA-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - NULL-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - NULL-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - RC4-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - RC4-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - C:\Program Files (x86)\Ixia\IxLoad\8.20-EA\aptixia\data\SSL_Certificates - Unsecured_RSA_key_1024.pem - Unsecured_RSA_cert_1024.pem - 0 - 0 - - 0 - 0 - True - False - - <_dict type="list"> - - tlsCertType - - - - tlsPassword - - - - tlsPort - - - - ignoreSubjectAltName - - - - tlsPrivateKeyCertificate - - - - tlsTransportType - - - - enableTLS_HTTP - - - - tlsCyphers - - - - tlsProtocol - - - - tlsKeyType - - - - _tlsSessionRefresh - - - - tlsCertificatesPath - - - - tlsEnableTcpKeepAlive - - - - _gbTlsMutual - - - - tlsPublicKeyCertificate - - - - _enableCert - - - - enableTLS - - - - tlsAuthClient - - - - tlsMutual - - - - _enableTLS4 - - - - _enableTLS1 - - - - _enableTLS2 - - - - _enableTLS3 - - - - enableDTLS - - - - enableTLS_MSRP - - - - tlsReuseConnection - - - - tlsRefreshInterval - - - - tlsSessionRefresh - - - - tlsDisableUdpAndTcp - - - - sipScheme - - - - _tlsReuseConnection - - - - - - - 200 - 30000 - False - - - 6 - 100 - 30000 - - - - - - - - - - - - - 0 - False - <_gbHardcodedForDemo type="bool">False - <_gbStunSettings type="bool">False - False - 127.0.0.1 - 3478 - False - False - <_gbSRVCCSettings type="bool">False - False - - False - False - False - <_gbPCO type="bool">False - - False - False - - - - <_dict type="list"> - - _gbIceSettings - - - - _gbPCO - - - - VOIP_IPAddress4 - - - - VOIP_IPAddress1 - - - - VOIP_IPAddress0 - - - - VOIP_IPAddress3 - - - - VOIP_IPAddress2 - - - - bUseIce - - - - mobilityPath - - - - VOIP_Var0 - - - - _gbStunSettings - - - - PCO_List - - - - _gbSRVCCSettings - - - - absolutePathForCsvWithVariables - - - - bIceLite - - - - PCO_Groupbox - - - - bUseHardcoded - - - - bUseSRVCC - - - - useBHCA - - - - ipPreference - - - - btnBrowseForVariableCsv - - - - bUsePCO - - - - stunPort - - - - bUseStun - - - - stunAddr - - - - ddgGroupboxSRVCC - - - - _gbHardcodedForDemo - - - - pathForCsvWithVariables - - - - DodPathForCsvWithVariables - - - - _varCsvGroupBox - - - - VOIP_Var1 - - - - loadVariablesFromCsv - - - - VOIP_Var3 - - - - VOIP_Var2 - - - - VOIP_Var4 - - - - - - - False - sc.home1.net - False - phone-context=example - 61814712345 - 0 - 0 - False - False - False - False - - False - 160[00000000-] - <None> - - 0 - 0 - False - False - False - False - - False - 160[00000000-] - <None> - - 0 - 0 - - False - False - None - 0 - - - 0 - False - False - False - - <_dict type="list"> - - smOrigNumberingPlan - - - - smsFiles - - - - enableSMS - - - - enableSMOrigReplyPath - - - - smsFilesCount - - - - btnSMRecipEdit - - - - enableSMOrigReqStatusReport - - - - grBoxSMRecipient - - - - enableSMRecipOverrideSrc - - - - grBoxSMOriginator - - - - smsAddressOriginator - - - - telURI - - - - depActivities - - - - pcpuCommonPath - - - - smOrigTypeOfNo - - - - smRecipTypeOfNo - - - - requestURI - - - - smsFilesBackup - - - - smsAddressRecipient - - - - enableTelURI - - - - useFilesFromActivity - - - - smRecipNumberingPlan - - - - smscPhoneNo - - - - smsImportFilesActivity - - - - enableSMRecipReplyPath - - - - btnSMOrigEdit - - - - smscNumberingPlan - - - - duringLoadFromBackup - - - - enableSMRecipReqStatusReport - - - - grBoxSMServiceCenter - - - - verifyUserInfo - - - - smscTypeOfNo - - - - enableSMOrigOverrideDest - - - - smsActivityForFiles - - - - - - - 0 - - - - - - 0 - 0 - 0 - - - - <_dict type="list"> - - contentViewShow - - - - ixSmsFilePath - - - - contentViewEdit - - - - segmentOrder - - - - comboRefNo - - - - loadedFileType - - - - btnSmsLoadFiles - - - - ixSmsFileName - - - - btnSmsSaveAs - - - - fileName - - - - segmentNo - - - - totalTpudSize - - - - comboCoding - - - - - - - 0 - <None> - - 160[00000000-] - 0 - 160[00000000-] - False - - - - <_dict type="list"> - - userPattern - - - - phoneBookPreview - - - - ePhoneType - - - - ePhone - - - - fakeEnableTelURI - - - - comboPhoneBook - - - - fakeTelToPort - - - - fakeTelURI - - - - radioBtnPhoneNo - - - - - - - 0 - <None> - - 160[00000000-] - 0 - 160[00000000-] - False - - - - <_dict type="list"> - - userPattern - - - - phoneBookPreview - - - - ePhoneType - - - - ePhone - - - - fakeEnableTelURI - - - - comboPhoneBook - - - - fakeTelToPort - - - - fakeTelURI - - - - radioBtnPhoneNo - - - - - - - True - - - - - INVITE - - - ACK - - - BYE - - - CANCEL - - - OPTIONS - - - REGISTER - - - NOTIFY - - - SUBSCRIBE - - - REFER - - - MESSAGE - - - PRACK - - - INFO - - - UPDATE - - - 100 (Trying) - - - 180 (Ringing) - - - 181 (Call Is Being Forwarded) - - - 182 (Queued) - - - 183 (Session Progress) - - - 200 (OK) - - - 202 (Accepted) - - - 300 (Multiple Choices) - - - 301 (Moved Permanently) - - - 302 (Moved Temporarily) - - - 305 (Use Proxy) - - - 380 (Alternative Service) - - - 400 (Bad Request) - - - 401 (Unauthorized) - - - 402 (Payment Required) - - - 403 (Forbidden) - - - 404 (Not Found) - - - 405 (Method Not Allowed) - - - 406 (Not Acceptable) - - - 407 (Proxy Authentication Required) - - - 408 (Request Timeout) - - - 410 (Gone) - - - 413 (Request Entity Too Large) - - - 414 (Request-URI Too Large) - - - 415 (Unsupported Media Type) - - - 416 (Unsupported URI Scheme) - - - 420 (Bad Extension) - - - 421 (Extension Required) - - - 423 (Interval Too Brief) - - - 480 (Temporarily not available) - - - 481 (Call Leg/Transaction Does Not Exist) - - - 482 (Loop Detected) - - - 483 (Too Many Hops) - - - 484 (Address Incomplete) - - - 485 (Ambiguous) - - - 486 (Busy Here) - - - 487 (Request Terminated) - - - 488 (Not Acceptable Here) - - - 491 (Request Pending) - - - 493 (Undecipherable) - - - 500 (Internal Server Error) - - - 501 (Not Implemented) - - - 502 (Bad Gateway) - - - 503 (Service Unavailable) - - - 504 (Server Time-out) - - - 505 (SIP Version not supported) - - - 513 (Message Too Large) - - - 600 (Busy Everywhere) - - - 603 (Decline) - - - 604 (Does not exist anywhere) - - - 606 (Not Acceptable) - - - - - - Request-Uri - - - Via - - - From - - - To - - - Call-ID - - - CSeq - - - Contact - - - Content-Length - - - Route - - - Record-Route - - - Authorization - - - Proxy-Authorization - - - Referred-By - - - Replaces - - - Event - - - RAck - - - RSeq - - - Refer-To - - - Subscription-State - - - WWW-Authenticate - - - Also - - - To - - False - - - True - - - False - - - - - - False - 40000 - 60000 - 1 - False - False - 10 - False - False - - <_dict type="list"> - - tcpIdlePeriod - - - - tcpEndPortLabel - - - - tcpIdlePeriodLabel - - - - donotCloseTCPInsideCallEnable - - - - tcpPortStepLabel - - - - tcpLocalPortStep - - - - tcpLocalPortEnd - - - - tcpStartPortLabel - - - - tcpLocalPortStart - - - - closeIdleTcpConnectionsEnable - - - - recordingServerEnable - - - - overrideTCPLocalPort - - - - closeNonsecureTcpConnectionsEnable - - - - - - - 1 - <_apiUniqueId type="int">16522 - 43 - 3 - - - <_dict type="list"/> - - VoIP - - - - - - None - VM2 - Both - none - 0 - Default - False - - Ixia Virtual Load Module - - - - 1 - 2 - 1 - False - Ixia Virtual Load Module - - None - - False;8192 - - None - - - - - - <_smRangeObjectId type="str">c69dae97-f1c2-4505-aedb-3f9ca3f4d02a - Network Range IP-R2 in VM2 ({{ipcard2}}+1) - - DistGroup1 - consecutiveIps - 0 - <_apiUniqueId type="int">16512 - <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange"> - - - <_rangeGroupObjectId type="str">de9d629b-e0dc-41f5-99cb-5aa8a808ceee - <_smPluginObjectId type="str">e53ae54e-ab21-4997-b532-e9bd58210050 - - False - - - None - None - - - - 0 - 0 - 1024 - 65535 - 0.0.0.0 - 255.255.0.0 - :: - FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0 - - 0 - - True - False - - - 0 - 30000 - - - - - - False - True - True - False - False - 0 - 1024 - False - 0 - 1024 - 60 - 75 - 9 - 7200 - 5 - 5 - 5 - 4096 - 4096 - True - False - 200 - 120000 - - - - - False - False - False - False - False - False - 1 - 1 - 1 - 0 - 0 - 1 - 1 - 0 - 1 - any - any - any - False - FragmentationPercent - 50 - 1000 - 1 - 1 - <_seed type="int">1 - - <_portGroupId type="str">b1fbd381-b769-4ec1-8715-299508ecb458 - <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap"> - - - 1 - - - - - VoIP Peer - CALLED - True - - Timeline2 - 2014 - 2014 - 1 - 0 - 0 - 4953 - 0 - {{activecalls}} - 1 - 1 - 20 - 0 - 1 - - - - Linear Segment 1 - 0 - 1 - 0.0 - 1.0 - 1 - 0 - - - Linear Segment 2 - 0 - 1 - 1.0 - 1.0 - {{testduration}} - 4 - - - 20 - - 5 - - - False - 1-5 - 0 - 10000 - 1 - 500 - 500 - 4000 - 80000 - 0 - 0 - 18 - 0 - 30000 - 16750 - 33500 - 1500 - 2000 - 100 - 40 - 0 - 0 - 800 - 2150 - 1500 - 2000 - 100 - 0 - 30000 - {{activecalls}} - 0 - 100 - - Peer - Both - 100.0 - concurrentConnections - {{activecalls}} - activeUsers - {{activecalls}} - SimulatedUserConstraint - {{activecalls}} - 100 - True - SimulatedUserConstraint - 100 - False - protocolSpecific - 1 - 0 - 1:1 - Consecutive - - 1 - <_apiUniqueId type="int">16585 - 58ff41761a9072107c63efca - <_objectiveValue type="int">{{activecalls}} - - 1.0 - - - - - - - - - - - False - <_apiUniqueId type="int">16521 - - None - - - <_apiUniqueId type="int">16509 - - <_dict type="list"> - - - - - - - <_dict type="list"> - - - - - - - <_dict type="list"> - - SIP - - SIP - True - - - - RTP - - RTP - True - - - - T38 - - T38 - True - - - - MSRP - - MSRP - True - - - - - - - - - - - - - - True - 1 - 0 - 0 - 20 - 60 - 1 - mixedMap - n/a - -1 - -1 - -1 - -1 - 0 - 10 - n/a - -1 - 0 - 1 - <_apiUniqueId type="int">16508 - True - - <_portOperationModesAllowed type="dict"> - - 0 - True - - - 1 - True - - - 2 - False - - - 3 - True - - - 4 - True - - - 6 - True - - - 8 - True - - - <_tcpAccelerationAllowed type="dict"> - - 0 - True - - - 1 - True - - - - CALLED - None - 1 - - - 100.0 - 39 - - 4.10 - - - -2 - START - Start - - - Output1 - 0 - 3 - 0 - 2 - - - - - -3 - STOP - Stop - - - - 3 - Procedure - SIP MakeCall (#1) - - - OK - 0 - 16 - 1 - 4 - - - Error - 1 - -3 - 2 - 1 - - - - - 10 - Procedure - SIP EndCall Initiate (#2) - - - OK - 0 - -3 - 1 - 1 - - - Error - 1 - -3 - 2 - 1 - - - - - 16 - CommandEx - Voice Session (#1) - - - OK - 0 - 10 - 1 - 3 - - - Error - 1 - 10 - 2 - 3 - - - RTPVoiceSession - - - - VoiceLink1 - 2 - - - 4 - 4 - - - - False - False - 600000 - False - False - 1 - False - 10 - - - False - 0 - False - True - 25 - False - False - 10 - 0 - 0 - - False - - - 0 - 0 - 1 - 1000 - 0 - -20 - 0 - 0 - 10 - 0 - 200 - 200 - -10 - 4000 - 2000 - 500 - 2000 - True - False - - - 15 - - - 25 - False - False - - - False - False - False - 0 - 1 - 10 - [00-10] - - - - 45638 - 3 - 1 - activeUsers - 1000 - 9223372036854775807 - 8 - False - - 32000 - False - False - False - False - - CALLING - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - {{sipportcalling}} - 0 - 1 - {{pncalling}} - 1 - 0 - 1 - 0 - - 1 - 1 - 0 - 1 - [10000-65535,4] - 40000 - 2855 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - False - False - False - False - 5061 - True - 1 - 2 - 1 - False - False - 0 - 1 - aptixia-T.03440c56.4e1a.4def.8406.ec64db91d4c1-L2EthernetPlugin-166a11b6.4d30.40ea.b9e1.ac4fb44f112b-161.105.231.12;1;1default - - - - 1 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - - 0 - 0 - - 1 - 0 - 0 - 0 - - 0 - 0 - 0 - 0 - - - 2855 - 0 - 0 - 0 - 0 - 1 - 1 - 1 - False - False - False - False - - False - 1 - 2 - 1 - False - False - 0 - 0 - - - False - - - 5060 - - - - - - 0 - - - - - - - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - 0 - 0 - - 0 - 0 - 0 - 0 - - 0 - 0 - 0 - 0 - - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - False - False - False - False - - False - 0 - 1 - 1 - False - False - 0 - 0 - - - False - False - - 5060 - - - - - - 0 - - - - - - - - - .\SIPCall.tst - 0 - 17 - 68 - 6 - 0 - - - 0 - 1 - 0 - 0 - True - False - 1 - 0 - 1 - 0 - 1 - 1 - True - 0 - 1 - 1 - 1 - True - False - True - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - 9 - 1 - 1 - 32 - <_gbDebugLogs type="bool">False - False - - <_dict type="list"> - - _ipRule1 - - - - dl_S_ADV - - - - loopMidDelay - - - - dl_T_IO - - - - dl_T_INFO - - - - dl_S_SEND - - - - _rtpIpRule1 - - - - _estimatedBacklog - - - - loopPreDelay - - - - dl_S_VRB - - - - dl_TG_ADV - - - - log_filesize - - - - rtp_log_in_file - - - - dl_T_VRB - - - - aliases - - - - dl_Q_ADV - - - - multipleUsersPerIO - - - - log_level - - - - rtpIpRule - - - - dl_1 - - - - dl_3 - - - - dl_2 - - - - rampdownSleep - - - - _portRule1 - - - - dl_S_SER - - - - dl_R_VRB - - - - dl_L_ADV - - - - dl_Q_VRB - - - - portRuleCh - - - - dl_S_INFO - - - - rtpPortRule - - - - dl_M_IO - - - - dl_EE_DD - - - - rtpIpRuleCh - - - - dl_S_FSM - - - - loopMode - - - - gracefulRampDown - - - - dl_FLOW - - - - dl_BUG - - - - dl_S_SUA - - - - ipRule - - - - ipRuleCh - - - - phoneRule - - - - _rtpPortRule1 - - - - dl_R_PAR - - - - loopCount - - - - dl_S_WAIT - - - - dl_SDP_DD - - - - dl_TRACE - - - - _gbDebugLogs - - - - rtpPortRuleCh - - - - dl_TG_VRB - - - - portRule - - - - dl_L_INFO - - - - dl_EE_VRB - - - - dl_R_DD - - - - dl_T_ADV - - - - ccExportProfile - - - - log_in_memory - - - - dl_L_VRB - - - - - - - False - 1-5 - 0 - 10000 - 1 - 500 - 500 - 4000 - 1 - 0 - 0 - 18 - 0 - 30000 - 16750 - 33500 - 1500 - 2000 - 500 - 40 - 0 - 0 - 800 - 2150 - 1500 - 2000 - 500 - 0 - 30000 - {{activecalls}} - 0 - {{activecalls}} - - - 1 - - - 0 - 35 - 0 - - - Default.cap - False - False - 10000 - 0x8078C5D3 - - - - - - 0 - 0 - 160 - - - 8 - 8 - 160 - - - 2 - <_gbVideoCodecs type="bool">False - 96 - <_gbDataCodecs type="bool">False - - - 100 - - - 101 - - - -1 - - - [10000-65535,4] - False - False - False - False - False - False - False - False - False - False - False - False - False - AS:48 - False - 800 - False - 800 - False - AS:384 - False - 6400 - False - 6400 - False - AS:48 - False - 800 - False - 800 - - <_dict type="list"> - - videoRR_value - - - - _gbVideoSDPParams - - - - textRS_value - - - - jitMs - - - - _gbAudioSDPParams - - - - ixnamSupported - - - - dedicatedCoreRange - - - - enableRTP - - - - rtpTosVal - - - - channelTypeQoV - - - - enableMediaSDPParams - - - - _gbTextSDPParams - - - - activityIdQoV - - - - rtpPort - - - - audioRS_option - - - - useJitComp - - - - dedicatedCoreRangeLength - - - - audioB_option - - - - audioB_value - - - - portIPsQoV - - - - audioRS_value - - - - enableHwAcc - - - - chEnableHwAcc - - - - channelsQoVPerZionPort - - - - videoRR_option - - - - rtpTos - - - - enableRTCPMux - - - - textRR_option - - - - silenceMode - - - - _gbMediaSDPParams - - - - textB_option - - - - enableQoV - - - - jitCMs - - - - valueQoV - - - - enableRTCP - - - - maxMosStreams - - - - enableMDI - - - - enableIxStack - - - - enableOWD - - - - unitsQoV - - - - serviceEnabledQoV - - - - chDisableHwAcc - - - - customTosGroupBox - - - - audioRR_option - - - - enablePerStream - - - - limitMos - - - - useMos - - - - textRR_value - - - - customTos - - - - videoB_value - - - - mosInterval - - - - enableAdvStatCalc - - - - useJitter - - - - useSilence - - - - metricsQoV - - - - videoRS_option - - - - videoRS_value - - - - jitCMaxDrop - - - - audioRR_value - - - - textB_value - - - - enableTosRtp - - - - videoB_option - - - - activityNameQoV - - - - textRS_option - - - - enableNBExec - - - - - - - False - 0 - False - False - IxLoad - 2000 - 2000 - - <_dict type="list"> - - rtcpSDESTool - - - - rtcpSenderTimer - - - - rtcpCNAMEType - - - - hasSDESTool - - - - rtcpReceiverTimer - - - - rtcpIgnoreSSRC - - - - hasSDESName - - - - enableRTCPMux2 - - - - - - - False - <_gbEnableAudio type="bool">False - False - False - <_JB1 type="bool">False - 20 - False - 1000 - 7 - rtp_esmad-asordo-l_2170 - False - False - 1 - False - 1 - False - 0x20 - 32 - <_COV1 type="bool">False - False - 5 - - 0 - False - <_gbEnableQoV type="bool">False - False - - - 0 - 100 - 0 - 0 - 0 - 0 - English(US) - - 0 - False - <_gbEnableQoV type="bool">False - False - - - 0 - 100 - 0 - 0 - 0 - 0 - English(US) - US_042.wav - <_audioFormat type="str">Format: PCM, Duration: 32785 ms, Size: 524556 bytes - -20 - <_gbOutputLevel type="bool">False - 0 - 10 - 1 - - <_dict type="list"> - - _gbEnableQoV - - - - channelTypeQoV - - - - pesqPolqa - - - - enablePTT - - - - enableP56 - - - - qovAnalize - - - - channelsQoVPerZionPort - - - - _COV1 - - - - useTelchemy - - - - activityIdQoV - - - - rtpTosVal - - - - useJitComp - - - - audioDuration - - - - _JB1 - - - - enableAudio - - - - enableTosRtp - - - - portIPsQoV - - - - _gbQoVMetrics - - - - dodName - - - - jitMs - - - - _gbASRLanguage - - - - rtpTos - - - - radioBtnQoVASR - - - - silenceMode - - - - playTypeAudio - - - - useQoV - - - - activityNameQoV - - - - enableQoV - - - - jitCMs - - - - valueQoV - - - - _gbOutputLevel - - - - unitsQoV - - - - serviceEnabledQoV - - - - audioClip - - - - languageASR - - - - customTosGroupBox - - - - audioDurationUnit - - - - useMos - - - - customTos - - - - qovSettings - - - - useJitter - - - - useSilence - - - - metricsQoV - - - - jitCMaxDrop - - - - channelsQoV - - - - enableAudioOWD - - - - _audioFormat - - - - _gbEnableAudio - - - - outputLevel - - - - - - - 0 - False - False - False - <_gbBtnTosBit7_0 type="bool">False - <_gbBtnTosBit7_1 type="bool">False - <_gbBtnTosBit6_0 type="bool">False - <_gbBtnTosBit6_1 type="bool">False - <_gbBtnTosBit5_0 type="bool">False - <_gbBtnTosBit5_1 type="bool">False - <_gbBtnTosBit4_0 type="bool">False - <_gbBtnTosBit4_1 type="bool">False - <_gbBtnTosBit3_0 type="bool">False - <_gbBtnTosBit3_1 type="bool">False - <_gbBtnTosBit2_0 type="bool">False - <_gbBtnTosBit2_1 type="bool">False - <_gbDisabledBtns type="bool">False - - - False - False - False - False - False - False - False - False - False - False - False - False - <_masterKeySelection type="int">0 - - - <_enableSRTP type="bool">False - <_useStaticKey type="bool">False - <_singleMasterKeyGrp type="bool">False - <_multipleMasterKeysGrp type="bool">False - - <_dict type="list"> - - bEnableSRTP - - - - _singleMasterKeyGrp - - - - bDisableSRTPEncryption - - - - bDisableSRTPAuthentication - - - - bDisableValidations - - - - _useStaticKey - - - - bEnablePreencryption - - - - staticSingleKeySalt - - - - _enableSRTP - - - - bStaticMasterKeySalt - - - - staticKeyFile - - - - bDisableMasterSalt - - - - _multipleMasterKeysGrp - - - - bAllowOnlySecureStreams - - - - bDisableSRTCPEncryption - - - - bEnableVideoSRTP - - - - bIncludeMKI - - - - bEnableTextSRTP - - - - _masterKeySelection - - - - - - - - 0 - 0 - 0 - 0 - 0 - 66 - 0 - 1 - - - False - 0 - False - 0 - False - 0 - False - 0 - False - 0 - False - 0 - False - 0 - - - False - False - 1 - <_gbEnableVideo type="bool">False - Fire_avc.mp4 - <_videoFormat type="str">Codec: H264, Duration: 12800 ms, Size: 2012176 bytes, Bitrate: 1225 kbps - 0 - 5 - 1 - False - <_gbUseConference type="bool">False - 0 - 1 - 1 - 1 - 1 - False - <_gbUseTelepresence type="bool">False - - 1 - 1 - 1 - False - False - <_gbTipMoreClips type="int">0 - Fire_avc.mp4 - 0 - 1 - 1 - 1 - 1 - <_gbTipPresentation type="bool">False - False - Fire_avc.mp4 - US_042.wav - 1 - 1 - 1 - 1 - 0 - False - <_gbTipLegacy type="int">0 - Fire_avc.mp4 - False - <_gbTipLegacyAudio type="int">0 - US_042.wav - False - False - False - False - False - False - False - False - False - False - True - - <_gbTosVideo type="bool">False - False - 1 - 0x20 - <_gbCustomTosVideo type="bool">False - 32 - False - False - False - 1 - True - False - <_gbH323AdvancedSettings type="bool">False - False - <_gbUseH323AdvancedSettings type="bool">False - - - False - - <_dict type="list"> - - hintTrackType - - - - videoMaxSessions - - - - useSingleNALUnit - - - - enableVideo - - - - useConference - - - - customTosVideo - - - - tipSettings - - - - playTypeVideo - - - - rotationScheme - - - - _gbUseH323AdvancedSettings - - - - isMP4 - - - - confVideoDuration - - - - tosValVideo - - - - enablePACSI - - - - _videoFormat - - - - confDuration - - - - tosVideo - - - - _gbUseTelepresence - - - - enableVideoOWD - - - - enableTosVideo - - - - fmtp - - - - videoType - - - - confDurationUnit - - - - videoDurationUnit - - - - _gbUseConference - - - - _gbH323AdvancedSettings - - - - _gbTosVideo - - - - _gbCustomTosVideo - - - - ignoreHintTrack - - - - enableAcceptSSRCChanges - - - - videoDuration - - - - useH323AdvancedSettings - - - - videoClip - - - - confVideoDurationUnit - - - - rtpmap - - - - _gbEnableVideo - - - - btnTelepresence - - - - useMosVideo - - - - - - - 0 - <_gbRotationScheme type="int">0 - 0 - 0 - 0 - 0 - - <_dict type="list"> - - rotationScheme - - - - confDuration - - - - confVideoDurationUnit - - - - confDurationUnit - - - - _gbRotationScheme - - - - confVideoDuration - - - - - - - 0 - 0 - 0 - False - False - <_gbTipMoreClips type="int">0 - Fire_avc.mp4 - 0 - 0 - 0 - 0 - 0 - <_gbTipPresentation type="bool">False - False - Fire_avc.mp4 - US_042.wav - 0 - 0 - 0 - 0 - 0 - False - <_gbTipLegacy type="int">0 - Fire_avc.mp4 - False - <_gbTipLegacyAudio type="int">0 - US_042.wav - False - False - False - False - False - False - False - False - False - False - True - - <_dict type="list"> - - tipDuration - - - - tipRotationScheme - - - - tipLegacyMode - - - - _tipLegacyClip - - - - tipVideoClip - - - - tipVideoRefresh - - - - tipUsePresentationStream - - - - tipGDR - - - - tipStartAfterUnit - - - - tipArithmetingCoding - - - - _gbTipLegacyAudio - - - - tipConfDuration - - - - tipConfDurationUnit - - - - tipG722Legacy - - - - tipLegacyClipAudio - - - - tipLegacyClip - - - - tipMoreClips - - - - tipDurationUnit - - - - tipInbandSets - - - - tipSyntheticPayload - - - - _tipVideoClip2 - - - - tipAudioDurationUnit - - - - tipResolution - - - - _tipVideoClip - - - - _tipLegacyClipAudio - - - - tipAudioDuration - - - - tipLegacyModeAudio - - - - _gbTipPresentation - - - - tipHighProfile - - - - tipRtcpFeedback - - - - tipVideoClip2 - - - - _gbTipMoreClips - - - - tipVersion - - - - tipDinamicChannels - - - - tipEndpointType - - - - _gbTipLegacy - - - - tipLTRP - - - - tipStartAfter - - - - _tipAudioClip - - - - tipPresentationRotation - - - - tipAudioClip - - - - tipAudioActivityMetric - - - - tipUnrestrictedMedia - - - - - - - False - False - <_gbEnableText type="bool">False - The quick brown fox jumps over the lazy dog - Format: t140, Max duration: 42300 ms - 1.0 - 1.0 - 300 - 0 - 0 - 5 - 1 - <_gbTosText type="bool">False - False - 1 - 0x20 - <_gbCustomTosText type="bool">False - 32 - - <_dict type="list"> - - tosValText - - - - _gbEnableText - - - - textClip - - - - customTosText - - - - textChpsMin - - - - textRedundancyLevel - - - - textChpsMax - - - - textBufferTime - - - - textDuration - - - - enableTextOWD - - - - _gbTosText - - - - enableText - - - - textPlayType - - - - _gbCustomTosText - - - - enableTosText - - - - textFormat - - - - textDurationUnit - - - - tosText - - - - - - - False - <_gbEnableT38 type="bool">False - <_gbEnableT38_2 type="bool">False - Ixia2Pages.tif - <_faxFormat type="str">Format: TIFF, Img size: 1660 x 2291, Size: 140402 bytes - 1 - 40000 - 0 - <_gbT38UdpEncapsulation type="bool">False - 102 - True - 0 - True - 5 - True - 0 - False - 0 - False - False - <_gbUdpOptions type="bool">False - True - 0 - True - 256 - False - 200 - - - <_dict type="list"> - - t38TranscodingMMR - - - - t38UdpEncapsulation - - - - useT38MaxBitrate - - - - t38RateMgmt - - - - t38TranscodingJBIG - - - - enableT38 - - - - t38TransportType - - - - _gbEnableT38_2 - - - - _gbEnableT38 - - - - t38Port - - - - t38FillBitRemoval - - - - faxVersion - - - - useT38FillBitRemoval - - - - useT38RateMgmt - - - - faxImage - - - - useT38MaxBufferSize - - - - errorRecoverySchema - - - - t38MaxDatagramSize - - - - t38MaxBufferSize - - - - _faxFormat - - - - t38PayloadType - - - - useT38MaxDatagramSize - - - - t38MaxBitrate - - - - useFaxVersion - - - - _gbUdpOptions - - - - _gbT38UdpEncapsulation - - - - imagesList - - - - useErrorRecoverySchema - - - - - - - 5551[000-] - 0 - 5 - 0 - 0 - 1 - 0 - 1 - 2 - 2 - 0 - 1 - True - True - True - True - 3 - 1 - - <_dict type="list"> - - t30SendResolution - - - - sendCedBeforeDIS - - - - t30ReceiveR8x7 - - - - t30SendPageSize - - - - t30ReceiveR8x3 - - - - t30SendCoding - - - - t30ReceiveProtocol - - - - sendCNG - - - - t30SendProtocol - - - - t30ReceiveMSLT - - - - t30SendMSLT - - - - t30SendDataRate - - - - t30ReceivePageSize - - - - t30ReceiveModulations - - - - t30ReceiveR8x15 - - - - t30StationId - - - - t30ReceiveCoding - - - - t30Receive200x200 - - - - - - - False - <_gbEnableMSRP type="bool">False - 2855 - 0 - alice[00-99].example.com - - 0 - False - 10.10.10.1 - True - 2855 - False - 0 - 0x00 - 0 - True - True - False - 30000 - 60000 - 30000 - 70000 - - - 0 - - False - - - <_dict type="list"> - - customMSRPTos - - - - filesCount - - - - firstRelayIpEnabled - - - - automaticMSRPAuth - - - - msrpSendEmptyMsg - - - - msrpTransactionTimeout - - - - msrpInterChunkTimeout - - - - tosMSRPVal - - - - enableMSRP - - - - localDomain - - - - relaysCount - - - - domainType - - - - firstRelayIp - - - - advSettings - - - - files - - - - msrpFirstChunkTimeout - - - - firstRelayIsIPv4 - - - - msrpPort - - - - _gbMSRPCustomTos - - - - msrpSessionTimeout - - - - _gbEnableMSRP - - - - enableMSRPTos - - - - msrpReuseTCP - - - - msrpGuiFiles - - - - msrpTos - - - - relays - - - - msrpRelayPort - - - - - - <_tempFile ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_FileRecord"> - 0 - <_typeStr type="str"> - - - - - <_bFileSize type="int">20 - <_msrpSizeCombo type="int">2 - 0 - 0 - application/octet-stream - - - <_tempAdvSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPAdvancedSettings"> - False - - - - - - - - - 0 - 201004[0000-] - - <_PN1 type="bool">False - <_bTelGrp type="bool">False - False - <_bkTelURIparams type="str">phone-context=example.com - - <_dict type="list"> - - phoneBookList - - - - filePath - - - - pattern - - - - ckTelURIBook - - - - _bkTelURIparams - - - - _PN1 - - - - _bTelGrp - - - - fromFile - - - - - - - - - - - - - <_gbStep1 type="bool">False - - - ANY - - - INVITE - - - ACK - - - BYE - - - CANCEL - - - OPTIONS - - - REGISTER - - - NOTIFY - - - SUBSCRIBE - - - REFER - - - MESSAGE - - - PRACK - - - INFO - - - UPDATE - - - - <_gbStep2 type="bool">False - 2 - 1 - - - To - - - From - - - Contact - - - Also - - - Authorization - - - Call-ID - - - Content-Length - - - Content-Type - - - CSeq - - - Event - - - Proxy-Authenticate - - - Proxy-Authorization - - - RAck - - - Record-Route - - - Refer-To - - - Referred-By - - - Replaces - - - Route - - - RSeq - - - Subscription-State - - - Via - - - WWW-Authenticate - - - To - t - 1 - 1 - 3 - False - - False - False - <_gbStep3 type="bool">False - 0 - False - < - 1 - False - > - last - 1 - last - <_gbStep4 type="bool">False - 0 - - - - 0 - - - - C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion - - - - None - False - <_useTPb type="int">0 - <_tBp type="str"><None> - <_tBpPrv type="str"> - <_tPhone type="str">150[00000000-] - 0 - 150[00000000-] - <_tTelGrp type="bool">False - <_ckTTelURIParams type="bool">False - <_tTelURIparams type="str">phone-context=example.com - - - <_dict type="list"> - - _tBpPrv - - - - overridePhoneNo - - - - _tTelGrp - - - - _useTPb - - - - tPhone - - - - transTelPar - - - - _tPhone - - - - _ckTTelURIParams - - - - symTransferStr - - - - tPhoneType - - - - _tTelURIparams - - - - _tBp - - - - - - - 0 - mysipdomain.ixiacom.com - <_useEPb type="int">0 - <_eBp type="str"><None> - <_eBpPrv type="str"> - <_ePhone type="str">160[00000000-] - 0 - 160[00000000-] - <_eTelGrp type="bool">False - <_ckETelURI type="bool">False - <_eTelURIparams type="str">phone-context=example.com - - - <_dict type="list"> - - _useEPb - - - - _eBpPrv - - - - domainName - - - - _eBp - - - - _ePhone - - - - _eTelGrp - - - - ePhoneType - - - - _eTelURIparams - - - - useDomainName - - - - editTelPar - - - - ePhone - - - - _ckETelURI - - - - - - - - <_useSPb type="int">0 - <_sBp type="str"><None> - <_sBpPrv type="str"> - <_sPhone type="str">{{pncalling}} - 0 - {{pncalling}} - <_sTelGrp type="bool">False - <_ckSTelURIParams type="bool">False - <_sTelURIparams type="str">phone-context=example.com - - <_sTelGrp1 type="bool">False - <_dTelGrp1 type="bool">False - VoIP2_CALLED:{{sipportcalled}} - True - <_useDPb type="int">0 - <_dBp type="str"><None> - <_dBpPrv type="str"> - <_dPhone type="str">{{pncalled}} - 0 - {{pncalled}} - <_dTelGrp type="bool">False - <_ckDTelURIParams type="bool">False - <_dTelURIparams type="str">phone-context=example.com - - False - False - False - sos - - - sos - - - sos.ambulance - - - sos.fire - - - sos.police - - - - <_dict type="list"> - - _useSPb - - - - _dTelGrp1 - - - - sourceIPs - - - - enableEmergencyCalls - - - - _sPhone - - - - _dBpPrv - - - - destPhoneType - - - - destTelPar - - - - useAnonymous - - - - _dTelGrp - - - - symDestStr - - - - _gbEmergencyDest - - - - _sBp - - - - makeEmergencyReg - - - - destPhone - - - - srcTelPar - - - - _gbEmergencySource - - - - _ckSTelURIParams - - - - _dTelURIparams - - - - _dBp - - - - ovrDestPhone - - - - _sTelGrp1 - - - - emergencyServiceList - - - - _dPhone - - - - srcPhone - - - - _gbEmergency - - - - _sTelURIparams - - - - _UseSrv1 - - - - srcPhoneType - - - - _sBpPrv - - - - _sTelGrp - - - - emergencyService - - - - _useDPb - - - - _ckDTelURIParams - - - - - - - True - {{sipportcalling}} - False - False - - {{pncalling}}@{{domainname}} - {{authpassword}} - <None> - 0 - 0 - 0 - ixia - C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion - ixia - 0 - 0 - 0 - False - <Default> - 00000000000000000000000000000000 - 00000000000000000000000000000001 - 00000000000000000000000000000002 - 00000000000000000000000000000004 - 00000000000000000000000000000008 - 64 - 0 - 32 - 64 - 96 - False - 0 - 0x00 - 0 - False - 0 - True - {{iplistims}} - 5060 - {{domainname}} - False - False - True - True - False - IP:PORT - False - True - {{domainname}} - 2048 - False - False - False - - - False - ipsec-3gpp - 0 - hmac-sha-1-96 - 0 - esp - 0 - trans - 0 - aes-cbc - 255 - [3000-4000] - 4060 - - <_dict type="list"> - - protocol - - - - encrypt_algorithmStr - - - - algorithm - - - - modeStr - - - - protocolStr - - - - mechanism - - - - algorithmStr - - - - mode - - - - port_s - - - - port_c - - - - spi_start_idx - - - - encrypt_algorithm - - - - checked - - - - - - - False - False - 60 - False - False - 0 - True - False - <_enableAutoHeaders type="bool">False - <_btnAutoHeaders type="bool">False - False - False - - <_dict type="list"> - - _gbSrvSettings - - - - akaSharedSecretType - - - - _btnAutoHeaders - - - - tcpWriteImmediate - - - - ovrDest - - - - _enableAutoHeaders - - - - enableSIP - - - - fqdn - - - - akaSharedSecretSource - - - - milenageConfCombo - - - - milenage_c3 - - - - milenage_c2 - - - - milenage_c5 - - - - milenage_c4 - - - - akaConfCombo - - - - _UseSrv1 - - - - akaOperatorVariantType - - - - overrideRegistrar - - - - port - - - - milenage_r2 - - - - registrarSrv - - - - milenage_r4 - - - - milenage_r5 - - - - _gbRetransmissions - - - - milenage_r3 - - - - milenage_r1 - - - - tos - - - - user - - - - akaOperatorVariantSource - - - - telURISource - - - - useServer - - - - nUdpMaxSize - - - - retransmit1xx - - - - srvDomain - - - - _btnEditContact1 - - - - telURIDest - - - - ovrTimeout - - - - enablePeriodicDNSQueries - - - - useIPSecDoubleSPIPatch - - - - securityMechanismValList - - - - skipDeleteDNSRecordsAtLoopEnd - - - - overrideRegistrarAddress - - - - enableTos - - - - srvAddr - - - - ovrDestHostPort - - - - DNSTimeoutValue - - - - tosVal - - - - passwd - - - - T2 - - - - autoRegister - - - - T1 - - - - enableSigComp - - - - akaOperatorVariantSequence - - - - enableVoLTE - - - - retransmitACK - - - - akaSharedSecretSequence - - - - volte_grbox - - - - customSipTos - - - - dontEndMediaOnBye - - - - realm - - - - akaExportComplete - - - - mediaBearerType - - - - _gbPeriodicDNSQuery - - - - enableRetransmissions - - - - milenage_c1 - - - - akaUseOPasOPC - - - - _ovrDest1 - - - - outboundProxy - - - - ignoreRetransmissions - - - - closeTCPConnectionsOnRampdown - - - - ovrContact - - - - akaAbsolutePath - - - - serverAddresses - - - - enableCCDedicatedBearer - - - - akaConfComboSelIndex - - - - _gbCustomTos - - - - ovrTrans - - - - useDnsSrv - - - - ovrTransOption - - - - _enableSIP2 - - - - _enableSIP1 - - - - srvPort - - - - - - - True - - - True - REGISTER - 0 - Expires Header(s) - 3600 - - <_dict type="list"> - - message - - - - msgPart - - - - checked - - - - value - - - - msgPartStr - - - - - - - True - INVITE - 2 - Session-Expire(s) - 90 - - <_dict type="list"> - - message - - - - msgPart - - - - checked - - - - value - - - - msgPartStr - - - - - - - True - UPDATE - 2 - Session-Expire(s) - 90 - - <_dict type="list"> - - message - - - - msgPart - - - - checked - - - - value - - - - msgPartStr - - - - - - - 1 - 3000 - 50 - 32 - False - 500 - 4000 - True - True - True - False - False - 0 - False - False - False - 150 - False - False - False - - 0 - True - - <_dict type="list"> - - btnRefreshProcList - - - - autoEndCall - - - - ignoreRetransmissions - - - - minInterReregister - - - - autoEndCall2 - - - - enableTimers - - - - refreshInSecs - - - - retransmit1xx - - - - _gbEnableTimers - - - - ovrTimeout - - - - sessionRefreshType - - - - auto4xx - - - - retransmitACK - - - - procListChanged - - - - T2 - - - - autoProcedureList - - - - _gbAutoPRACK - - - - T1 - - - - refreshAfterPercent - - - - enableAutoPRACK - - - - stopActiveRetr - - - - enableRetransmissions - - - - rprTimeUntilNextRPR - - - - rprScenarioHasPRACK - - - - expirationValList - - - - refreshAfterSecs - - - - autoProceduresCount - - - - auto4xxAbort - - - - rprSendNegotiatedSDP - - - - - - - False - <_useCloud1 type="bool">False - <None> - - False - - False - <_ovrCloudRules1 type="bool">False - - <_dict type="list"> - - _gbVirtualIPs - - - - useCloud - - - - ovrCloudRules - - - - _ovrCloudRules1 - - - - cloud - - - - enableVirtualIPs - - - - virtualIPTable - - - - serverRules - - - - _useCloud1 - - - - - - - False - False - False - False - <_enableTLS1 type="bool">False - <_enableTLS2 type="bool">False - <_enableTLS3 type="bool">False - 5061 - 3 - False - <_tlsSessionRefresh type="bool">False - 3600 - 0 - False - <_tlsReuseConnection type="bool">False - False - False - <_gbTlsMutual type="bool">False - - - True - ECDHE-ECDSA-AES128-GCM-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-ECDSA-AES256-GCM-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-RSA-AES128-GCM-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-ECDSA-AES256-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-ECDSA-AES128-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - ECDHE-RSA-AES128-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - AES128-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - True - AES256-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-ECDSA-AES256-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-ECDSA-AES128-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-RSA-AES256-GCM-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-RSA-AES128-SHA256 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - ECDHE-RSA-AES256-SHA384 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - DES-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - DES-CBC3-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP-DES-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP-RC2-CBC-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP-RC4-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP1024-DES-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - EXP1024-RC4-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - IDEA-CBC-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - NULL-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - NULL-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - RC4-MD5 - - <_dict type="list"> - - enabled - - - - name - - - - - - - False - RC4-SHA - - <_dict type="list"> - - enabled - - - - name - - - - - - - C:\Program Files (x86)\Ixia\IxLoad\8.20-EA\aptixia\data\SSL_Certificates - Unsecured_RSA_key_1024.pem - Unsecured_RSA_cert_1024.pem - 0 - 0 - - 0 - 0 - True - False - - <_dict type="list"> - - tlsCertType - - - - tlsPassword - - - - tlsPort - - - - ignoreSubjectAltName - - - - tlsPrivateKeyCertificate - - - - tlsTransportType - - - - enableTLS_HTTP - - - - tlsCyphers - - - - tlsProtocol - - - - tlsKeyType - - - - _tlsSessionRefresh - - - - tlsCertificatesPath - - - - tlsEnableTcpKeepAlive - - - - _gbTlsMutual - - - - tlsPublicKeyCertificate - - - - _enableCert - - - - enableTLS - - - - tlsAuthClient - - - - tlsMutual - - - - _enableTLS4 - - - - _enableTLS1 - - - - _enableTLS2 - - - - _enableTLS3 - - - - enableDTLS - - - - enableTLS_MSRP - - - - tlsReuseConnection - - - - tlsRefreshInterval - - - - tlsSessionRefresh - - - - tlsDisableUdpAndTcp - - - - sipScheme - - - - _tlsReuseConnection - - - - - - - 200 - 30000 - False - - - 6 - 100 - 30000 - - - - - - - - - - - - - 0 - False - <_gbHardcodedForDemo type="bool">False - <_gbStunSettings type="bool">False - False - 127.0.0.1 - 3478 - False - False - <_gbSRVCCSettings type="bool">False - False - - False - False - False - <_gbPCO type="bool">False - - False - False - - - - <_dict type="list"> - - _gbIceSettings - - - - _gbPCO - - - - VOIP_IPAddress4 - - - - VOIP_IPAddress1 - - - - VOIP_IPAddress0 - - - - VOIP_IPAddress3 - - - - VOIP_IPAddress2 - - - - bUseIce - - - - mobilityPath - - - - VOIP_Var0 - - - - _gbStunSettings - - - - PCO_List - - - - _gbSRVCCSettings - - - - absolutePathForCsvWithVariables - - - - bIceLite - - - - PCO_Groupbox - - - - bUseHardcoded - - - - bUseSRVCC - - - - useBHCA - - - - ipPreference - - - - btnBrowseForVariableCsv - - - - bUsePCO - - - - stunPort - - - - bUseStun - - - - stunAddr - - - - ddgGroupboxSRVCC - - - - _gbHardcodedForDemo - - - - pathForCsvWithVariables - - - - DodPathForCsvWithVariables - - - - _varCsvGroupBox - - - - VOIP_Var1 - - - - loadVariablesFromCsv - - - - VOIP_Var3 - - - - VOIP_Var2 - - - - VOIP_Var4 - - - - - - - False - sc.home1.net - False - phone-context=example - 61814712345 - 0 - 0 - False - False - False - False - - False - 160[00000000-] - <None> - - 0 - 0 - False - False - False - False - - False - 160[00000000-] - <None> - - 0 - 0 - - False - False - None - 0 - - - 0 - False - False - False - - <_dict type="list"> - - smOrigNumberingPlan - - - - smsFiles - - - - enableSMS - - - - enableSMOrigReplyPath - - - - smsFilesCount - - - - btnSMRecipEdit - - - - enableSMOrigReqStatusReport - - - - grBoxSMRecipient - - - - enableSMRecipOverrideSrc - - - - grBoxSMOriginator - - - - smsAddressOriginator - - - - telURI - - - - depActivities - - - - pcpuCommonPath - - - - smOrigTypeOfNo - - - - smRecipTypeOfNo - - - - requestURI - - - - smsFilesBackup - - - - smsAddressRecipient - - - - enableTelURI - - - - useFilesFromActivity - - - - smRecipNumberingPlan - - - - smscPhoneNo - - - - smsImportFilesActivity - - - - enableSMRecipReplyPath - - - - btnSMOrigEdit - - - - smscNumberingPlan - - - - duringLoadFromBackup - - - - enableSMRecipReqStatusReport - - - - grBoxSMServiceCenter - - - - verifyUserInfo - - - - smscTypeOfNo - - - - enableSMOrigOverrideDest - - - - smsActivityForFiles - - - - - - - 0 - - - - - - 0 - 0 - 0 - - - - <_dict type="list"> - - contentViewShow - - - - ixSmsFilePath - - - - contentViewEdit - - - - segmentOrder - - - - comboRefNo - - - - loadedFileType - - - - btnSmsLoadFiles - - - - ixSmsFileName - - - - btnSmsSaveAs - - - - fileName - - - - segmentNo - - - - totalTpudSize - - - - comboCoding - - - - - - - 0 - <None> - - 160[00000000-] - 0 - 160[00000000-] - False - - - - <_dict type="list"> - - userPattern - - - - phoneBookPreview - - - - ePhoneType - - - - ePhone - - - - fakeEnableTelURI - - - - comboPhoneBook - - - - fakeTelToPort - - - - fakeTelURI - - - - radioBtnPhoneNo - - - - - - - 0 - <None> - - 160[00000000-] - 0 - 160[00000000-] - False - - - - <_dict type="list"> - - userPattern - - - - phoneBookPreview - - - - ePhoneType - - - - ePhone - - - - fakeEnableTelURI - - - - comboPhoneBook - - - - fakeTelToPort - - - - fakeTelURI - - - - radioBtnPhoneNo - - - - - - - True - - - - - INVITE - - - ACK - - - BYE - - - CANCEL - - - OPTIONS - - - REGISTER - - - NOTIFY - - - SUBSCRIBE - - - REFER - - - MESSAGE - - - PRACK - - - INFO - - - UPDATE - - - 100 (Trying) - - - 180 (Ringing) - - - 181 (Call Is Being Forwarded) - - - 182 (Queued) - - - 183 (Session Progress) - - - 200 (OK) - - - 202 (Accepted) - - - 300 (Multiple Choices) - - - 301 (Moved Permanently) - - - 302 (Moved Temporarily) - - - 305 (Use Proxy) - - - 380 (Alternative Service) - - - 400 (Bad Request) - - - 401 (Unauthorized) - - - 402 (Payment Required) - - - 403 (Forbidden) - - - 404 (Not Found) - - - 405 (Method Not Allowed) - - - 406 (Not Acceptable) - - - 407 (Proxy Authentication Required) - - - 408 (Request Timeout) - - - 410 (Gone) - - - 413 (Request Entity Too Large) - - - 414 (Request-URI Too Large) - - - 415 (Unsupported Media Type) - - - 416 (Unsupported URI Scheme) - - - 420 (Bad Extension) - - - 421 (Extension Required) - - - 423 (Interval Too Brief) - - - 480 (Temporarily not available) - - - 481 (Call Leg/Transaction Does Not Exist) - - - 482 (Loop Detected) - - - 483 (Too Many Hops) - - - 484 (Address Incomplete) - - - 485 (Ambiguous) - - - 486 (Busy Here) - - - 487 (Request Terminated) - - - 488 (Not Acceptable Here) - - - 491 (Request Pending) - - - 493 (Undecipherable) - - - 500 (Internal Server Error) - - - 501 (Not Implemented) - - - 502 (Bad Gateway) - - - 503 (Service Unavailable) - - - 504 (Server Time-out) - - - 505 (SIP Version not supported) - - - 513 (Message Too Large) - - - 600 (Busy Everywhere) - - - 603 (Decline) - - - 604 (Does not exist anywhere) - - - 606 (Not Acceptable) - - - - - - Request-Uri - - - Via - - - From - - - To - - - Call-ID - - - CSeq - - - Contact - - - Content-Length - - - Route - - - Record-Route - - - Authorization - - - Proxy-Authorization - - - Referred-By - - - Replaces - - - Event - - - RAck - - - RSeq - - - Refer-To - - - Subscription-State - - - WWW-Authenticate - - - Also - - - To - - False - - - True - - - False - - - - - - False - 40000 - 60000 - 1 - False - False - 10 - False - False - - <_dict type="list"> - - tcpIdlePeriod - - - - tcpEndPortLabel - - - - tcpIdlePeriodLabel - - - - donotCloseTCPInsideCallEnable - - - - tcpPortStepLabel - - - - tcpLocalPortStep - - - - tcpLocalPortEnd - - - - tcpStartPortLabel - - - - tcpLocalPortStart - - - - closeIdleTcpConnectionsEnable - - - - recordingServerEnable - - - - overrideTCPLocalPort - - - - closeNonsecureTcpConnectionsEnable - - - - - - - 6 - <_apiUniqueId type="int">16382 - 39 - 59 - - - <_dict type="list"/> - - VoIP - - - - - - None - VM1 - Both - none - 0 - Default - False - - Ixia Virtual Load Module - - - - 1 - 1 - 1 - False - Ixia Virtual Load Module - - None - - False;8192 - - None - - - - - - <_smRangeObjectId type="str">5affc0a7-68f6-46f6-b801-0e18e067a572 - Network Range IP-R13 in VM1 ({{ipcard1}}+1) - - Group1 - consecutiveIps - 0 - <_apiUniqueId type="int">15457 - <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixNetworkRange"> - - - <_rangeGroupObjectId type="str">abf2b6e4-a102-4cbe-bf1b-a11f11b2faac - <_smPluginObjectId type="str">9ea551b2-a0af-4a7d-9872-e9b94298d7bd - - False - - - None - None - - - - 0 - 0 - 1024 - 65535 - 0.0.0.0 - 255.255.0.0 - :: - FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0 - - 0 - - True - False - - - False - 30000 - - - - - - False - True - True - False - False - 0 - 1024 - False - 0 - 1024 - 60 - 75 - 9 - 7200 - 5 - 5 - 5 - 8192 - 8192 - True - False - 1000 - 60000 - - - - - False - False - False - False - False - False - 1 - 1 - 1 - 0 - 0 - 1 - 1 - 0 - 1 - any - any - any - False - FragmentationPercent - 50 - 1000 - 1 - 1 - <_seed type="int">1 - - <_portGroupId type="str">e7fa1f9e-23d9-4742-96b2-6edce6c4424e - <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap"> - - - 1 - - - - - VoIP Peer - REGISTERING - True - - Timeline1 - {{registeringduration}} - {{registeringduration}} - 1 - 0 - 10 - 0 - 0 - {{registeringtotalcalls}} - {{registeringduration}} - {{registeringduration}} - 0 - 0 - 1 - - - - Linear Segment 1 - 0 - 1 - 0.0 - 1.0 - {{registeringduration}} - 17 - - - 20 - <_apiUniqueId type="int">16159 - - 3 - - - False - 1-5 - 0 - 10000 - 1 - 500 - 500 - 4000 - 80000 - 0 - 0 - 18 - 0 - 1500 - 5 - 2500 - 1500 - 2000 - 100 - 40 - 0 - 0 - 800 - 2150 - 1500 - 2000 - 100 - 0 - 750 - 86534 - 0 - 100 - - Peer - Both - 100.0 - concurrentConnections - {{registeringtotalcalls}} - activeUsers - {{registeringtotalcalls}} - SimulatedUserConstraint - 86534 - 100 - True - SimulatedUserConstraint - 100 - False - protocolSpecific - 1 - 0 - 1:1 - Consecutive - - 2 - <_apiUniqueId type="int">15566 - 58ff41761a9072107c63efca - <_objectiveValue type="int">{{registeringtotalcalls}} - - 1.0 - - - - - VoIP Peer - CALLING - True - - - False - 1-5 - 0 - 10000 - 1 - 500 - 500 - 4000 - 80000 - 0 - 0 - 18 - 0 - 30000 - 16750 - 33500 - 1500 - 2000 - 100 - 40 - 0 - 0 - 800 - 2150 - 1500 - 2000 - 100 - 0 - 30000 - {{activecalls}} - 0 - 100 - - Peer - Both - 100.0 - concurrentConnections - {{activecalls}} - activeUsers - {{activecalls}} - SimulatedUserConstraint - {{activecalls}} - 100 - True - SimulatedUserConstraint - 100 - False - protocolSpecific - 1 - 0 - 1:1 - Consecutive - - 6 - <_apiUniqueId type="int">16446 - 58ff41761a9072107c63efca - <_objectiveValue type="int">{{activecalls}} - - 1.0 - - - - - - - - - - - False - <_apiUniqueId type="int">15466 - - None - - - <_apiUniqueId type="int">15451 - - <_dict type="list"> - - - - - - - <_dict type="list"> - - - - - - - <_dict type="list"> - - SIP - - SIP - True - - - - RTP - - RTP - True - - - - T38 - - T38 - True - - - - MSRP - - MSRP - True - - - - - - - - - - - - - <_dict type="list"> - - SIP - - SIP - True - - - - RTP - - RTP - True - - - - T38 - - T38 - True - - - - MSRP - - MSRP - True - - - - - - - - - - - - - - True - 1 - 0 - 10 - 244522 - 3549 - 3549 - protocolSpecific - n/a - {{registeringtotalcalls}} - 0 - 5 - 1 - 17307 - 20 - activeUsers - {{registeringtotalcalls}} - {{registeringtotalcalls}} - 0 - <_apiUniqueId type="int">15450 - True - - <_portOperationModesAllowed type="dict"> - - 0 - True - - - 1 - True - - - 2 - False - - - 3 - True - - - 4 - True - - - 8 - True - - - <_tcpAccelerationAllowed type="dict"> - - 0 - True - - - 1 - False - - - - - 0 - <_apiUniqueId type="int">15447 - - - Terminate - - - - 2 - <_apiUniqueId type="int">15449 - - - - - concurrentConnections - {{activecalls}} - protocolSpecific - activeUsers - {{activecalls}} - - {{activecalls}} - True - VoiceLink1 - - - - - 0 - <_apiUniqueId type="int">16586 - - - - 0 - <_apiUniqueId type="int">15446 - - - 45 - True - True - True - True - False - False - False - False - Kbps - - False - - - - <_apiUniqueId type="int">15684 - - False - None - 0 - 0 - 0 - - - - Playlist - playlist - - - - 0 - - - Random Data - rdge - - - 0 - 1 - - - 1 - - - Real File - realfile - - None - - 2 - - - Unified File System - ufs - - None - - 3 - - - <_profileMru type="str"> - - None - True - True - 0 - <_apiUniqueId type="int">15445 - - - 2 - True - False - begin 666 <data> M>)S=G6MOXSBRAO^*D(,9S& GMJB[,ND,TD[2$W1NB-T]N]A>--0VDVC;EKR2 MG,L>G/]^*-E.1+)DUTQ$"LB'[C@65:5Z0Y;X4)?:_^UQ-C7N:9;':?)NA_3, MG=\.]H=%5'R.Z0/-7C9Y/<_LF3TKM'98 YJ7WY[%>6%\I$_O=J)Y$3_&42^_ M[\W+/?*")F/:J[7[(XOF;!/;>7!Y,3J^&!G]@_VKZ^,A^W@X.KV\$'__>GQT M.CI\?W9<;AA<GK\_O3@^>G:=/W_"'(#D_&#_)*/_6; V3\9]-%W0=SO63N4H MOS]+;V_CY';]_2A;T&K3*)[1X5,R?D_OHOLXS=8-S.>M>1'-YE<9'<?5@:VV MV]7VX]N,'4NIZNAI3M?;2+7MDJD\3:/)5986=%S4]GUV_G)<O\>3"4U*0_FZ MU4DTS9?-CI/HVY0>144T+-*,R@VN7L2I'X<#[;W1$SN@RT4Q7Q3/0IXOID4\ MGXJQ58V.AEN:G4>/9:_+V?$-%GF1SCZP/]G=<QMO[?,DGM*KJ'C>4GU_.*59 MD:]_&JQ+)_G>8QZ_V[DKBOE>O__P\-![L'MI=MNW3)/T_WY^-AS?T5FT&R?L MC\;$V'G>:[)]K\II?^WUB-Y$+*9*)_ZWJAF_>9"EJUZ04<I:,ZU'I>@'^X_Y M7EY9-V)V"!?TH?H[T&)U9&6HZT/$'.&R[2R?,"OO=A99LK*>[\[B,3N(]*;8 M':>S/=9N=]EJISH&.J4SFA1&$LTH?QC+5GNG^>J;=SM%U3M7WY]'<?(<3MES M*:UB/DPF'[)T,<^?6YZEXZALLG3(#H+UAL>R-RY_OTOC,35F<7(Y'B^RO!I@ ML^AQ_=LB^98ND@F=0,<+> 6=Y,O.2 $3IT<[1L':O=MAFZ9I<KLC'$L?V.DJ MRM@O?VG7"_9_;;>\R&+<CF4P?VG'P1T=?R]'V\L?K_K#59:&3RP[S'I_Q,DD M?<A[)VDVRWLO>_QB0 U^,3ZOSA-.KSQ+F+\8 ];G%QE]E]!%D4737XRKQ;=I M/&;)>I1^I\F[;[X?N6/7(Z'M4#,(:Y%$R=,R-HSNQ=U?TN RF[#SP<N><5)@ M=EMFR$EMQV]I.J51 NS<Y_I97^R%_1?CJZU5Q\>T7([D@_U)?'-SF^TM?T2S MOS+F5_LL36S;9^UH]YZP8764CA?E,1VO#TT>?,;J",N,)F\ES]TO2Q^J/T@E MW6J?NR@?W$7)+66"LBS-<FTUY$^/#LS]/OM_?SWF#G;)?O_YE_UR/!U4CO;[ MU>?]2L7*Y7Y_J>A+?SZP]ONUW_;+#G70+^VQG_O5057VEY]69\C)09GY]OOK MWYA9*;@_+X<%R$$0<A!!#E-28W4*P@E" $'6!@1A3"VZV( N%D(72]!%[B57 M:588@ZM/1ADKFQ7%8UZB\CC^K$*@S;IHKI[>Y "JV0C5;$$U2U+M!^,HSK\; MGXIX&O\W*F>KG&AEW']6-,AD73-+BV0N()F#D,S9*MDH+:*I<4YG:?;TT\?W M/[]:,-F@_G'I 7*Y"+G<K7(Q5J!MJB79JXNE9SCZ@%@>0BQOJUAEKCEC\&@< MWM\:/Q'C/$X6!7V]:(UVZ^+96L0+ /%\A'C^GQ3/7069MZU>W7!=/D>+?"$@ M7X"0+_BS?4^9?J1)0%>+@,0$% P1"H;;3Z;K0%]_#GVQ5%?(TZ,0-)<GF,D\ M$6?S\C3MS-JUJ^E4;MRDF3&8QB60E1.MUT_7-MKN8-I&0 I 88#( 40&@;,X M^5Y%2U_=W>JF],\]" 0%!$,%1,("4"9J#.>4OGY4UDWIGW40B ((!@.(R & M3"<9^S\WANR[%J9H-5OZI_X$FOL3S.2?B+/_S4(9UVT,/MF@_DD9@>;_! , M1"0 0++/T32>&*LXK^F8QO<MC,8&J_JG9 3B 8(! B(2 5:\=GK>)M,=3,P@ M,B 8-" B&P ROG\JVDIO=5,=S,X@ B 8!" B T RQ44M%1D_??PV;P$ &JS6 MQ?/U+,M"DW^"F?T3<?K?V,=:2W"BN;I<@1ZY(!*P,"1@2230T->XM--J?X,M MUT4,]8@(48"%H0 +00&C+$KR65P8A]F<A?R?!<U?G^%@H]R45P\:6.#U M0% M P0:"&'.IT]M*U>9Y'33=/D)8@4+PPH6@A56(ZO5+@?:Y)33 P\6! \6!AXL M!#SP4;;1X0"+G&IZ^,&"^,'"\(,E\<.V):,AS>YIIF;)B+?=P9*1!;&$A6$) M2[JZX+[=)2,+8@4+PPJ6=!T!E.EM+!E9$"M8&%:PI.L%LDQO:,G(AKC PG"! M)5T6V"C4VUDRLB$VL#%L8(ML $CVQI>,;(@); P3V"(38,5[BTM&-H0'-@8/ M;!$/ !G?S)*1#=X_A+J!2+J#")#I;2\9V1 0V!@@L*5[B9KZV!M:,K(A$K Q M)&!+]Q(U]+6WOV1D0Q1@8RC 1E# VUXRLB$TL#%H8"/0X.TN&=D0*]@85K 1 MK/"6EXP<"!YL##S8"'AXJTM&#L0/#H8?'.1=1J,[YNCV;KXHEBL\[2P6R5:[ MN"$<X@<'PP^.R ^.O$JYNG%*S<1NLW']2TD.Q! .AB$<D2&V2*EDWK+=@?YE M)P?B#0?#&X[(&X"DJS5:-;USLW']"U,.^!P#ZD$&D3ZV2*FD=VYWH'_ARH$( MQ<$0BK/]6L7G]/1J&,]?_W#6RE G#VDY$'XX&/QP1/QP (9;Y$_&[^DB,P;1 MM'SN)<H76?7486[\M K[YU>?J]?Z(;UQW=#4)#-$*@Z&5!R15$K=19E_'QR^ M?KEOK6)EK(.>"$&)@X$21X026*)!FQ(-NCC9NA!].!CZ<$3Z 9KN6M"IRI& M)F2:'X::!(1 Q,6 B"N"2*DH^+3@.M;6>IMH5O_0="$$<3$(XDH((LMV."Y* M1&U=-\EN!P,6 @X7 QRN!!RR<,/%>$SS_&:AH-.!MCMXM!?""Q>#%ZZ$%[* M?T194KXQJ'7U9,/ZY[XNA!,N!B=<"2=DZ4ZBF!UJ^\I)=O5?L'7!!Z113TB+ MT !ENV]IN8."="<9UG^1UH5HPL70A(N@B;,TG:N8G4AV^:F)IDP'$8*+(017 M) 17GO[*Z=RHHE9XOE@[Z&"Z I&$BR$)5R0)0$H^0[4L(VQ<_\3%@TC#Q9"& M*Y(&(*%P>FQ9PP;K^B<O'D0;'H8V/)$V !&%?-^RB W6]4]C/(@]/ Q[>")[ M ")R;-6RA*!M_=,9#V(0#\,@GL@@@("G24&S*CCC:)%5KP R?CJ\O_W9^.<L M_U=K6FYSHW^JXT%DXF'(Q)/(!%B+B:9J%F)$N_Q41U./A,C$PY"))Y))J:68 M%XN"SN95[BJ#;2\CBG8[>',31"8>ADP\D4P X08I2U3C]H63['8PG0%?XX1Z MCY/()8!PJTF;JH[79+Z#"0W$*!Z&43R140 9GR\:MBN?:+:#*0S$(QZ&1SR1 M1Z!\E^0/-&L_W0EF]4]<?(A!/ R#>"*#- ]:19VNP;K^:8H/,8B/81!?9!! MQ.-D%9IQFL1%S 1IX<&-E82@;?TWU/L0?_@8_O!%_M@H8'L/ODCZP?>(Z[FE MWH?HP\?0AR_2QT;Y!M6+E]7TOYIM_3?9^Q!G^!C.\$7. 2L;DB^H5G[YP_ MLOZ;ZWV(-'P,:?@(TJCN-VE7M;K)#FZH]R' \#& X2, 8WU!MMUY"F>T@YOI M?8@M? Q;^ BVN*;_5L%DHMD.;J7WP;?#HEX/BX*)29RI44XTW,$-]3Y$%#Z& M*'P$42S/>@]Q<6<<+HH[MBD>+Y?<RD<O6/3MG60QKCA]]:!' *&'CT$/'X$> MRZ#+XD'&IZ.KEK5\,<OIIH<V H@V @QM! C:J 4X&BC1K3++Z:8',@((,@(, M9 0(R*@'>#94HEMIEM--#UT$$%T$&+H($'11"_ \?F0)OYK3SM/L]<^S 1I* M+C@]]<!& ,%&@(&- 'E1HWHB0-65#=DX?WE#4Q*$H"/ 0$<@0D>P]?*&T<_I M6-4UCI5Q_1<Z HA# @R'!"*' !(*%R3:E1 VKO^21P!A28#!DD#$$D!"?F&S M705!V_HO=@00GP08/@E$/H&&,;>\WO(HAFSKO^P1@/4K4 4L1$@!!)36E]K5 ML,F\_LL@(<0B 89% I%% !E?%IS:U4^RJ__21PC!2(B!D5"$$3 #_EO9.02T MK?_21PA128BADE"D$E! ?B&E;0E!Z_HO@(00HH081 E%1(&F,EO73UJ>W6#] MZ;]0$D+L$F+8)139I5'H]>**"E$%V_HOEH00MX08;@D1W,*OLB@3\,5V!Y=/ M0@A;0@RVA!ALX=9;U"GX;+N#BRDA1"TAAEI"!+4TK[8H4Q/VT\'EEA#"F1"# M,Z'T!'K#TLXHGJE;VI&,\TL[FF9$$-*$&*0)1:0I585$'-)B,:^B57$?]287 M^I=YB D6Z$-5Z!/9!M!S%$V_*U,2-JY_G8>8< D_7 T_$70 %=?WP2A3LMF! M_D4?8H)U_$Q4(3]3I!ZH3RX?"BG#5?F\Q#8W^E>#B F6_C-1M?],Z6GXIM>K M*GBKC&B7/_'HH4AB@A4!351)0%.N\R$7-%V&N7Y!99LWT@&6NSC5@)4"352I M0%,N]]$D8.NW<6YZS:^N,PQ8,=!$E0PTI4?BH==>WL9YL<Q2*D9PHWU^).M9 MIB F6$+01-40-.4B@K*<+Q?QN, 57"04['<QJL%"@B:JDJ IEQ*4Q:P]UZY& MS68'78QTL."@B:HX:,HE!X'R&.OG(E1("1OO8!()UAVOQ$7(*!<?W#3$CZCJ M02YYZ&#N")<IQ]4IEPN5;Q[FJA3=Y$+_54724+ <5[%<+E;8.-15R=ED7O]U M1@(7-<=5-9?*FF^9'RF[?VJS$WZFI.=Z!(&KH./*H,MUT(D\96^8R:BZIPIR MTL&<":Z9CBN:+E=-!V1MFM*TJ^L6+QW,GN#*ZKC2ZG)M]8W]54A[JGHL[*:+ M&14(3;C"ZW+E]<U]5JFV6_UT,;L"(0I7CEVJQ[[M_%5=QU%\^A)]<)IJNA9, MX.+MN.KM<OEV(B\E2R&K6$C>[*2#LQ=<UAU7UUTN[ [(R@]+9<)N<]/!^0LL M 4]0->")5 0>R /#TROCG"6_Z%;)#+;)/#_Z=6D)XA6J%#R1:\%;0#T'%NVJ M$E)+A0OK.@J6NQCG(%2AZL$3N2#\-@'9MKS%17O0=A<C&B0H5'%X(E>'WR;B M>52,[U2I^&R\@]DG6"B>H"K%$[E4?*.,^9Q- ]LJ0\J+R)ON8(X)5HTGJ++Q M1*X;#TCX$F/+8UDVW,%J'5@KGJ"*Q1.I6OSV'JAF)$O6.UBK ZO)$U0Y>2+5 MDX>$/+WX?#HZ5G1JAHWK?S* @-7F":K</)'JS6-D;'E0-YG7_WP >O1$U1! M>B)5I,=(V?;@;K2O_QD E:J)ZA2]42J58\1\YH6JQM;%"K*.]'_9 !:]@3 M5!%[(E6QAV0]''Q4E#(!RQT\&4# \O4$5;^>2 7LMRK8<K8$;7?P= !J]L3 M5'E[(M6WWZIBVXD2-M[!LP $+'1/4)7NB53J?JN.2G+D!@\=O)")V"#?V"B^ ML3%\\_X?JB:5@.4.7KE$;!!Q;!3BV!C$X>)L.4."MCMX 1.Q0;ZQ47QC8_B& MB[3M# D;[^"%3,0& <=& 8Z- 1PNU*J\01)-IT]J)87\=/#:)N* S&.CF,?& M, \7M9+SSP8/';RXB3@@^#@H\'$PX$,>'U4M44*F.0TU48X#4HZ#HAP'0SE\ MH"V?@F#CW&JY)M9Q0-9Q4*SC8%B'#[7MC-E@G5-2$^\X(.\X*-YQ,+S#QZHD M46YRP6FJB7T<D'T<%/LX&/:QU&5*R#2GH2;:<4#:<5"TXV!HQU*9*6'CG(Z: MF,<!F<=!,8^#81Y+::9LL,XIJ8E[')!['!3W.!CNL=1GRDTN.$TU,9 #,I"# M8B 'PT"VNDP)F>8TU$0Z+D@Z#HIT' SIV"HS)6R<TU$3W[@@W[@HOG$Q?&,K MS90-UCDE-5&."U*.BZ(<%T,YMOI,N<D%_ZB*)DU!XG%1Q.-BB,=1ERDAT_PM MDYHT!%G'1;&.BV$=1V6FA(US.FKB&Q?D&Q?%-RZ&;QREF;+!.J>D)LIQ0<IQ M493C8BC'49\I-[G@--5$/"Y(/"Z*>%P,\;CJ,B5DFM-0$^NX(.NX*-9Q,:SC MJLR4L'%.1TU\XX)\XZ+XQL7PC:LT4S98YY341#D>2#DNBG)<#.6XZC/E)A>< MIIJ(QP.)QT,1CX<A'D]=IH1,<QIJ8AT/9!T/Q3H>AG4\E9D2-L[=?:Z);SR0 M;SP4WW@8OO&49LH&ZYR2FBC' RG'0U&.AZ$<3WVFW.2"TU03\7@@\7@HXO$P MQ#,XO!@<GQEJ;K^"C7,Z:N(=#^0=#\4['H9WQ%!;SI=-YCDM-7&.!W*.A^(< M#\,Y8K!MY\Q&^YR:FHC' XG'0Q&/AR$>,5HE>7.S$TY7303D@03DH0C(PQ#0 MY=7H]/)BJ"AU-ECGE-1$0#Y(0!Z*@#P, 4FQMIP\&^US:FIB'Q]D'Q_%/CZ& M?:1HVTZ?S0XX/35QD ]RD(_B(!_#05*X2A+H%B_<XZ2:R,@'R<A'D9&/(:/K MXP^GP]'QM:(4VF2>TU(3&_D@&_DH-O(Q;"0'V_:SXHT..#TU<9$/<I&/XB(? MPT5RN&VGT0T>.$4U$9(/$I*/(B0?]18#*5XEB72;&TY;3<3D@\3DHXC)QQ#3 MQ>7H].0?BO(H;)S341,K^2 K^2A6\C&L)(;:<@YM,L]IJ8F/?)"/?!0?^1@^ M$H-M.W\VVN?4U,1( <A(/HJ1? PCB=$JR9V;G7"Z:J*E *2E $5+ 8:6AI_> M#P?7I^]5/8'::)]34Q,K!2 K!2A6"E!O;I.C;3F%;O# O2M&$R,%(",%*$8* M4*]RD^-M_0U&&UQPFFIBI0!DI0#%2@'JS6YRP$K2Z58_G+J:R"D R2E D5. M(Z<3A4@/V.94U$1+ 4A+ 8J6 APMG2B%>= ZIZ0F-@I -@I0;!1@V$B(M7V, MA\US6FKBHP#DHP#%1P&&CX1@%0'\!A^<JII(*0!)*4"14H AI?/CX?#P@ZH9 M:(-U3DE-E!2"E!2@*"G 4)(4:\MYL]$^IZ8F-@I!-@I1;!1BV$B*MNW<V>R MTU,3'84@'84H.@HQ="2%JR1_;O'"O092$R6%("6%*$H*,91T>G%RJ2A]0J8Y M#35140A248BBHA!#17R@+2=.V#BGHR;^"4'^"5'\$V+XAP^U_3>2@M8Y)34Q M4 @R4(ABH!##0'RLBEY'VNR"TU03#84@#84H&@HQ-/3IZNA0V3N<8>.<CII( M* 1)*$214(@A(3'4EO-EDWE.2TW\$X+\$Z+X)\3PCQALVSFST3ZGIAX&LDR0 M@4(4 X48!A*C59(W-SOA=-5#0Y8)T5"E]E9=62N$KE?7ZM[D#-KF5-3#0)8) M,5"E+4)%# ,)D;:<-ANLUY4,]#"/94+,4^F+4!+#/$*L;2?-)O.<EGK8QS(A M]JD41FB)81\A6"4I<Z,/3E4])&29$ E56B-4Q9#0IXN/%Y=_7*B;)#79Y]34 M0T.6"=%0I3%"30P-2=&V/DUJ=,#IJ8>$+!,BH4IEA)XH$GH.5]$SKLT..#WU M$)%E0D14J8S0$T5$4KCJ.NC&YUT#/5QDF1 753HC%,5PT;*TU/HTP78VSO/; M]LK,-YGGM-1$102BHDIAA)88*BJ#/;U-TJPJ5KX*.L_+ZL2M"MKH@U-5$Q,1 MD(D(BHD(ZNZY>AG#RVS.;+7=/T7CG(Z:J(B 5$105$3P%4_764V-D)+UNI*A M)BHB(!41%!41D8J@.KRT&F\LW)N,YG>4%[$\F+\LHFR9?Y6<IED[ 5F(H%B( MB"QD >7B3Z*8':ZQ6<G7=,=F!W5!=75($((("H*("$&0G,/%>,PBO5E,%4JZ MV4E=5DW$3D :(B@:(B(-0;)>TS&-[Y7VTTTNZI+J&O@@$!$4$!$1B"!)#]D< M<#8OE&JZT0>73S6)"E(105$1$:D(.!\=9UF:J:@(+QOFST:Z] ,9B* 8B(@, M5"DJ"#C*XMM;FAG+>%OKAZ+9#LX\%H@\!(4\1$0>2+KKT57;LM5-=G!6L4"> ML5 \8XD\ TFV+B+5MFZ2W0[.'Q8(,18*8BP18L"A&L]HNBA:'ZJ"V0[.$A9( M+1:*6BR16N LQXALGF;MBR<9YM[1H4D^$%DL%+)8,K+(\I6 .XBF4^-DFCZT M+2%LG'M\3Y.,(*I8*%2Q9%2!9:R6J%L_W0*6N3M\-0D(0HF%@A)+AA)8P.%1 MZV==T2QW8X FZ4#XL%#P8<GPT2S=ARG[WABDR20N6E^<A1UP*XJ:Y 2QPT)A MAR5B1Y.<QX]%%HT+XW.4Q>71YRKZ9;,3;GE1DZP@C5@H&K$P-%*M\"N:(X*V MN4FV)C"Q03"Q4&!BB6 ",/$1G49/*IA8-LPSL:;IC@U2BHVB%%NBE%)1\6Z5 M-"^,HYAUDRIBXZ?#^]N?C7_.\G^U=[/*!A<=L+(-LHN-8A=;8A= TG,ZB:-5 MK*._JU!T@X<.2-H&B<9&$8TM$0U"T//H4;&@-0\=T+4-,HZ-8AQ;8AR,H'&B M6M 7#QTPMPW2CHVB'5NBG2V"7BL?\M?-0U[7:0FD'QM%/[9$/PA!U0[YZ^8A MKXG';9");!03V1(38015.N2OFX>\)CZW02JR451D2U34,'':O8K'WQ=SM5.G M9B<=L+L-4I&-HB);HB*<K.V/_<U..F!X!\0D&X5)MG3]!BEKZQE@LY,.&-X! MZ<E!T9.#H:?/\82FAA9Q,:ZZ('P'Q"D'A5,.!J>: V\]+V!<<1IK(BP')"P' M15@.AK : V__E(9QQ6FL";H<$+H<%'0Y&.A:!JX>O;;ZX=351& .2& .BL < M#($U1*TH12#7"W2M$CH@CCDH'',P. 9'K2HY8)>W-+&9 [*9@V(S!\-F<M1J M"&VK'TY=3:#F@*#FH$#-P8!:0]0:,L.&906BB=<<D-<<%*\Y&%Z#H]:1&3:L M@A%-V.:"V.:@L,T1L0VHMK7(BW1F5$XY(2OW@)(FH&3=2+^3"RXN2&$NBL)< MD<*:5'JE/H(R?VU>WS]*QXL9.[;C*2U_L&]6$2Y_1+.R#=-A5%IAGP=9FN>E ME=+:P?YU-(G3RIBP(6:VV#0XKDPVMAI,8^;T),UFBVDTI$41)[>Y<1]-%_3= MSO_^^#^/1[^R_PY__?$_B[3X]3/-RGNFE[_L+7^0GKO\\(O4N@QUU?:?+QO_ M]?+Q_UX^[AA]]H>@>7&]2,3C^'%:_/K;XVQJW"_]OUM[-I<?#)J,TPG;8[5A M4=SL$F_Y^;<?;XM?:T?&3*V\G"8WZ9!F<32-_QN5MV*\CVX-YB7)]Q[S>&7J MKBCF>_W^P\-#[\'NI=EMWS)-TO_[^=EP?$=GT2[K>T64C.GJ2-;[3Y#[+UOQ MQV@8Y5'.OA8K-5C'B\=763K/Q7;+EF4\94<NMY:?2?EEO_XMO,^ =>C;-'LJ M6WQ.XS%=)\[G_>LM9!N#F]N3>$K+,5 V&.Q]^<3&8?XERM-LDGY9=^S\R]>O MRP%3;KS,RD'[Y?+JXN2S]?4L2A*F_)?KXP]?!X=G9U^K[[]>7A]>?#C^>A_> M];+'F^IP!&=P1#1;1[P\AN= 7C;(.QXM*IV,?N/FWQ]6'7]#F^&V-N5A7'[[ M-QT7\3W--[7Z/;Z]F[)_16.KJ](5BXIEM G[+[Z):5:V=.W0_T9#?]>]\2>[ MCNW:N]]N'']WXMV8MN>0\8T75IHT&9!=L0Y8[UOL5]<A;F6DMDG>K^P*P].C M<N-PE^RZNQ;9M4V7>*YK.^XNL^'Y[)A,?]<F%H/AT#'-7>('KE?9KNT.'A,; M%&7&OTS*%I9)_%UFR3)'A.R9WIYM]P+'M<+0_9MI[9GF^G"YO1KLIO-YV<)@ M.6 OB:>K<5RF\M40;_B;+#/I>32^BQ.ZUN5X>'YXM'LXO+P^NMP]6W9DJ-T6 M<X>324;S:OB3T.H1+^B1'B'6RV[$[)D]EZ7BEV]6#=U>K=D-#<R]/6+>F'L. MI=_V?/-FCUB1_X,CM0EO[#W+GY ]SYUX>TY@^S\05VP5F1[=8WV-[OG^-[(7 M3NP??#[9]IL"D4,^?;R@Q4.:?5^?9EBKH&>7D1%OF=2@)AL,7=,IC?)*X=/' MLS2:&$PXTS@^Y(W5FFTP5LMS+!F79V:CS$BY\=-CX/W\Y?0QCKXLO7PICWI7 M]-*<NDX?KVEYCS3-:F'9/;^,W'975H F</KX=#X<1],J&F*N^K[PO;SC\+ZV M^>,W=JHI=^.^!<=+&90\(JJ=,2>PVHF.YN7<_7)>W139,";2Z93ESW**5C8X MHD7U).>RF_';&G<^HU&6T$EY\B_;W413]H>O&1"V-]HI;\9>SN% ,_SF1BLL M#Y<M2X6JAE6:J9D1MV\RM'J@;9,ML4FSN2PMTG$ZK>X'O(G&%+8(MFHT>ITN M"GI=S=DA:\)FR,QL7F:/T7-W$:6'MC?URXW];=DO)T])V6L_TB?@3,PU^5Q. M5*5&ST.O8;99MJ[FO?W!Y<7H^&+$\.+Z>,@^');%.,LM]=^_'A^=C@[?GQV7 M&P:7Y^]/+XX9T%33[.JK_/XRF3Y5OY/RB[,X^4XGS]O[+_NLGR9_^92#V\_8 M).%@O^K(1L+.5>]V*FL[SS/Q';+#;U_.]':,=(EL#..BZM'@,WI/IPSAEO%6 M>QSL#Y/9W&#ROMN)V-^!)=!>?M^;K^<F8]HK&ZSF*N4D>Z>,>Z54N6F0)C?Q M[2*K!*W30LXVCMG&ZN^Q^OT^RI;'N#R/E_NOSNA1-2>3S_03FH^SN.HAJXVU MZ3JSRDYI4W8^6T_YRK_VRE'=[X3>;]FAUJ)?/_+7]HUJ]S+.\@<;\^7?CO'I &_P,I\+)D end - - - 45 - <_scenarioElementFactory ver="[0, [1, [0, [0]]]]" type="ixScenarioElementFactory"> - - - - qovCoprocessor - 0 - - - Impairment - 0 - - - asrCoprocessor - 0 - - - - - - diff --git a/functest/opnfv_tests/vnf/ims/ixia/files/Registration_only_LPS.tst b/functest/opnfv_tests/vnf/ims/ixia/files/Registration_only_LPS.tst deleted file mode 100644 index a7bce95a..00000000 Binary files a/functest/opnfv_tests/vnf/ims/ixia/files/Registration_only_LPS.tst and /dev/null differ diff --git a/functest/opnfv_tests/vnf/ims/ixia/files/SIPCall.tst b/functest/opnfv_tests/vnf/ims/ixia/files/SIPCall.tst deleted file mode 100644 index 78391886..00000000 Binary files a/functest/opnfv_tests/vnf/ims/ixia/files/SIPCall.tst and /dev/null differ diff --git a/functest/opnfv_tests/vnf/ims/ixia/utils/IxChassisUtils.py b/functest/opnfv_tests/vnf/ims/ixia/utils/IxChassisUtils.py deleted file mode 100644 index 973e0264..00000000 --- a/functest/opnfv_tests/vnf/ims/ixia/utils/IxChassisUtils.py +++ /dev/null @@ -1,150 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 IXIA and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -import httplib2 -import json -import logging - - -okStates = [200, 201, 202] -states = [ - 'Queued', - 'In Progress', - 'Manual Step Required', - 'Error', - 'Finished', - 'Aborted', - 'Retried', - 'IRebooting', - 'Force Continue', - 'Pending', - ] -notStartedState = 'Not_Started' -errorStates = ['Error', 'Aborted', 'Force Continue'] -finishedStates = ['Manual Step Required', 'Finished'] - -logger = logging.getLogger(__name__) - - -class TestFailedError(Exception): - pass - - -class ChassisRestAPI: - @staticmethod - def postWithPayload(loginUrl, payload=None): - urlHeadersJson = {'content-type': 'application/json'} - try: - h = httplib2.Http('.cache', - disable_ssl_certificate_validation=True) - if payload is None: - logger.debug('POST: ' + loginUrl) - (response, content) = h.request(loginUrl, 'POST', '', - urlHeadersJson) - logger.debug(content) - else: - logger.debug('POST: ' + loginUrl + ' <- Data: ' + str(payload)) - (response, content) = h.request(loginUrl, 'POST', - body=payload, - headers=urlHeadersJson) - logger.debug(response) - logger.debug(content) - except Exception, e: - raise Exception('Got an error code: ', e) - return content - - @staticmethod - def postWithPayloadAndHeaders(loginUrl, urlHeadersJson, - payload=None): - try: - h = httplib2.Http('.cache', - disable_ssl_certificate_validation=True) - if payload is None: - logger.debug('POST: ' + loginUrl) - (response, content) = h.request(loginUrl, 'POST', '', - urlHeadersJson) - else: - logger.debug('POST: ' + loginUrl + ' <- Data: ' + str(payload)) - (response, content) = h.request(loginUrl, 'POST', - body=payload, - headers=urlHeadersJson) - except Exception, e: - raise Exception('Got an error code: ', e) - return content - - @staticmethod - def postOperation(url, apiKey, payload=''): - urlHeadersJson = {'content-type': 'application/json', - 'X-Api-Key': '%s' % str(apiKey)} - try: - h = httplib2.Http('.cache', - disable_ssl_certificate_validation=True) - if payload is None: - logger.debug('POST: ' + url) - (response, content) = h.request(url, 'POST', - json.dumps(payload), - urlHeadersJson) - else: - logger.debug('POST: ' + url + ' <- Data: ' + str(payload)) - (response, content) = h.request(url, 'POST', - json.dumps(payload), - headers=urlHeadersJson) - except Exception, e: - raise Exception('Got an error code: ', e) - return content - - @staticmethod - def patch(url, payload, apiKey): - urlHeadersJson = {'content-type': 'application/json', - 'X-Api-Key': '%s' % str(apiKey)} - try: - h = httplib2.Http('.cache', - disable_ssl_certificate_validation=True) - logger.debug('PATCH: ' + url + ' <-- Attribute: ' + - str(payload)) - (response, content) = h.request(url, 'PATCH', - json.dumps(payload), - urlHeadersJson) - except Exception, e: - - # print (response, content) - - raise Exception('Got an error code: ', e) - return content - - @staticmethod - def delete(url, apiKey): - urlHeadersJson = {'content-type': 'application/json', - 'X-Api-Key': '%s' % str(apiKey)} - try: - h = httplib2.Http('.cache', - disable_ssl_certificate_validation=True) - (response, content) = h.request(url, 'DELETE', '', urlHeadersJson) - logger.debug('DELETE: ' + url) - except Exception, e: - raise Exception('Got an error code: ', e) - if response.status not in okStates: - raise TestFailedError(json.loads(content)['error']) - return json.loads(content) - - @staticmethod - def getWithHeaders(url, apiKey): - urlHeadersJson = {'content-type': 'application/json', - 'X-Api-Key': '%s' % str(apiKey)} - try: - h = httplib2.Http('.cache', - disable_ssl_certificate_validation=True) - logger.debug('GET: ' + url) - (response, content) = h.request(url, 'GET', '', urlHeadersJson) - except Exception, e: - raise Exception('Got an error code: ', e) - if response.status not in okStates: - raise TestFailedError(json.loads(content)['error']) - output = json.loads(content) - return output diff --git a/functest/opnfv_tests/vnf/ims/ixia/utils/IxLoadUtils.py b/functest/opnfv_tests/vnf/ims/ixia/utils/IxLoadUtils.py deleted file mode 100644 index 50dfbc66..00000000 --- a/functest/opnfv_tests/vnf/ims/ixia/utils/IxLoadUtils.py +++ /dev/null @@ -1,398 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 IXIA and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -import requests -import sys -import time -import logging - -from functest.opnfv_tests.vnf.ims.ixia.utils import IxRestUtils - - -kActionStateFinished = 'finished' -kActionStatusSuccessful = 'Successful' -kActionStatusError = 'Error' -kTestStateUnconfigured = 'Unconfigured' - -logger = logging.getLogger(__name__) - - -def stripApiAndVersionFromURL(url): - - # remove the slash (if any) at the beginning of the url - - if url[0] == '/': - url = url[1:] - - urlElements = url.split('/') - if 'api' in url: - - # strip the api/v0 part of the url - - urlElements = urlElements[2:] - - return '/'.join(urlElements) - - -def waitForActionToFinish(connection, replyObj, actionUrl): - """ - This method waits for an action to finish executing. after a POST request - is sent in order to start an action, The HTTP reply will contain, - in the header, a 'location' field, that contains an URL. - The action URL contains the status of the action. we perform a GET on that - URL every 0.5 seconds until the action finishes with a success. - If the action fails, we will throw an error and - print the action's error message. - """ - - actionResultURL = replyObj.headers.get('location') - if actionResultURL: - actionResultURL = stripApiAndVersionFromURL(actionResultURL) - actionFinished = False - - while not actionFinished: - actionStatusObj = connection.httpGet(actionResultURL) - - if actionStatusObj.state == kActionStateFinished: - if actionStatusObj.status == kActionStatusSuccessful: - actionFinished = True - else: - errorMsg = "Error while executing action '%s'." \ - % actionUrl - - if actionStatusObj.status == kActionStatusError: - errorMsg += actionStatusObj.error - - print errorMsg - - sys.exit(1) - else: - time.sleep(0.1) - - -def performGenericOperation(connection, url, payloadDict): - """ - This will perform a generic operation on the given url, - it will wait for it to finish. - """ - - data = IxRestUtils.formatDictToJSONPayload(payloadDict) - reply = connection.httpPost(url=url, data=data) - - waitForActionToFinish(connection, reply, url) - - return reply - - -def performGenericPost(connection, listUrl, payloadDict): - """ - This will perform a generic POST method on a given url - """ - - data = IxRestUtils.formatDictToJSONPayload(payloadDict) - - reply = connection.httpPost(url=listUrl, data=data) - try: - newObjPath = reply.headers['location'] - except: - raise Exception('Location header is not present. \ - Please check if the action was created successfully.') - - newObjID = newObjPath.split('/')[-1] - return newObjID - - -def performGenericDelete(connection, listUrl, payloadDict): - """ - This will perform a generic DELETE method on a given url - """ - - data = IxRestUtils.formatDictToJSONPayload(payloadDict) - - reply = connection.httpDelete(url=listUrl, data=data) - return reply - - -def performGenericPatch(connection, url, payloadDict): - """ - This will perform a generic PATCH method on a given url - """ - - data = IxRestUtils.formatDictToJSONPayload(payloadDict) - - reply = connection.httpPatch(url=url, data=data) - return reply - - -def createSession(connection, ixLoadVersion): - """ - This method is used to create a new session. - It will return the url of the newly created session - """ - - sessionsUrl = 'sessions' - data = {'ixLoadVersion': ixLoadVersion} - - sessionId = performGenericPost(connection, sessionsUrl, data) - - newSessionUrl = '%s/%s' % (sessionsUrl, sessionId) - startSessionUrl = '%s/operations/start' % newSessionUrl - - # start the session - - performGenericOperation(connection, startSessionUrl, {}) - - logger.debug('Created session no %s' % sessionId) - - return newSessionUrl - - -def deleteSession(connection, sessionUrl): - """ - This method is used to delete an existing session. - """ - - deleteParams = {} - performGenericDelete(connection, sessionUrl, deleteParams) - - -def uploadFile(connection, url, fileName, uploadPath, overwrite=True): - headers = {'Content-Type': 'multipart/form-data'} - params = {'overwrite': overwrite, 'uploadPath': uploadPath} - - logger.debug('Uploading...') - try: - with open(fileName, 'rb') as f: - resp = requests.post(url, data=f, params=params, - headers=headers) - except requests.exceptions.ConnectionError, e: - raise Exception('Upload file failed. Received connection error. \ - One common cause for this error is the size of the \ - file to be uploaded.The web server sets a limit of 1GB\ - for the uploaded file size. \ - Received the following error: %s' % str(e)) - except IOError, e: - raise Exception('Upload file failed. Received IO error: %s' - % str(e)) - except Exception: - raise Exception('Upload file failed. Received the following error: %s' - % str(e)) - else: - logger.debug('Upload file finished.') - logger.debug('Response status code %s' % resp.status_code) - logger.debug('Response text %s' % resp.text) - - -def loadRepository(connection, sessionUrl, rxfFilePath): - """ - This method will perform a POST request to load a repository. - """ - - loadTestUrl = '%s/ixload/test/operations/loadTest' % sessionUrl - data = {'fullPath': rxfFilePath} - - performGenericOperation(connection, loadTestUrl, data) - - -def saveRxf(connection, sessionUrl, rxfFilePath): - """ - This method saves the current rxf to the disk of the machine on - which the IxLoad instance is running. - """ - - saveRxfUrl = '%s/ixload/test/operations/saveAs' % sessionUrl - rxfFilePath = rxfFilePath.replace('\\', '\\\\') - data = {'fullPath': rxfFilePath, 'overWrite': 1} - - performGenericOperation(connection, saveRxfUrl, data) - - -def runTest(connection, sessionUrl): - """ - This method is used to start the currently loaded test. - After starting the 'Start Test' action, wait for the action to complete. - """ - - startRunUrl = '%s/ixload/test/operations/runTest' % sessionUrl - data = {} - - performGenericOperation(connection, startRunUrl, data) - - -def getTestCurrentState(connection, sessionUrl): - """ - This method gets the test current state. - (for example - running, unconfigured, ..) - """ - - activeTestUrl = '%s/ixload/test/activeTest' % sessionUrl - testObj = connection.httpGet(activeTestUrl) - - return testObj.currentState - - -def getTestRunError(connection, sessionUrl): - """ - This method gets the error that appeared during the last test run. - If no error appeared (the test ran successfully), - the return value will be 'None'. - """ - - activeTestUrl = '%s/ixload/test/activeTest' % sessionUrl - testObj = connection.httpGet(activeTestUrl) - - return testObj.testRunError - - -def waitForTestToReachUnconfiguredState(connection, sessionUrl): - """ - This method waits for the current test to reach the 'Unconfigured' state. - """ - - while getTestCurrentState(connection, sessionUrl) \ - != kTestStateUnconfigured: - time.sleep(0.1) - - -def pollStats(connection, sessionUrl, watchedStatsDict, pollingInterval=4): - """ - This method is used to poll the stats. - Polling stats is per request but this method does a continuous poll. - """ - - statSourceList = watchedStatsDict.keys() - statsDict = {} - - collectedTimestamps = {} - testIsRunning = True - - # check stat sources - - for statSource in statSourceList[:]: - statSourceUrl = '%s/ixload/stats/%s/values' % (sessionUrl, statSource) - statSourceReply = connection.httpRequest('GET', statSourceUrl) - if statSourceReply.status_code != 200: - logger.debug("Warning - Stat source '%s' does not exist. \ - Will ignore it." % statSource) - statSourceList.remove(statSource) - - # check the test state, and poll stats while the test is still running - - while testIsRunning: - - # the polling interval is configurable. - # by default, it's set to 4 seconds - - time.sleep(pollingInterval) - - for statSource in statSourceList: - valuesUrl = '%s/ixload/stats/%s/values' % (sessionUrl, statSource) - - valuesObj = connection.httpGet(valuesUrl) - valuesDict = valuesObj.getOptions() - - # get just the new timestamps - that were not previously - # retrieved in another stats polling iteration - - newTimestamps = [int(timestamp) for timestamp in - valuesDict.keys() if timestamp - not in collectedTimestamps.get(statSource, - [])] - newTimestamps.sort() - - for timestamp in newTimestamps: - timeStampStr = str(timestamp) - - collectedTimestamps.setdefault( - statSource, []).append(timeStampStr) - - timestampDict = statsDict.setdefault( - statSource, {}).setdefault(timestamp, {}) - - # save the values for the current timestamp, - # and later print them - - logger.info(' -- ') - for (caption, value) in \ - valuesDict[timeStampStr].getOptions().items(): - if caption in watchedStatsDict[statSource]: - logger.info(' %s -> %s' % (caption, value)) - timestampDict[caption] = value - - testIsRunning = getTestCurrentState(connection, sessionUrl) \ - == 'Running' - - logger.debug('Stopped receiving stats.') - return timestampDict - - -def clearChassisList(connection, sessionUrl): - """ - This method is used to clear the chassis list. - After execution no chassis should be available in the chassisListself. - """ - - chassisListUrl = '%s/ixload/chassischain/chassisList' % sessionUrl - deleteParams = {} - performGenericDelete(connection, chassisListUrl, deleteParams) - - -def configureLicenseServer(connection, sessionUrl, licenseServerIp): - """ - This method is used to clear the chassis list. - After execution no chassis should be available in the chassisList. - """ - - chassisListUrl = '%s/ixload/preferences' % sessionUrl - patchParams = {'licenseServer': licenseServerIp} - performGenericPatch(connection, chassisListUrl, patchParams) - - -def addChassisList(connection, sessionUrl, chassisList): - """ - This method is used to add one or more chassis to the chassis list. - """ - - chassisListUrl = '%s/ixload/chassisChain/chassisList' % sessionUrl - - for chassisName in chassisList: - data = {'name': chassisName} - chassisId = performGenericPost(connection, chassisListUrl, data) - - # refresh the chassis - - refreshConnectionUrl = '%s/%s/operations/refreshConnection' \ - % (chassisListUrl, chassisId) - performGenericOperation(connection, refreshConnectionUrl, {}) - - -def assignPorts(connection, sessionUrl, portListPerCommunity): - """ - This method is used to assign ports from a connected chassis - to the required NetTraffics. - """ - - communtiyListUrl = '%s/ixload/test/activeTest/communityList' \ - % sessionUrl - - communityList = connection.httpGet(url=communtiyListUrl) - - for community in communityList: - portListForCommunity = portListPerCommunity.get(community.name) - - portListUrl = '%s/%s/network/portList' % (communtiyListUrl, - community.objectID) - - if portListForCommunity: - for portTuple in portListForCommunity: - (chassisId, cardId, portId) = portTuple - paramDict = {'chassisId': chassisId, 'cardId': cardId, - 'portId': portId} - - performGenericPost(connection, portListUrl, paramDict) diff --git a/functest/opnfv_tests/vnf/ims/ixia/utils/IxRestUtils.py b/functest/opnfv_tests/vnf/ims/ixia/utils/IxRestUtils.py deleted file mode 100644 index 41c23dc5..00000000 --- a/functest/opnfv_tests/vnf/ims/ixia/utils/IxRestUtils.py +++ /dev/null @@ -1,193 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 IXIA and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -from urlparse import urljoin -import requests - - -def getConnection(server, port): - """ - Gets a Connection instance, that will be used to - make the HTTP requests to the application - """ - connectionUrl = 'http://%s:%s/' % (server, port) - - conn = Connection(connectionUrl, 'v0') - return conn - - -def formatDictToJSONPayload(dictionary): - """ - Converts a given python dict instance to a string - JSON payload that can be sent to a REST API. - """ - jsonPayload = '{' - optionsList = [] - for (key, val) in dictionary.items(): - valStr = str(val) - if type(val) is str: - valStr = '"%s"' % val - if type(val) is bool: - valStr = valStr.lower() - optionsList.append('"%s":%s' % (key, valStr)) - - jsonPayload += ','.join(optionsList) - jsonPayload += '}' - - return jsonPayload - - -class Connection(object): - - """ - Class that executes the HTTP requests to the application instance. - It handles creating the HTTP session and executing HTTP methods. - """ - - kHeaderContentType = 'content-type' - kContentJson = 'application/json' - - def __init__(self, siteUrl, apiVersion): - self.httpSession = None - - self.url = Connection.urljoin(siteUrl, 'api') - self.url = Connection.urljoin(self.url, apiVersion) - - def _getHttpSession(self): - """ - This is a lazy initializer for the HTTP session. - It does not need to be active until it is required. - """ - - if self.httpSession is None: - self.httpSession = requests.Session() - return self.httpSession - - @classmethod - def urljoin(cls, base, end): - """ Join two URLs. If the second URL is absolute, the base is ignored. - - Use this instead of urlparse.urljoin directly so that we can customize - its behavior if necessary. - Currently differs in that it - - 1. appends a / to base if not present. - 2. casts end to a str as a convenience - """ - - if base and not base.endswith('/'): - base = base + '/' - return urljoin(base, str(end)) - - def httpRequest(self, method, url='', data='', params={}, headers={}): - """ - Method for making a HTTP request. - The method type (GET, POST, PATCH, DELETE) will be sent as a parameter. - Along with the url and request data. The HTTP response is returned - """ - - headers[Connection.kHeaderContentType] = Connection.kContentJson - - absUrl = Connection.urljoin(self.url, url) - result = self._getHttpSession().request(method, - absUrl, - data=str(data), - params=params, - headers=headers) - return result - - def httpGet(self, url='', data='', params={}, headers={}): - """ - Method for calling HTTP GET. - This will return a WebObject that has the fields returned - in JSON format by the GET operation. - """ - - reply = self.httpRequest('GET', url, data, params, headers) - return _WebObject(reply.json()) - - def httpPost(self, url='', data='', params={}, headers={}): - """ - Method for calling HTTP POST. Will return the HTTP reply. - """ - - return self.httpRequest('POST', url, data, params, headers) - - def httpPatch(self, url='', data='', params={}, headers={}): - """ - Method for calling HTTP PATCH. Will return the HTTP reply. - """ - - return self.httpRequest('PATCH', url, data, params, headers) - - def httpDelete(self, url='', data='', params={}, headers={}): - """ - Method for calling HTTP DELETE. Will return the HTTP reply. - """ - - return self.httpRequest('DELETE', url, data, params, headers) - - -def _WebObject(value): - """ - Method used for creating a wrapper object corresponding to the JSON string - received on a GET request. - """ - - if isinstance(value, dict): - result = WebObject(**value) - elif isinstance(value, list): - result = WebList(entries=value) - else: - result = value - return result - - -class WebList(list): - - """ - Using this class a JSON list will be transformed - in a list of WebObject instances. - """ - - def __init__(self, entries=[]): - """ - Create a WebList from a list of items that - are processed by the _WebObject function - """ - - for item in entries: - self.append(_WebObject(item)) - - -class WebObject(object): - - """ - A WebObject instance will have its fields set to correspond to - the JSON format received on a GET request. - """ - - def __init__(self, **entries): - """ - Create a WebObject instance by providing a dict having a - property - value structure. - """ - - self.jsonOptions = {} - for (key, value) in entries.iteritems(): - webObj = _WebObject(value) - self.jsonOptions[key] = webObj - self.__dict__[key] = webObj - - def getOptions(self): - ''' - Get the JSON dictionary which represents the WebObject Instance - ''' - - return self.jsonOptions diff --git a/functest/opnfv_tests/vnf/ims/ixia/utils/__init__.py b/functest/opnfv_tests/vnf/ims/ixia/utils/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/functest/opnfv_tests/vnf/ims/orchestra.yaml b/functest/opnfv_tests/vnf/ims/orchestra.yaml deleted file mode 100644 index f81f55fb..00000000 --- a/functest/opnfv_tests/vnf/ims/orchestra.yaml +++ /dev/null @@ -1,68 +0,0 @@ ---- -tenant_images: - orchestrator: - ubuntu-14.04-server-cloudimg-amd64-disk1: - /home/opnfv/functest/images/trusty-server-cloudimg-amd64-disk1.img - orchestra_openims: - openims: /home/opnfv/functest/images/img - orchestra_clearwaterims: - ubuntu-14.04-server-cloudimg-amd64-disk1: - /home/opnfv/functest/images/trusty-server-cloudimg-amd64-disk1.img -mano: - name: OpenBaton - version: '3.2.0' - requirements: - flavor: - name: openbaton - ram_min: 4096 - disk: 5 - vcpus: 2 - image: 'ubuntu-14.04-server-cloudimg-amd64-disk1' - bootstrap: - url: http://get.openbaton.org/bootstraps/bootstrap_3.2.0_opnfv/bootstrap - config: - url: - http://get.openbaton.org/bootstraps/bootstrap_3.2.0_opnfv/bootstrap-config-file - gvnfm: - userdata: - url: - https://raw.githubusercontent.com/openbaton/generic-vnfm/3.2.0/src/main/resources/user-data.sh - credentials: - username: admin - password: openbaton - -orchestra_openims: - name: OpenIMS - descriptor: - url: - http://marketplace.openbaton.org:8080/api/v1/nsds/fokus/OpenImsCore/3.2.0/json - requirements: - flavor: - name: m1.small - ram_min: 2048 - disk: 5 - vcpus: 2 - test: - scscf: - ports: [3870, 6060] - pcscf: - ports: [4060] - icscf: - ports: [3869, 5060] - fhoss: - ports: [3868] - bind9: - ports: [] - -orchestra_clearwaterims: - name: Clearwater IMS - descriptor: - url: - http://marketplace.openbaton.org:8080/api/v1/nsds/fokus/ClearwaterIMS/3.2.0/json - requirements: - flavor: - name: m1.small - ram_min: 2048 - disk: 5 - vcpus: 2 - test: diff --git a/functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py b/functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py deleted file mode 100644 index 2d248b2e..00000000 --- a/functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py +++ /dev/null @@ -1,574 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2016 Orange and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -"""Orchestra Clearwater IMS testcase implementation.""" - -import json -import logging -import os -import socket -import time - -import pkg_resources -import yaml - -from functest.core import vnf -from functest.opnfv_tests.openstack.snaps import snaps_utils -from functest.utils import config - -from org.openbaton.cli.errors.errors import NfvoException -from org.openbaton.cli.agents.agents import MainAgent -from snaps.config.flavor import FlavorConfig -from snaps.config.image import ImageConfig -from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig -from snaps.config.router import RouterConfig -from snaps.config.security_group import ( - Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig) -from snaps.config.vm_inst import FloatingIpConfig -from snaps.config.vm_inst import VmInstanceConfig -from snaps.openstack.utils import keystone_utils -from snaps.openstack.create_flavor import OpenStackFlavor -from snaps.openstack.create_image import OpenStackImage -from snaps.openstack.create_instance import OpenStackVmInstance -from snaps.openstack.create_network import OpenStackNetwork -from snaps.openstack.create_router import OpenStackRouter -from snaps.openstack.create_security_group import OpenStackSecurityGroup - - -__author__ = "Pauls, Michael " -# ---------------------------------------------------------- -# -# UTILS -# -# ----------------------------------------------------------- - - -def get_config(parameter, file_path): - """ - Get config parameter. - - Returns the value of a given parameter in file.yaml - parameter must be given in string format with dots - Example: general.openstack.image_name - """ - with open(file_path) as config_file: - file_yaml = yaml.safe_load(config_file) - config_file.close() - value = file_yaml - for element in parameter.split("."): - value = value.get(element) - if value is None: - raise ValueError("The parameter %s is not defined in" - " reporting.yaml", parameter) - return value - - -def servertest(host, port): - """Method to test that a server is reachable at IP:port""" - args = socket.getaddrinfo(host, port, socket.AF_INET, socket.SOCK_STREAM) - for family, socktype, proto, _, sockaddr in args: - sock = socket.socket(family, socktype, proto) - try: - sock.connect(sockaddr) - except socket.error: - return False - else: - sock.close() - return True - - -def get_userdata(orchestrator=dict): - """Build userdata for Open Baton machine""" - userdata = "#!/bin/bash\n" - userdata += "echo \"Executing userdata...\"\n" - userdata += "set -x\n" - userdata += "set -e\n" - userdata += "echo \"Install curl...\"\n" - userdata += "apt-get install curl\n" - userdata += "echo \"Inject public key...\"\n" - userdata += ("echo \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuPXrV3" - "geeHc6QUdyUr/1Z+yQiqLcOskiEGBiXr4z76MK4abiFmDZ18OMQlc" - "fl0p3kS0WynVgyaOHwZkgy/DIoIplONVr2CKBKHtPK+Qcme2PVnCtv" - "EqItl/FcD+1h5XSQGoa+A1TSGgCod/DPo+pes0piLVXP8Ph6QS1k7S" - "ic7JDeRQ4oT1bXYpJ2eWBDMfxIWKZqcZRiGPgMIbJ1iEkxbpeaAd9O" - "4MiM9nGCPESmed+p54uYFjwEDlAJZShcAZziiZYAvMZhvAhe6USljc" - "7YAdalAnyD/jwCHuwIrUw/lxo7UdNCmaUxeobEYyyFA1YVXzpNFZya" - "XPGAAYIJwEq/ openbaton@opnfv\" >> /home/ubuntu/.ssh/aut" - "horized_keys\n") - userdata += "echo \"Download bootstrap...\"\n" - userdata += ("curl -s %s " - "> ./bootstrap\n" % orchestrator['bootstrap']['url']) - userdata += ("curl -s %s" "> ./config_file\n" % - orchestrator['bootstrap']['config']['url']) - userdata += ("echo \"Disable usage of mysql...\"\n") - userdata += "sed -i s/mysql=.*/mysql=no/g /config_file\n" - userdata += "echo \"Set autostart of components to 'false'\"\n" - userdata += "export OPENBATON_COMPONENT_AUTOSTART=false\n" - userdata += "echo \"Execute bootstrap...\"\n" - bootstrap = "sh ./bootstrap release -configFile=./config_file" - userdata += bootstrap + "\n" - userdata += "echo \"Setting 'nfvo.plugin.timeout' to '300000'\"\n" - userdata += ("echo \"nfvo.plugin.timeout=600000\" >> " - "/etc/openbaton/openbaton-nfvo.properties\n") - userdata += ( - "wget %s -O /etc/openbaton/openbaton-vnfm-generic-user-data.sh\n" % - orchestrator['gvnfm']['userdata']['url']) - userdata += "sed -i '113i"'\ \ \ \ '"sleep 60' " \ - "/etc/openbaton/openbaton-vnfm-generic-user-data.sh\n" - userdata += ("sed -i s/nfvo.marketplace.port=8082/nfvo.marketplace." - "port=8080/g /etc/openbaton/openbaton-nfvo.properties\n") - userdata += "echo \"Starting NFVO\"\n" - userdata += "service openbaton-nfvo restart\n" - userdata += "echo \"Starting Generic VNFM\"\n" - userdata += "service openbaton-vnfm-generic restart\n" - userdata += "echo \"...end of userdata...\"\n" - return userdata - - -class ClearwaterImsVnf(vnf.VnfOnBoarding): - """Clearwater IMS VNF deployed with openBaton orchestrator""" - - # logger = logging.getLogger(__name__) - - def __init__(self, **kwargs): - if "case_name" not in kwargs: - kwargs["case_name"] = "orchestra_clearwaterims" - super(ClearwaterImsVnf, self).__init__(**kwargs) - self.logger = logging.getLogger("functest.ci.run_tests.orchestra") - self.logger.info("kwargs %s", (kwargs)) - - self.case_dir = pkg_resources.resource_filename( - 'functest', 'opnfv_tests/vnf/ims/') - self.data_dir = getattr(config.CONF, 'dir_ims_data') - self.test_dir = getattr(config.CONF, 'dir_repo_vims_test') - self.created_resources = [] - self.logger.info("%s VNF onboarding test starting", self.case_name) - - try: - self.config = getattr( - config.CONF, 'vnf_{}_config'.format(self.case_name)) - except BaseException: - raise Exception("Orchestra VNF config file not found") - - config_file = self.case_dir + self.config - - self.mano = dict( - get_config("mano", config_file), - details={} - ) - self.logger.debug("Orchestrator configuration %s", self.mano) - - self.details['orchestrator'] = dict( - name=self.mano['name'], - version=self.mano['version'], - status='ERROR', - result='' - ) - - self.vnf = dict( - get_config(self.case_name, config_file), - ) - self.logger.debug("VNF configuration: %s", self.vnf) - - self.details['vnf'] = dict( - name=self.vnf['name'], - ) - - self.details['test_vnf'] = dict( - name=self.case_name, - ) - - # Orchestra base Data directory creation - if not os.path.exists(self.data_dir): - os.makedirs(self.data_dir) - - self.images = get_config("tenant_images.orchestrator", config_file) - self.images.update( - get_config( - "tenant_images.%s" % - self.case_name, - config_file)) - self.creds = None - self.orchestra_router = None - - def prepare(self): - """Prepare testscase (Additional pre-configuration steps).""" - super(ClearwaterImsVnf, self).prepare() - - self.logger.info("Additional pre-configuration steps") - - public_auth_url = keystone_utils.get_endpoint( - self.snaps_creds, 'identity') - self.creds = { - "tenant": self.snaps_creds.project_name, - "username": self.snaps_creds.username, - "password": self.snaps_creds.password, - "auth_url": public_auth_url} - self.prepare_images() - self.prepare_flavor() - self.prepare_security_groups() - self.prepare_network() - - def prepare_images(self): - """Upload images if they doen't exist yet""" - self.logger.info("Upload images if they doen't exist yet") - for image_name, image_file in self.images.iteritems(): - self.logger.info("image: %s, file: %s", image_name, image_file) - if image_file and image_name: - image = OpenStackImage( - self.snaps_creds, - ImageConfig(name=image_name, - image_user='cloud', - img_format='qcow2', - image_file=image_file, - public=True)) - image.create() - self.created_resources.append(image) - - def prepare_security_groups(self): - """Create Open Baton security group if it doesn't exist yet""" - self.logger.info( - "Creating security group for Open Baton if not yet existing...") - sg_rules = list() - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="orchestra-sec-group-allowall-{}".format( - self.uuid), - direction=Direction.ingress, - protocol=Protocol.tcp, - port_range_min=1, - port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="orchestra-sec-group-allowall-{}".format( - self.uuid), - direction=Direction.egress, - protocol=Protocol.tcp, - port_range_min=1, - port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="orchestra-sec-group-allowall-{}".format( - self.uuid), - direction=Direction.ingress, - protocol=Protocol.udp, - port_range_min=1, - port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="orchestra-sec-group-allowall-{}".format( - self.uuid), - direction=Direction.egress, - protocol=Protocol.udp, - port_range_min=1, - port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="orchestra-sec-group-allowall-{}".format( - self.uuid), - direction=Direction.ingress, - protocol=Protocol.icmp)) - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="orchestra-sec-group-allowall-{}".format( - self.uuid), - direction=Direction.egress, - protocol=Protocol.icmp)) - security_group = OpenStackSecurityGroup( - self.snaps_creds, - SecurityGroupConfig( - name="orchestra-sec-group-allowall-{}".format( - self.uuid), - rule_settings=sg_rules)) - security_group_info = security_group.create() - self.created_resources.append(security_group) - self.mano['details']['sec_group'] = security_group_info.name - self.logger.info( - "Security group orchestra-sec-group-allowall prepared") - - def prepare_flavor(self): - """Create Open Baton flavor if it doesn't exist yet""" - self.logger.info( - "Create Flavor for Open Baton NFVO if not yet existing") - - flavor_settings = FlavorConfig( - name=self.mano['requirements']['flavor']['name'], - ram=self.mano['requirements']['flavor']['ram_min'], - disk=self.mano['requirements']['flavor']['disk'], - vcpus=self.mano['requirements']['flavor']['vcpus']) - flavor = OpenStackFlavor(self.snaps_creds, flavor_settings) - flavor_info = flavor.create() - self.created_resources.append(flavor) - self.mano['details']['flavor'] = {} - self.mano['details']['flavor']['name'] = flavor_settings.name - self.mano['details']['flavor']['id'] = flavor_info.id - - def prepare_network(self): - """Create network/subnet/router if they doen't exist yet""" - self.logger.info( - "Creating network/subnet/router if they doen't exist yet...") - subnet_settings = SubnetConfig( - name='{}_subnet-{}'.format(self.case_name, self.uuid), - cidr="192.168.100.0/24") - network_settings = NetworkConfig( - name='{}_net-{}'.format(self.case_name, self.uuid), - subnet_settings=[subnet_settings]) - orchestra_network = OpenStackNetwork( - self.snaps_creds, network_settings) - orchestra_network_info = orchestra_network.create() - self.mano['details']['network'] = {} - self.mano['details']['network']['id'] = orchestra_network_info.id - self.mano['details']['network']['name'] = orchestra_network_info.name - self.mano['details']['external_net_name'] = snaps_utils.\ - get_ext_net_name(self.snaps_creds) - self.created_resources.append(orchestra_network) - self.orchestra_router = OpenStackRouter( - self.snaps_creds, - RouterConfig( - name='{}_router-{}'.format(self.case_name, self.uuid), - external_gateway=self.mano['details']['external_net_name'], - internal_subnets=[ - subnet_settings.name])) - self.orchestra_router.create() - self.created_resources.append(self.orchestra_router) - self.logger.info("Created network and router for Open Baton NFVO...") - - def get_vim_descriptor(self): - """"Create VIM descriptor to be used for onboarding""" - self.logger.info( - "Building VIM descriptor with PoP creds: %s", - self.creds) - self.logger.debug("VIM project/tenant id: %s", - self.snaps_creds.project_name) - keystone = keystone_utils.keystone_client(self.snaps_creds) - project_id = keystone_utils.get_project( - keystone=keystone, project_name=self.snaps_creds.project_name).id - vim_json = { - "name": "vim-instance", - "authUrl": self.creds.get("auth_url"), - "tenant": project_id, - "username": self.creds.get("username"), - "password": self.creds.get("password"), - "securityGroups": [ - self.mano['details']['sec_group'] - ], - "type": "openstack", - "location": { - "name": "opnfv", - "latitude": "52.525876", - "longitude": "13.314400" - } - } - self.logger.info("Built VIM descriptor: %s", vim_json) - return vim_json - - def deploy_orchestrator(self): - self.logger.info("Deploying Open Baton...") - self.logger.info("Details: %s", self.mano['details']) - start_time = time.time() - - self.logger.info("Creating orchestra instance...") - userdata = get_userdata(self.mano) - self.logger.info("flavor: %s\n" - "image: %s\n" - "network_id: %s\n", - self.mano['details']['flavor']['name'], - self.mano['requirements']['image'], - self.mano['details']['network']['id']) - self.logger.debug("userdata: %s\n", userdata) - # setting up image - image_settings = ImageConfig( - name=self.mano['requirements']['image'], - image_user='ubuntu', - exists=True) - # setting up port - port_settings = PortConfig( - name='{}_port-{}'.format(self.case_name, self.uuid), - network_name=self.mano['details']['network']['name']) - - # build configuration of vm - orchestra_settings = VmInstanceConfig( - name=self.case_name, - flavor=self.mano['details']['flavor']['name'], - port_settings=[port_settings], - security_group_names=[self.mano['details']['sec_group']], - floating_ip_settings=[FloatingIpConfig( - name='orchestra_fip-{}'.format(self.uuid), - port_name=port_settings.name, - router_name=self.orchestra_router.router_settings.name)], - userdata=str(userdata)) - orchestra_vm = OpenStackVmInstance( - self.snaps_creds, orchestra_settings, image_settings) - orchestra_vm.create() - self.mano['details']['fip'] = orchestra_vm.get_floating_ip() - self.created_resources.append(orchestra_vm) - self.mano['details']['id'] = orchestra_vm.get_vm_info()['id'] - self.logger.info( - "Created orchestra instance: %s", self.mano['details']['id']) - self.logger.info("Waiting for Open Baton NFVO to be up and running...") - timeout = 0 - while timeout < 20: - if servertest( - self.mano['details']['fip'].ip, - "8080"): - break - else: - self.logger.info( - "Open Baton NFVO is not started yet (%ss)", - (timeout * 60)) - time.sleep(60) - timeout += 1 - - if timeout >= 20: - duration = time.time() - start_time - self.details["orchestrator"].update( - status='FAIL', duration=duration) - self.logger.error("Open Baton is not started correctly") - return False - - self.logger.info("Waiting for all components to be up and running...") - time.sleep(60) - duration = time.time() - start_time - self.details["orchestrator"].update(status='PASS', duration=duration) - self.logger.info("Deploy Open Baton NFVO: OK") - return True - - def deploy_vnf(self): - start_time = time.time() - self.logger.info("Deploying %s...", self.vnf['name']) - - main_agent = MainAgent( - nfvo_ip=self.mano['details']['fip'].ip, - nfvo_port=8080, - https=False, - version=1, - username=self.mano['credentials']['username'], - password=self.mano['credentials']['password']) - - self.logger.info( - "Create %s Flavor if not existing", self.vnf['name']) - flavor_settings = FlavorConfig( - name=self.vnf['requirements']['flavor']['name'], - ram=self.vnf['requirements']['flavor']['ram_min'], - disk=self.vnf['requirements']['flavor']['disk'], - vcpus=self.vnf['requirements']['flavor']['vcpus']) - flavor = OpenStackFlavor(self.snaps_creds, flavor_settings) - flavor_info = flavor.create() - self.logger.debug("Flavor id: %s", flavor_info.id) - - self.logger.info("Getting project 'default'...") - project_agent = main_agent.get_agent("project", "") - for project in json.loads(project_agent.find()): - if project.get("name") == "default": - self.mano['details']['project_id'] = project.get("id") - self.logger.info("Found project 'default': %s", project) - break - - vim_json = self.get_vim_descriptor() - self.logger.info("Registering VIM: %s", vim_json) - - main_agent.get_agent( - "vim", project_id=self.mano['details']['project_id']).create( - entity=json.dumps(vim_json)) - - market_agent = main_agent.get_agent( - "market", project_id=self.mano['details']['project_id']) - - try: - self.logger.info("sending: %s", self.vnf['descriptor']['url']) - nsd = market_agent.create(entity=self.vnf['descriptor']['url']) - if nsd.get('id') is None: - self.logger.error("NSD not onboarded correctly") - duration = time.time() - start_time - self.details["vnf"].update(status='FAIL', duration=duration) - return False - self.mano['details']['nsd_id'] = nsd.get('id') - self.logger.info("Onboarded NSD: " + nsd.get("name")) - - nsr_agent = main_agent.get_agent( - "nsr", project_id=self.mano['details']['project_id']) - - self.mano['details']['nsr'] = nsr_agent.create( - self.mano['details']['nsd_id']) - except NfvoException: - self.logger.exception("failed") - duration = time.time() - start_time - self.details["vnf"].update(status='FAIL', duration=duration) - return False - - if self.mano['details']['nsr'].get('code') is not None: - self.logger.error( - "%s cannot be deployed: %s -> %s", - self.vnf['name'], - self.mano['details']['nsr'].get('code'), - self.mano['details']['nsr'].get('message')) - self.logger.error("%s cannot be deployed", self.vnf['name']) - duration = time.time() - start_time - self.details["vnf"].update(status='FAIL', duration=duration) - return False - - timeout = 0 - self.logger.info("Waiting for NSR to go to ACTIVE...") - while self.mano['details']['nsr'].get("status") != 'ACTIVE' \ - and self.mano['details']['nsr'].get("status") != 'ERROR': - timeout += 1 - self.logger.info("NSR is not yet ACTIVE... (%ss)", 60 * timeout) - if timeout == 30: - self.logger.error("INACTIVE NSR after %s sec..", 60 * timeout) - duration = time.time() - start_time - self.details["vnf"].update(status='FAIL', duration=duration) - return False - time.sleep(60) - self.mano['details']['nsr'] = json.loads( - nsr_agent.find(self.mano['details']['nsr'].get('id'))) - - duration = time.time() - start_time - if self.mano['details']['nsr'].get("status") == 'ACTIVE': - self.details["vnf"].update(status='PASS', duration=duration) - self.logger.info("Sleep for 60s to ensure that all " - "services are up and running...") - time.sleep(60) - result = True - else: - self.details["vnf"].update(status='FAIL', duration=duration) - self.logger.error("NSR: %s", self.mano['details'].get('nsr')) - result = False - return result - - def test_vnf(self): - self.logger.info( - "Testing VNF Clearwater IMS is not yet implemented...") - start_time = time.time() - - duration = time.time() - start_time - self.details["test_vnf"].update(status='PASS', duration=duration) - self.logger.info("Test VNF: OK") - return True - - def clean(self): - self.logger.info("Cleaning %s...", self.case_name) - try: - main_agent = MainAgent( - nfvo_ip=self.mano['details']['fip'].ip, - nfvo_port=8080, https=False, version=1, - username=self.mano['credentials']['username'], - password=self.mano['credentials']['password']) - self.logger.info("Terminating %s...", self.vnf['name']) - if self.mano['details'].get('nsr'): - main_agent.get_agent( - "nsr", - project_id=self.mano['details']['project_id']).delete( - self.mano['details']['nsr'].get('id')) - self.logger.info("Sleeping 60 seconds...") - time.sleep(60) - else: - self.logger.info("No need to terminate the VNF...") - except (NfvoException, KeyError) as exc: - self.logger.error('Unexpected error cleaning - %s', exc) - super(ClearwaterImsVnf, self).clean() diff --git a/functest/opnfv_tests/vnf/ims/orchestra_openims.py b/functest/opnfv_tests/vnf/ims/orchestra_openims.py deleted file mode 100644 index 8f209d5c..00000000 --- a/functest/opnfv_tests/vnf/ims/orchestra_openims.py +++ /dev/null @@ -1,598 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2016 Orange and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -"""Orchestra OpenIMS testcase implementation.""" - -import json -import logging -import os -import socket -import time -import pkg_resources -import yaml - -from functest.core import vnf -from functest.utils import config - -from org.openbaton.cli.errors.errors import NfvoException -from org.openbaton.cli.agents.agents import MainAgent -from snaps.config.flavor import FlavorConfig -from snaps.config.image import ImageConfig -from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig -from snaps.config.router import RouterConfig -from snaps.config.security_group import ( - Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig) -from snaps.config.vm_inst import FloatingIpConfig -from snaps.config.vm_inst import VmInstanceConfig -from snaps.openstack.utils import keystone_utils -from snaps.openstack.create_image import OpenStackImage -from snaps.openstack.create_flavor import OpenStackFlavor -from snaps.openstack.create_security_group import OpenStackSecurityGroup -from snaps.openstack.create_network import OpenStackNetwork -from snaps.openstack.create_router import OpenStackRouter -from snaps.openstack.create_instance import OpenStackVmInstance - -from functest.opnfv_tests.openstack.snaps import snaps_utils - - -__author__ = "Pauls, Michael " -# ---------------------------------------------------------- -# -# UTILS -# -# ----------------------------------------------------------- - - -def get_config(parameter, file_path): - """ - Get config parameter. - - Returns the value of a given parameter in file.yaml - parameter must be given in string format with dots - Example: general.openstack.image_name - """ - with open(file_path) as config_file: - file_yaml = yaml.safe_load(config_file) - config_file.close() - value = file_yaml - for element in parameter.split("."): - value = value.get(element) - if value is None: - raise ValueError("The parameter %s is not defined in" - " reporting.yaml", parameter) - return value - - -def servertest(host, port): - """Method to test that a server is reachable at IP:port""" - args = socket.getaddrinfo(host, port, socket.AF_INET, socket.SOCK_STREAM) - for family, socktype, proto, _, sockaddr in args: - sock = socket.socket(family, socktype, proto) - try: - sock.connect(sockaddr) - except socket.error: - return False - else: - sock.close() - return True - - -def get_userdata(orchestrator=dict): - """Build userdata for Open Baton machine""" - userdata = "#!/bin/bash\n" - userdata += "echo \"Executing userdata...\"\n" - userdata += "set -x\n" - userdata += "set -e\n" - userdata += "echo \"Install curl...\"\n" - userdata += "apt-get install curl\n" - userdata += "echo \"Inject public key...\"\n" - userdata += ("echo \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuPXrV3" - "geeHc6QUdyUr/1Z+yQiqLcOskiEGBiXr4z76MK4abiFmDZ18OMQlc" - "fl0p3kS0WynVgyaOHwZkgy/DIoIplONVr2CKBKHtPK+Qcme2PVnCtv" - "EqItl/FcD+1h5XSQGoa+A1TSGgCod/DPo+pes0piLVXP8Ph6QS1k7S" - "ic7JDeRQ4oT1bXYpJ2eWBDMfxIWKZqcZRiGPgMIbJ1iEkxbpeaAd9O" - "4MiM9nGCPESmed+p54uYFjwEDlAJZShcAZziiZYAvMZhvAhe6USljc" - "7YAdalAnyD/jwCHuwIrUw/lxo7UdNCmaUxeobEYyyFA1YVXzpNFZya" - "XPGAAYIJwEq/ openbaton@opnfv\" >> /home/ubuntu/.ssh/aut" - "horized_keys\n") - userdata += "echo \"Download bootstrap...\"\n" - userdata += ("curl -s %s " - "> ./bootstrap\n" % orchestrator['bootstrap']['url']) - userdata += ("curl -s %s" "> ./config_file\n" % - orchestrator['bootstrap']['config']['url']) - userdata += ("echo \"Disable usage of mysql...\"\n") - userdata += "sed -i s/mysql=.*/mysql=no/g /config_file\n" - userdata += "echo \"Set autostart of components to 'false'\"\n" - userdata += "export OPENBATON_COMPONENT_AUTOSTART=false\n" - userdata += "echo \"Execute bootstrap...\"\n" - bootstrap = "sh ./bootstrap release -configFile=./config_file" - userdata += bootstrap + "\n" - userdata += "echo \"Setting 'nfvo.plugin.timeout' to '300000'\"\n" - userdata += ("echo \"nfvo.plugin.timeout=600000\" >> " - "/etc/openbaton/openbaton-nfvo.properties\n") - userdata += ( - "wget %s -O /etc/openbaton/openbaton-vnfm-generic-user-data.sh\n" % - orchestrator['gvnfm']['userdata']['url']) - userdata += "sed -i '113i"'\ \ \ \ '"sleep 60' " \ - "/etc/openbaton/openbaton-vnfm-generic-user-data.sh\n" - userdata += ("sed -i s/nfvo.marketplace.port=8082/nfvo.marketplace." - "port=8080/g /etc/openbaton/openbaton-nfvo.properties\n") - userdata += "echo \"Starting NFVO\"\n" - userdata += "service openbaton-nfvo restart\n" - userdata += "echo \"Starting Generic VNFM\"\n" - userdata += "service openbaton-vnfm-generic restart\n" - userdata += "echo \"...end of userdata...\"\n" - return userdata - - -class OpenImsVnf(vnf.VnfOnBoarding): - """OpenIMS VNF deployed with openBaton orchestrator""" - - # logger = logging.getLogger(__name__) - - def __init__(self, **kwargs): - if "case_name" not in kwargs: - kwargs["case_name"] = "orchestra_openims" - super(OpenImsVnf, self).__init__(**kwargs) - self.logger = logging.getLogger("functest.ci.run_tests.orchestra") - self.logger.info("kwargs %s", (kwargs)) - - self.case_dir = pkg_resources.resource_filename( - 'functest', 'opnfv_tests/vnf/ims/') - self.data_dir = getattr(config.CONF, 'dir_ims_data') - self.test_dir = getattr(config.CONF, 'dir_repo_vims_test') - self.created_resources = [] - self.logger.info("%s VNF onboarding test starting", self.case_name) - - try: - self.config = getattr( - config.CONF, 'vnf_{}_config'.format(self.case_name)) - except BaseException: - raise Exception("Orchestra VNF config file not found") - config_file = self.case_dir + self.config - - self.mano = dict( - get_config("mano", config_file), - details={} - ) - self.logger.debug("Orchestrator configuration %s", self.mano) - - self.details['orchestrator'] = dict( - name=self.mano['name'], - version=self.mano['version'], - status='ERROR', - result='' - ) - - self.vnf = dict( - get_config(self.case_name, config_file), - ) - self.logger.debug("VNF configuration: %s", self.vnf) - - self.details['vnf'] = dict( - name=self.vnf['name'], - ) - - self.details['test_vnf'] = dict( - name=self.case_name, - ) - - # Orchestra base Data directory creation - if not os.path.exists(self.data_dir): - os.makedirs(self.data_dir) - - self.images = get_config("tenant_images.orchestrator", config_file) - self.images.update(get_config("tenant_images.%s" % - self.case_name, config_file)) - self.creds = None - self.orchestra_router = None - - def prepare(self): - """Prepare testscase (Additional pre-configuration steps).""" - super(OpenImsVnf, self).prepare() - - public_auth_url = keystone_utils.get_endpoint( - self.snaps_creds, 'identity') - - self.logger.info("Additional pre-configuration steps") - self.creds = { - "tenant": self.snaps_creds.project_name, - "username": self.snaps_creds.username, - "password": self.snaps_creds.password, - "auth_url": public_auth_url} - self.prepare_images() - self.prepare_flavor() - self.prepare_security_groups() - self.prepare_network() - - def prepare_images(self): - """Upload images if they doen't exist yet""" - self.logger.info("Upload images if they doen't exist yet") - for image_name, image_file in self.images.iteritems(): - self.logger.info("image: %s, file: %s", image_name, image_file) - if image_file and image_name: - image = OpenStackImage( - self.snaps_creds, - ImageConfig(name=image_name, - image_user='cloud', - img_format='qcow2', - image_file=image_file, - public=True)) - image.create() - self.created_resources.append(image) - - def prepare_security_groups(self): - """Create Open Baton security group if it doesn't exist yet""" - self.logger.info( - "Creating security group for Open Baton if not yet existing...") - sg_rules = list() - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="orchestra-sec-group-allowall-{}".format( - self.uuid), - direction=Direction.ingress, - protocol=Protocol.tcp, - port_range_min=1, - port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="orchestra-sec-group-allowall-{}".format( - self.uuid), - direction=Direction.egress, - protocol=Protocol.tcp, - port_range_min=1, - port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="orchestra-sec-group-allowall-{}".format( - self.uuid), - direction=Direction.ingress, - protocol=Protocol.udp, - port_range_min=1, - port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="orchestra-sec-group-allowall-{}".format( - self.uuid), - direction=Direction.egress, - protocol=Protocol.udp, - port_range_min=1, - port_range_max=65535)) - security_group = OpenStackSecurityGroup( - self.snaps_creds, - SecurityGroupConfig( - name="orchestra-sec-group-allowall-{}".format( - self.uuid), - rule_settings=sg_rules)) - - security_group_info = security_group.create() - self.created_resources.append(security_group) - self.mano['details']['sec_group'] = security_group_info.name - self.logger.info( - "Security group orchestra-sec-group-allowall prepared") - - def prepare_flavor(self): - """Create Open Baton flavor if it doesn't exist yet""" - self.logger.info( - "Create Flavor for Open Baton NFVO if not yet existing") - - flavor_settings = FlavorConfig( - name=self.mano['requirements']['flavor']['name'], - ram=self.mano['requirements']['flavor']['ram_min'], - disk=self.mano['requirements']['flavor']['disk'], - vcpus=self.mano['requirements']['flavor']['vcpus']) - flavor = OpenStackFlavor(self.snaps_creds, flavor_settings) - flavor_info = flavor.create() - self.created_resources.append(flavor) - self.mano['details']['flavor'] = {} - self.mano['details']['flavor']['name'] = flavor_settings.name - self.mano['details']['flavor']['id'] = flavor_info.id - - def prepare_network(self): - """Create network/subnet/router if they doen't exist yet""" - self.logger.info( - "Creating network/subnet/router if they doen't exist yet...") - subnet_settings = SubnetConfig( - name='{}_subnet-{}'.format(self.case_name, self.uuid), - cidr="192.168.100.0/24") - network_settings = NetworkConfig( - name='{}_net-{}'.format(self.case_name, self.uuid), - subnet_settings=[subnet_settings]) - orchestra_network = OpenStackNetwork( - self.snaps_creds, network_settings) - orchestra_network_info = orchestra_network.create() - self.mano['details']['network'] = {} - self.mano['details']['network']['id'] = orchestra_network_info.id - self.mano['details']['network']['name'] = orchestra_network_info.name - self.mano['details']['external_net_name'] = \ - snaps_utils.get_ext_net_name(self.snaps_creds) - self.created_resources.append(orchestra_network) - self.orchestra_router = OpenStackRouter( - self.snaps_creds, - RouterConfig( - name='{}_router-{}'.format(self.case_name, self.uuid), - external_gateway=self.mano['details']['external_net_name'], - internal_subnets=[ - subnet_settings.name])) - self.orchestra_router.create() - self.created_resources.append(self.orchestra_router) - self.logger.info("Created network and router for Open Baton NFVO...") - - def get_vim_descriptor(self): - """"Create VIM descriptor to be used for onboarding""" - self.logger.info( - "Building VIM descriptor with PoP creds: %s", - self.creds) - self.logger.debug("VIM project/tenant id: %s", - self.snaps_creds.project_name) - keystone = keystone_utils.keystone_client(self.snaps_creds) - project_id = keystone_utils.get_project( - keystone=keystone, project_name=self.snaps_creds.project_name).id - vim_json = { - "name": "vim-instance", - "authUrl": self.creds.get("auth_url"), - "tenant": project_id, - "username": self.creds.get("username"), - "password": self.creds.get("password"), - "securityGroups": [ - self.mano['details']['sec_group'] - ], - "type": "openstack", - "location": { - "name": "opnfv", - "latitude": "52.525876", - "longitude": "13.314400" - } - } - self.logger.info("Built VIM descriptor: %s", vim_json) - return vim_json - - def deploy_orchestrator(self): - self.logger.info("Deploying Open Baton...") - self.logger.info("Details: %s", self.mano['details']) - start_time = time.time() - - self.logger.info("Creating orchestra instance...") - userdata = get_userdata(self.mano) - self.logger.info("flavor: %s\n" - "image: %s\n" - "network_id: %s\n", - self.mano['details']['flavor']['name'], - self.mano['requirements']['image'], - self.mano['details']['network']['id']) - self.logger.debug("userdata: %s\n", userdata) - # setting up image - image_settings = ImageConfig( - name=self.mano['requirements']['image'], - image_user='ubuntu', - exists=True) - # setting up port - port_settings = PortConfig( - name='{}_port-{}'.format(self.case_name, self.uuid), - network_name=self.mano['details']['network']['name']) - # build configuration of vm - orchestra_settings = VmInstanceConfig( - name='{}-{}'.format(self.case_name, self.uuid), - flavor=self.mano['details']['flavor']['name'], - port_settings=[port_settings], - security_group_names=[self.mano['details']['sec_group']], - floating_ip_settings=[FloatingIpConfig( - name='orchestra_fip-{}'.format(self.uuid), - port_name=port_settings.name, - router_name=self.orchestra_router.router_settings.name)], - userdata=str(userdata)) - orchestra_vm = OpenStackVmInstance( - self.snaps_creds, orchestra_settings, image_settings) - orchestra_vm.create() - self.mano['details']['fip'] = orchestra_vm.get_floating_ip() - self.created_resources.append(orchestra_vm) - self.mano['details']['id'] = orchestra_vm.get_vm_info()['id'] - self.logger.info( - "Created orchestra instance: %s", self.mano['details']['id']) - self.logger.info("Waiting for Open Baton NFVO to be up and running...") - timeout = 0 - while timeout < 20: - if servertest( - self.mano['details']['fip'].ip, - "8080"): - break - else: - self.logger.info("Open Baton NFVO is not started yet (%ss)", - (timeout * 60)) - time.sleep(60) - timeout += 1 - - if timeout >= 20: - duration = time.time() - start_time - self.details["orchestrator"].update( - status='FAIL', duration=duration) - self.logger.error("Open Baton is not started correctly") - return False - - self.logger.info("Waiting for all components to be up and running...") - time.sleep(60) - duration = time.time() - start_time - self.details["orchestrator"].update(status='PASS', duration=duration) - self.logger.info("Deploy Open Baton NFVO: OK") - return True - - def deploy_vnf(self): - start_time = time.time() - self.logger.info("Deploying %s...", self.vnf['name']) - - main_agent = MainAgent( - nfvo_ip=self.mano['details']['fip'].ip, - nfvo_port=8080, - https=False, - version=1, - username=self.mano['credentials']['username'], - password=self.mano['credentials']['password']) - - self.logger.info( - "Create %s Flavor if not existing", self.vnf['name']) - flavor_settings = FlavorConfig( - name=self.vnf['requirements']['flavor']['name'], - ram=self.vnf['requirements']['flavor']['ram_min'], - disk=self.vnf['requirements']['flavor']['disk'], - vcpus=self.vnf['requirements']['flavor']['vcpus']) - flavor = OpenStackFlavor(self.snaps_creds, flavor_settings) - flavor_info = flavor.create() - self.logger.debug("Flavor id: %s", flavor_info.id) - - self.logger.info("Getting project 'default'...") - project_agent = main_agent.get_agent("project", "") - for project in json.loads(project_agent.find()): - if project.get("name") == "default": - self.mano['details']['project_id'] = project.get("id") - self.logger.info("Found project 'default': %s", project) - break - - vim_json = self.get_vim_descriptor() - self.logger.info("Registering VIM: %s", vim_json) - - main_agent.get_agent( - "vim", project_id=self.mano['details']['project_id']).create( - entity=json.dumps(vim_json)) - - market_agent = main_agent.get_agent( - "market", project_id=self.mano['details']['project_id']) - - try: - self.logger.info("sending: %s", self.vnf['descriptor']['url']) - nsd = market_agent.create(entity=self.vnf['descriptor']['url']) - if nsd.get('id') is None: - self.logger.error("NSD not onboarded correctly") - duration = time.time() - start_time - self.details["vnf"].update(status='FAIL', duration=duration) - return False - self.mano['details']['nsd_id'] = nsd.get('id') - self.logger.info("Onboarded NSD: " + nsd.get("name")) - - nsr_agent = main_agent.get_agent( - "nsr", project_id=self.mano['details']['project_id']) - - self.mano['details']['nsr'] = nsr_agent.create( - self.mano['details']['nsd_id']) - except NfvoException: - self.logger.exception("failed") - duration = time.time() - start_time - self.details["vnf"].update(status='FAIL', duration=duration) - return False - - if self.mano['details']['nsr'].get('code') is not None: - self.logger.error( - "%s cannot be deployed: %s -> %s", - self.vnf['name'], - self.mano['details']['nsr'].get('code'), - self.mano['details']['nsr'].get('message')) - self.logger.error("%s cannot be deployed", self.vnf['name']) - duration = time.time() - start_time - self.details["vnf"].update(status='FAIL', duration=duration) - return False - - timeout = 0 - self.logger.info("Waiting for NSR to go to ACTIVE...") - while self.mano['details']['nsr'].get("status") != 'ACTIVE' \ - and self.mano['details']['nsr'].get("status") != 'ERROR': - timeout += 1 - self.logger.info("NSR is not yet ACTIVE... (%ss)", 60 * timeout) - if timeout == 30: - self.logger.error("INACTIVE NSR after %s sec..", 60 * timeout) - duration = time.time() - start_time - self.details["vnf"].update(status='FAIL', duration=duration) - return False - time.sleep(60) - self.mano['details']['nsr'] = json.loads( - nsr_agent.find(self.mano['details']['nsr'].get('id'))) - - duration = time.time() - start_time - if self.mano['details']['nsr'].get("status") == 'ACTIVE': - self.details["vnf"].update(status='PASS', duration=duration) - self.logger.info("Sleep for 60s to ensure that all " - "services are up and running...") - time.sleep(60) - result = True - else: - self.details["vnf"].update(status='FAIL', duration=duration) - self.logger.error("NSR: %s", self.mano['details'].get('nsr')) - result = False - return result - - def test_vnf(self): - self.logger.info("Testing VNF OpenIMS...") - start_time = time.time() - self.logger.info( - "Testing if %s works properly...", - self.mano['details']['nsr'].get('name')) - for vnfr in self.mano['details']['nsr'].get('vnfr'): - self.logger.info( - "Checking ports %s of VNF %s", - self.vnf['test'][vnfr.get('name')]['ports'], - vnfr.get('name')) - for vdu in vnfr.get('vdu'): - for vnfci in vdu.get('vnfc_instance'): - self.logger.debug( - "Checking ports of VNFC instance %s", - vnfci.get('hostname')) - for floating_ip in vnfci.get('floatingIps'): - self.logger.debug( - "Testing %s:%s", - vnfci.get('hostname'), - floating_ip.get('ip')) - for port in self.vnf['test'][vnfr.get( - 'name')]['ports']: - if servertest(floating_ip.get('ip'), port): - self.logger.info( - "VNFC instance %s is reachable at %s:%s", - vnfci.get('hostname'), - floating_ip.get('ip'), - port) - else: - self.logger.error( - "VNFC instance %s is not reachable " - "at %s:%s", - vnfci.get('hostname'), - floating_ip.get('ip'), - port) - duration = time.time() - start_time - self.details["test_vnf"].update( - status='FAIL', duration=duration, esult=( - "Port %s of server %s -> %s is " - "not reachable", - port, - vnfci.get('hostname'), - floating_ip.get('ip'))) - self.logger.error("Test VNF: ERROR") - return False - duration = time.time() - start_time - self.details["test_vnf"].update(status='PASS', duration=duration) - self.logger.info("Test VNF: OK") - return True - - def clean(self): - self.logger.info("Cleaning %s...", self.case_name) - try: - main_agent = MainAgent( - nfvo_ip=self.mano['details']['fip'].ip, - nfvo_port=8080, https=False, version=1, - username=self.mano['credentials']['username'], - password=self.mano['credentials']['password']) - self.logger.info("Terminating %s...", self.vnf['name']) - if self.mano['details'].get('nsr'): - main_agent.get_agent( - "nsr", - project_id=self.mano['details']['project_id']).\ - delete(self.mano['details']['nsr'].get('id')) - self.logger.info("Sleeping 60 seconds...") - time.sleep(60) - else: - self.logger.info("No need to terminate the VNF...") - except (NfvoException, KeyError) as exc: - self.logger.error('Unexpected error cleaning - %s', exc) - super(OpenImsVnf, self).clean() diff --git a/functest/opnfv_tests/vnf/router/__init__.py b/functest/opnfv_tests/vnf/router/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/functest/opnfv_tests/vnf/router/cloudify_vrouter.py b/functest/opnfv_tests/vnf/router/cloudify_vrouter.py deleted file mode 100644 index 18acce6f..00000000 --- a/functest/opnfv_tests/vnf/router/cloudify_vrouter.py +++ /dev/null @@ -1,499 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Okinawa Open Laboratory and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -# pylint: disable=missing-docstring - -"""vrouter testcase implementation.""" - -import logging -import os -import time -import uuid - -from cloudify_rest_client import CloudifyClient -from cloudify_rest_client.executions import Execution -from scp import SCPClient - -from functest.opnfv_tests.openstack.snaps import snaps_utils -import functest.opnfv_tests.vnf.router.vrouter_base as vrouter_base -from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf -from functest.utils import config -from functest.utils import functest_utils - -from git import Repo - -from snaps.config.flavor import FlavorConfig -from snaps.config.image import ImageConfig -from snaps.config.keypair import KeypairConfig -from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig -from snaps.config.router import RouterConfig -from snaps.config.security_group import ( - Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig) -from snaps.config.user import UserConfig -from snaps.config.vm_inst import FloatingIpConfig, VmInstanceConfig - -from snaps.openstack.create_flavor import OpenStackFlavor -from snaps.openstack.create_image import OpenStackImage -from snaps.openstack.create_instance import OpenStackVmInstance -from snaps.openstack.create_keypairs import OpenStackKeypair -from snaps.openstack.create_network import OpenStackNetwork -from snaps.openstack.create_security_group import OpenStackSecurityGroup -from snaps.openstack.create_router import OpenStackRouter -from snaps.openstack.create_user import OpenStackUser - -import snaps.openstack.utils.glance_utils as glance_utils -from snaps.openstack.utils import keystone_utils - - -__author__ = "Shuya Nakama " - - -class CloudifyVrouter(vrouter_base.VrouterOnBoardingBase): - # pylint: disable=too-many-instance-attributes - """vrouter testcase deployed with Cloudify Orchestrator.""" - - __logger = logging.getLogger(__name__) - name = __name__ - - def __init__(self, **kwargs): - if "case_name" not in kwargs: - kwargs["case_name"] = "vyos_vrouter" - super(CloudifyVrouter, self).__init__(**kwargs) - - # Retrieve the configuration - try: - self.config = getattr( - config.CONF, 'vnf_{}_config'.format(self.case_name)) - except Exception: - raise Exception("VNF config file not found") - - self.cfy_manager_ip = '' - self.util_info = {} - self.deployment_name = '' - - config_file = os.path.join(self.case_dir, self.config) - self.orchestrator = dict( - requirements=functest_utils.get_parameter_from_yaml( - "orchestrator.requirements", config_file), - ) - self.details['orchestrator'] = dict( - name=functest_utils.get_parameter_from_yaml( - "orchestrator.name", config_file), - version=functest_utils.get_parameter_from_yaml( - "orchestrator.version", config_file), - status='ERROR', - result='' - ) - self.__logger.debug("Orchestrator configuration %s", self.orchestrator) - self.__logger.debug("name = %s", self.name) - self.vnf = dict( - descriptor=functest_utils.get_parameter_from_yaml( - "vnf.descriptor", config_file), - inputs=functest_utils.get_parameter_from_yaml( - "vnf.inputs", config_file), - requirements=functest_utils.get_parameter_from_yaml( - "vnf.requirements", config_file) - ) - self.details['vnf'] = dict( - descriptor_version=self.vnf['descriptor']['version'], - name=functest_utils.get_parameter_from_yaml( - "vnf.name", config_file), - version=functest_utils.get_parameter_from_yaml( - "vnf.version", config_file), - ) - self.__logger.debug("VNF configuration: %s", self.vnf) - - self.util = Utilvnf() - - self.details['test_vnf'] = dict( - name=functest_utils.get_parameter_from_yaml( - "vnf_test_suite.name", config_file), - version=functest_utils.get_parameter_from_yaml( - "vnf_test_suite.version", config_file) - ) - self.images = functest_utils.get_parameter_from_yaml( - "tenant_images", config_file) - self.__logger.info("Images needed for vrouter: %s", self.images) - - @staticmethod - def run_blocking_ssh_command(ssh, cmd, - error_msg="Unable to run this command"): - """Command to run ssh command with the exit status.""" - (_, stdout, stderr) = ssh.exec_command(cmd) - CloudifyVrouter.__logger.debug("SSH %s stdout: %s", cmd, stdout.read()) - if stdout.channel.recv_exit_status() != 0: - CloudifyVrouter.__logger.error( - "SSH %s stderr: %s", cmd, stderr.read()) - raise Exception(error_msg) - - def prepare(self): - super(CloudifyVrouter, self).prepare() - self.__logger.info("Additional pre-configuration steps") - self.util.set_credentials(self.snaps_creds) - self.__logger.info("Upload some OS images if it doesn't exist") - for image_name, image_file in self.images.iteritems(): - self.__logger.info("image: %s, file: %s", image_name, image_file) - if image_file and image_name: - image_creator = OpenStackImage( - self.snaps_creds, - ImageConfig( - name=image_name, image_user='cloud', - img_format='qcow2', image_file=image_file)) - image_creator.create() - self.created_object.append(image_creator) - - def deploy_orchestrator(self): - # pylint: disable=too-many-locals,too-many-statements - """ - Deploy Cloudify Manager. - network, security group, fip, VM creation - """ - # network creation - start_time = time.time() - self.__logger.info("Creating keypair ...") - kp_file = os.path.join(self.data_dir, "cloudify_vrouter.pem") - keypair_settings = KeypairConfig( - name='cloudify_vrouter_kp-{}'.format(self.uuid), - private_filepath=kp_file) - keypair_creator = OpenStackKeypair(self.snaps_creds, keypair_settings) - keypair_creator.create() - self.created_object.append(keypair_creator) - - self.__logger.info("Creating full network ...") - subnet_settings = SubnetConfig( - name='cloudify_vrouter_subnet-{}'.format(self.uuid), - cidr='10.67.79.0/24') - network_settings = NetworkConfig( - name='cloudify_vrouter_network-{}'.format(self.uuid), - subnet_settings=[subnet_settings]) - network_creator = OpenStackNetwork(self.snaps_creds, network_settings) - network_creator.create() - self.created_object.append(network_creator) - ext_net_name = snaps_utils.get_ext_net_name(self.snaps_creds) - router_creator = OpenStackRouter( - self.snaps_creds, - RouterConfig( - name='cloudify_vrouter_router-{}'.format(self.uuid), - external_gateway=ext_net_name, - internal_subnets=[subnet_settings.name])) - router_creator.create() - self.created_object.append(router_creator) - - # security group creation - self.__logger.info("Creating security group for cloudify manager vm") - sg_rules = list() - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="sg-cloudify-manager-{}".format(self.uuid), - direction=Direction.ingress, - protocol=Protocol.tcp, port_range_min=1, - port_range_max=65535)) - sg_rules.append( - SecurityGroupRuleConfig( - sec_grp_name="sg-cloudify-manager-{}".format(self.uuid), - direction=Direction.ingress, - protocol=Protocol.udp, port_range_min=1, - port_range_max=65535)) - - security_group_creator = OpenStackSecurityGroup( - self.snaps_creds, - SecurityGroupConfig( - name="sg-cloudify-manager-{}".format(self.uuid), - rule_settings=sg_rules)) - - security_group_creator.create() - self.created_object.append(security_group_creator) - - # orchestrator VM flavor - self.__logger.info("Get or create flavor for cloudify manager vm ...") - - flavor_settings = FlavorConfig( - name=self.orchestrator['requirements']['flavor']['name'], - ram=self.orchestrator['requirements']['flavor']['ram_min'], - disk=50, vcpus=2) - flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings) - flavor_creator.create() - self.created_object.append(flavor_creator) - image_settings = ImageConfig( - name=self.orchestrator['requirements']['os_image'], - image_user='centos', exists=True) - - port_settings = PortConfig( - name='cloudify_manager_port-{}'.format(self.uuid), - network_name=network_settings.name) - - manager_settings = VmInstanceConfig( - name='cloudify_manager-{}'.format(self.uuid), - flavor=flavor_settings.name, - port_settings=[port_settings], - security_group_names=[ - security_group_creator.sec_grp_settings.name], - floating_ip_settings=[FloatingIpConfig( - name='cloudify_manager_fip-{}'.format(self.uuid), - port_name=port_settings.name, - router_name=router_creator.router_settings.name)]) - - manager_creator = OpenStackVmInstance( - self.snaps_creds, manager_settings, image_settings, - keypair_settings) - - self.__logger.info("Creating cloudify manager VM") - manager_creator.create() - self.created_object.append(manager_creator) - - cfy_client = CloudifyClient( - host=manager_creator.get_floating_ip().ip, - username='admin', password='admin', tenant='default_tenant') - - self.orchestrator['object'] = cfy_client - - self.cfy_manager_ip = manager_creator.get_floating_ip().ip - - self.__logger.info("Attemps running status of the Manager") - cfy_status = None - retry = 10 - while str(cfy_status) != 'running' and retry: - try: - cfy_status = cfy_client.manager.get_status()['status'] - self.__logger.debug("The current manager status is %s", - cfy_status) - except Exception: # pylint: disable=broad-except - self.__logger.exception( - "Cloudify Manager isn't up and running. Retrying ...") - retry = retry - 1 - time.sleep(30) - - if str(cfy_status) == 'running': - self.__logger.info("Cloudify Manager is up and running") - else: - raise Exception("Cloudify Manager isn't up and running") - - duration = time.time() - start_time - - self.__logger.info("Put private keypair in manager") - if manager_creator.vm_ssh_active(block=True): - ssh = manager_creator.ssh_client() - scp = SCPClient(ssh.get_transport(), socket_timeout=15.0) - scp.put(kp_file, '~/') - cmd = "sudo cp ~/cloudify_vrouter.pem /etc/cloudify/" - self.run_blocking_ssh_command(ssh, cmd) - cmd = "sudo chmod 444 /etc/cloudify/cloudify_vrouter.pem" - self.run_blocking_ssh_command(ssh, cmd) - cmd = "sudo yum install -y gcc python-devel" - self.run_blocking_ssh_command( - ssh, cmd, "Unable to install packages on manager") - - self.details['orchestrator'].update(status='PASS', duration=duration) - - self.vnf['inputs'].update(dict(external_network_name=ext_net_name)) - - return True - - def deploy_vnf(self): - start_time = time.time() - - self.__logger.info("Upload VNFD") - cfy_client = self.orchestrator['object'] - descriptor = self.vnf['descriptor'] - self.deployment_name = descriptor.get('name') - - vrouter_blueprint_dir = os.path.join( - self.data_dir, self.util.blueprint_dir) - if not os.path.exists(vrouter_blueprint_dir): - Repo.clone_from( - descriptor.get('url'), vrouter_blueprint_dir, - branch=descriptor.get('version')) - - cfy_client.blueprints.upload( - vrouter_blueprint_dir + self.util.blueprint_file_name, - descriptor.get('name')) - - self.__logger.info("Get or create flavor for vrouter") - flavor_settings = FlavorConfig( - name=self.vnf['requirements']['flavor']['name'], - ram=self.vnf['requirements']['flavor']['ram_min'], - disk=25, vcpus=1) - flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings) - flavor = flavor_creator.create() - self.created_object.append(flavor_creator) - - # set image name - glance = glance_utils.glance_client(self.snaps_creds) - image = glance_utils.get_image(glance, "vyos1.1.7") - - user_creator = OpenStackUser( - self.snaps_creds, - UserConfig( - name='cloudify_network_bug-{}'.format(self.uuid), - password=str(uuid.uuid4()), - roles={'_member_': self.tenant_name})) - user_creator.create() - self.created_object.append(user_creator) - snaps_creds = user_creator.get_os_creds(self.snaps_creds.project_name) - - self.vnf['inputs'].update(dict(target_vnf_image_id=image.id)) - self.vnf['inputs'].update(dict(reference_vnf_image_id=image.id)) - self.vnf['inputs'].update(dict(target_vnf_flavor_id=flavor.id)) - self.vnf['inputs'].update(dict(reference_vnf_flavor_id=flavor.id)) - self.vnf['inputs'].update(dict( - keystone_username=snaps_creds.username)) - self.vnf['inputs'].update(dict( - keystone_password=snaps_creds.password)) - self.vnf['inputs'].update(dict( - keystone_tenant_name=snaps_creds.project_name)) - self.vnf['inputs'].update(dict( - region=snaps_creds.region_name)) - self.vnf['inputs'].update(dict( - keystone_url=keystone_utils.get_endpoint( - snaps_creds, 'identity'))) - - self.__logger.info("Create VNF Instance") - cfy_client.deployments.create( - descriptor.get('name'), descriptor.get('name'), - self.vnf.get('inputs')) - - wait_for_execution( - cfy_client, get_execution_id(cfy_client, descriptor.get('name')), - self.__logger, timeout=7200) - - self.__logger.info("Start the VNF Instance deployment") - execution = cfy_client.executions.start(descriptor.get('name'), - 'install') - # Show execution log - execution = wait_for_execution(cfy_client, execution, self.__logger) - - duration = time.time() - start_time - - self.__logger.info(execution) - if execution.status == 'terminated': - self.details['vnf'].update(status='PASS', duration=duration) - result = True - else: - self.details['vnf'].update(status='FAIL', duration=duration) - result = False - return result - - def test_vnf(self): - cfy_client = self.orchestrator['object'] - credentials = {"snaps_creds": self.snaps_creds, - "username": self.snaps_creds.username, - "password": self.snaps_creds.password, - "auth_url": self.snaps_creds.auth_url, - "tenant_name": self.snaps_creds.project_name} - - self.util_info = {"credentials": credentials, - "cfy": cfy_client, - "vnf_data_dir": self.util.vnf_data_dir} - - start_time = time.time() - - result, test_result_data = super(CloudifyVrouter, self).test_vnf() - - duration = time.time() - start_time - - if result: - self.details['test_vnf'].update( - status='PASS', result='OK', full_result=test_result_data, - duration=duration) - else: - self.details['test_vnf'].update( - status='FAIL', result='NG', full_result=test_result_data, - duration=duration) - - return True - - def clean(self): - try: - cfy_client = self.orchestrator['object'] - dep_name = self.vnf['descriptor'].get('name') - # kill existing execution - self.__logger.info('Deleting the current deployment') - exec_list = cfy_client.executions.list(dep_name) - for execution in exec_list: - if execution['status'] == "started": - try: - cfy_client.executions.cancel( - execution['id'], force=True) - except Exception: # pylint: disable=broad-except - self.__logger.warn("Can't cancel the current exec") - - execution = cfy_client.executions.start( - dep_name, 'uninstall', parameters=dict(ignore_failure=True)) - - wait_for_execution(cfy_client, execution, self.__logger) - cfy_client.deployments.delete(self.vnf['descriptor'].get('name')) - cfy_client.blueprints.delete(self.vnf['descriptor'].get('name')) - except Exception: # pylint: disable=broad-except - self.__logger.warn("Some issue during the undeployment ..") - self.__logger.warn("Tenant clean continue ..") - super(CloudifyVrouter, self).clean() - - def get_vnf_info_list(self, target_vnf_name): - return self.util.get_vnf_info_list( - self.cfy_manager_ip, self.deployment_name, target_vnf_name) - - -def wait_for_execution(client, execution, logger, timeout=7200, ): - """Wait for a workflow execution on Cloudify Manager.""" - # if execution already ended - return without waiting - if execution.status in Execution.END_STATES: - return execution - - if timeout is not None: - deadline = time.time() + timeout - - # Poll for execution status and execution logs, until execution ends - # and we receive an event of type in WORKFLOW_END_TYPES - offset = 0 - batch_size = 50 - event_list = [] - execution_ended = False - while True: - event_list = client.events.list( - execution_id=execution.id, _offset=offset, _size=batch_size, - include_logs=False, sort='@timestamp').items - - offset = offset + len(event_list) - for event in event_list: - logger.debug(event.get('message')) - - if timeout is not None: - if time.time() > deadline: - raise RuntimeError( - 'execution of operation {0} for deployment {1} ' - 'timed out'.format(execution.workflow_id, - execution.deployment_id)) - else: - # update the remaining timeout - timeout = deadline - time.time() - - if not execution_ended: - execution = client.executions.get(execution.id) - execution_ended = execution.status in Execution.END_STATES - - if execution_ended: - break - - time.sleep(5) - - return execution - - -def get_execution_id(client, deployment_id): - """ - Get the execution id of a env preparation. - network, security group, fip, VM creation - """ - executions = client.executions.list(deployment_id=deployment_id) - for execution in executions: - if execution.workflow_id == 'create_deployment_environment': - return execution - raise RuntimeError('Failed to get create_deployment_environment ' - 'workflow execution.' - 'Available executions: {0}'.format(executions)) diff --git a/functest/opnfv_tests/vnf/router/cloudify_vrouter.yaml b/functest/opnfv_tests/vnf/router/cloudify_vrouter.yaml deleted file mode 100644 index 58bdb66a..00000000 --- a/functest/opnfv_tests/vnf/router/cloudify_vrouter.yaml +++ /dev/null @@ -1,33 +0,0 @@ ---- -tenant_images: - cloudify_manager_4.0: - /home/opnfv/functest/images/cloudify-manager-premium-4.0.1.qcow2 - vyos1.1.7: /home/opnfv/functest/images/vyos-1.1.7.img -test_data: - url: 'https://github.com/oolorg/opnfv-vnf-data.git' - branch: 'master' -orchestrator: - name: cloudify - version: '4.0' - requirements: - flavor: - name: m1.medium - ram_min: 4096 - os_image: 'cloudify_manager_4.0' -vnf: - name: vyos1.1.7 - version: '1.1.7' - descriptor: - url: https://github.com/oolorg/opnfv-vnf-vyos-blueprint/ - name: vrouter-opnfv - version: 'master' - requirements: - flavor: - name: m1.medium - ram_min: 2048 - inputs: - external_network_name: admin_floating_net - region: RegionOne -vnf_test_suite: - name: vyos-vrouter-test - version: "1.0" diff --git a/functest/opnfv_tests/vnf/router/test_controller/__init__.py b/functest/opnfv_tests/vnf/router/test_controller/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/functest/opnfv_tests/vnf/router/test_controller/function_test_exec.py b/functest/opnfv_tests/vnf/router/test_controller/function_test_exec.py deleted file mode 100644 index be7bee88..00000000 --- a/functest/opnfv_tests/vnf/router/test_controller/function_test_exec.py +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Okinawa Open Laboratory and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -# pylint: disable=missing-docstring - -"""vrouter function test execution module""" - -import logging -import time -import yaml - -from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf -from functest.opnfv_tests.vnf.router.vnf_controller.vnf_controller import ( - VnfController) - - -class FunctionTestExec(object): - """vrouter function test execution class""" - - logger = logging.getLogger(__name__) - - def __init__(self, util_info): - self.logger.debug("init test exec") - self.util = Utilvnf() - credentials = util_info["credentials"] - self.vnf_ctrl = VnfController(util_info) - - test_cmd_map_file = open(self.util.vnf_data_dir + - self.util.opnfv_vnf_data_dir + - self.util.command_template_dir + - self.util.test_cmd_map_yaml_file, - 'r') - self.test_cmd_map_yaml = yaml.safe_load(test_cmd_map_file) - test_cmd_map_file.close() - - self.util.set_credentials(credentials["snaps_creds"]) - - with open(self.util.test_env_config_yaml) as file_fd: - test_env_config_yaml = yaml.safe_load(file_fd) - file_fd.close() - - self.protocol_stable_wait = test_env_config_yaml.get("general").get( - "protocol_stable_wait") - - def config_target_vnf(self, target_vnf, reference_vnf, test_kind): - self.logger.debug("Configuration to target vnf") - test_info = self.test_cmd_map_yaml[target_vnf["os_type"]] - test_cmd_file_path = test_info[test_kind]["pre_command_target"] - target_parameter_file_path = test_info[test_kind]["parameter_target"] - prompt_file_path = test_info["prompt"] - - return self.vnf_ctrl.config_vnf(target_vnf, - reference_vnf, - test_cmd_file_path, - target_parameter_file_path, - prompt_file_path) - - def config_reference_vnf(self, target_vnf, reference_vnf, test_kind): - self.logger.debug("Configuration to reference vnf") - test_info = self.test_cmd_map_yaml[reference_vnf["os_type"]] - test_cmd_file_path = test_info[test_kind]["pre_command_reference"] - reference_parameter_file_path = test_info[test_kind][ - "parameter_reference"] - prompt_file_path = test_info["prompt"] - - return self.vnf_ctrl.config_vnf(reference_vnf, - target_vnf, - test_cmd_file_path, - reference_parameter_file_path, - prompt_file_path) - - def result_check(self, target_vnf, reference_vnf, test_kind, test_list): - test_info = self.test_cmd_map_yaml[target_vnf["os_type"]] - target_parameter_file_path = test_info[test_kind]["parameter_target"] - prompt_file_path = test_info["prompt"] - check_rule_file_path_list = [] - - for test in test_list: - check_rule_file_path_list.append(test_info[test_kind][test]) - - return self.vnf_ctrl.result_check(target_vnf, - reference_vnf, - check_rule_file_path_list, - target_parameter_file_path, - prompt_file_path) - - def run(self, target_vnf, reference_vnf_list, test_info, test_list): - test_result_data = {} - test_kind = test_info["protocol"] - for reference_vnf in reference_vnf_list: - self.logger.debug("Start config command " + - target_vnf["vnf_name"] + " and " + - reference_vnf["vnf_name"]) - - result = self.config_target_vnf(target_vnf, - reference_vnf, - test_kind) - if not result: - return False, test_result_data - - result = self.config_reference_vnf(target_vnf, - reference_vnf, - test_kind) - if not result: - return False, test_result_data - - self.logger.debug("Finish config command.") - - self.logger.debug("Waiting for protocol stable.") - time.sleep(self.protocol_stable_wait) - - self.logger.debug("Start check method") - - (result, res_dict_data_list) = self.result_check(target_vnf, - reference_vnf, - test_kind, - test_list) - - test_result_data = {"test_kind": test_info["test_kind"], - "protocol": test_info["protocol"], - "result": res_dict_data_list} - - if not result: - self.logger.debug("Error check method.") - return False, test_result_data - - self.logger.debug("Finish check method.") - - return True, test_result_data diff --git a/functest/opnfv_tests/vnf/router/test_scenario.yaml b/functest/opnfv_tests/vnf/router/test_scenario.yaml deleted file mode 100644 index 8bdaf06a..00000000 --- a/functest/opnfv_tests/vnf/router/test_scenario.yaml +++ /dev/null @@ -1,28 +0,0 @@ ---- -test_scenario_list: - - - test_type: 'function_test' - vnf_list: - - - vnf_name: 'target_vnf' - os_type: 'vyos' - image_name: 'vyos1.1.7' - flavor_name: 'm1.medium' - - - vnf_name: 'reference_vnf' - os_type: 'vyos' - image_name: 'vyos1.1.7' - flavor_name: 'm1.medium' - function_test_list: - - - target_vnf_name: 'target_vnf' - test_list: - - - test_kind: 'Interoperability' - protocol: 'BGP' - BGP: - - 'Checking_the_peer_of_BGP' - - 'Checking_the_status_of_BGP' - - 'Checking_the_advertised_routes' - - 'Checking_the_received_routes' - - 'Checking_the_routing_table' diff --git a/functest/opnfv_tests/vnf/router/utilvnf.py b/functest/opnfv_tests/vnf/router/utilvnf.py deleted file mode 100644 index 6861b386..00000000 --- a/functest/opnfv_tests/vnf/router/utilvnf.py +++ /dev/null @@ -1,323 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Okinawa Open Laboratory and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -# pylint: disable=missing-docstring - -""" Utility module of vrouter testcase """ - -import json -import logging -import os -import pkg_resources -import requests -import yaml - -from functest.utils import config -from git import Repo -from requests.auth import HTTPBasicAuth -from snaps.openstack.utils import nova_utils - - -RESULT_SPRIT_INDEX = { - "transfer": 8, - "bandwidth": 6, - "jitter": 4, - "los_total": 2, - "pkt_loss": 1 -} - -BIT_PER_BYTE = 8 - -NOVA_CLIENT_API_VERSION = '2' -NOVA_CILENT_NETWORK_INFO_INDEX = 0 -CFY_INFO_OUTPUT_FILE = "output.txt" - -CIDR_NETWORK_SEGMENT_INFO_INDEX = 0 -PACKET_LOST_INFO_INDEX = 0 -PACKET_TOTAL_INFO_INDEX = 1 - -NUMBER_OF_DIGITS_FOR_AVG_TRANSFER = 0 -NUMBER_OF_DIGITS_FOR_AVG_BANDWIDTH = 0 -NUMBER_OF_DIGITS_FOR_AVG_JITTER = 3 -NUMBER_OF_DIGITS_FOR_AVG_PKT_LOSS = 1 - - -class Utilvnf(object): # pylint: disable=too-many-instance-attributes - """ Utility class of vrouter testcase """ - - logger = logging.getLogger(__name__) - - def __init__(self): - self.snaps_creds = "" - self.vnf_data_dir = getattr(config.CONF, 'dir_router_data') - self.opnfv_vnf_data_dir = "opnfv-vnf-data/" - self.command_template_dir = "command_template/" - self.test_scenario_yaml = "test_scenario.yaml" - test_env_config_yaml_file = "test_env_config.yaml" - self.test_cmd_map_yaml_file = "test_cmd_map.yaml" - self.test_env_config_yaml = os.path.join( - self.vnf_data_dir, - self.opnfv_vnf_data_dir, - test_env_config_yaml_file) - - self.blueprint_dir = "opnfv-vnf-vyos-blueprint/" - self.blueprint_file_name = "function-test-openstack-blueprint.yaml" - - if not os.path.exists(self.vnf_data_dir): - os.makedirs(self.vnf_data_dir) - - case_dir = pkg_resources.resource_filename( - 'functest', 'opnfv_tests/vnf/router') - - config_file_name = getattr( - config.CONF, 'vnf_{}_config'.format("vyos_vrouter")) - - config_file = os.path.join(case_dir, config_file_name) - - with open(config_file) as file_fd: - vrouter_config_yaml = yaml.safe_load(file_fd) - file_fd.close() - - test_data = vrouter_config_yaml.get("test_data") - - self.logger.debug("Downloading the test data.") - vrouter_data_path = self.vnf_data_dir + self.opnfv_vnf_data_dir - - if not os.path.exists(vrouter_data_path): - Repo.clone_from(test_data['url'], - vrouter_data_path, - branch=test_data['branch']) - - with open(self.test_env_config_yaml) as file_fd: - test_env_config_yaml = yaml.safe_load(file_fd) - file_fd.close() - - self.image = test_env_config_yaml.get( - "general").get("images").get("vyos") - self.tester_image = test_env_config_yaml.get( - "general").get("images").get("tester_vm_os") - - self.test_result_json_file = "test_result.json" - if os.path.isfile(self.test_result_json_file): - os.remove(self.test_result_json_file) - self.logger.debug("removed %s", self.test_result_json_file) - - def get_nova_client(self): - nova_client = nova_utils.nova_client(self.snaps_creds) - - return nova_client - - def set_credentials(self, snaps_creds): - self.snaps_creds = snaps_creds - - def get_address(self, server_name, network_name): - nova_client = self.get_nova_client() - servers_list = nova_client.servers.list() - server = None - - for server in servers_list: - if server.name == server_name: - break - - address = server.addresses[ - network_name][NOVA_CILENT_NETWORK_INFO_INDEX]["addr"] - - return address - - def get_mac_address(self, server_name, network_name): - nova_client = self.get_nova_client() - servers_list = nova_client.servers.list() - server = None - - for server in servers_list: - if server.name == server_name: - break - - mac_address = server.addresses[network_name][ - NOVA_CILENT_NETWORK_INFO_INDEX]["OS-EXT-IPS-MAC:mac_addr"] - - return mac_address - - def reboot_vm(self, server_name): - nova_client = self.get_nova_client() - servers_list = nova_client.servers.list() - server = None - - for server in servers_list: - if server.name == server_name: - break - - server.reboot() - - return - - def delete_vm(self, server_name): - nova_client = self.get_nova_client() - servers_list = nova_client.servers.list() - server = None - - for server in servers_list: - if server.name == server_name: - nova_client.servers.delete(server) - break - - return - - def get_blueprint_outputs(self, cfy_manager_ip, deployment_name): - url = "http://%s/deployments/%s/outputs" % ( - cfy_manager_ip, deployment_name) - - response = requests.get( - url, - auth=HTTPBasicAuth('admin', 'admin'), - headers={'Tenant': 'default_tenant'}) - - resp_data = response.json() - self.logger.debug(resp_data) - data = resp_data["outputs"] - return data - - def get_blueprint_outputs_vnfs(self, cfy_manager_ip, deployment_name): - outputs = self.get_blueprint_outputs(cfy_manager_ip, - deployment_name) - vnfs = outputs["vnfs"] - vnf_list = [] - for vnf_name in vnfs: - vnf_list.append(vnfs[vnf_name]) - return vnf_list - - def get_blueprint_outputs_networks(self, cfy_manager_ip, deployment_name): - outputs = self.get_blueprint_outputs(cfy_manager_ip, - deployment_name) - networks = outputs["networks"] - network_list = [] - for network_name in networks: - network_list.append(networks[network_name]) - return network_list - - def request_vnf_reboot(self, vnf_info_list): - for vnf in vnf_info_list: - self.logger.debug("reboot the " + vnf["vnf_name"]) - self.reboot_vm(vnf["vnf_name"]) - - def request_vm_delete(self, vnf_info_list): - for vnf in vnf_info_list: - self.logger.debug("delete the " + vnf["vnf_name"]) - self.delete_vm(vnf["vnf_name"]) - - def get_vnf_info_list(self, cfy_manager_ip, topology_deploy_name, - target_vnf_name): - network_list = self.get_blueprint_outputs_networks( - cfy_manager_ip, - topology_deploy_name) - vnf_info_list = self.get_blueprint_outputs_vnfs(cfy_manager_ip, - topology_deploy_name) - for vnf in vnf_info_list: - vnf_name = vnf["vnf_name"] - vnf["os_type"] = self.image["os_type"] - vnf["user"] = self.image["user"] - vnf["pass"] = self.image["pass"] - - vnf["target_vnf_flag"] = bool(vnf_name == target_vnf_name) - - self.logger.debug("vnf name : " + vnf_name) - self.logger.debug(vnf_name + " floating ip address : " + - vnf["floating_ip"]) - - for network in network_list: - network_name = network["network_name"] - ip_address = self.get_address(vnf["vnf_name"], - network["network_name"]) - vnf[network_name + "_ip"] = ip_address - mac = self.get_mac_address(vnf["vnf_name"], - network["network_name"]) - vnf[network_name + "_mac"] = mac - - self.logger.debug(network_name + "_ip of " + vnf["vnf_name"] + - " : " + vnf[network_name + "_ip"]) - self.logger.debug(network_name + "_mac of " + vnf["vnf_name"] + - " : " + vnf[network_name + "_mac"]) - - return vnf_info_list - - @staticmethod - def get_target_vnf(vnf_info_list): - for vnf in vnf_info_list: - if vnf["target_vnf_flag"]: - return vnf - - return None - - @staticmethod - def get_reference_vnf_list(vnf_info_list): - reference_vnf_list = [] - for vnf in vnf_info_list: - if not vnf["target_vnf_flag"]: - reference_vnf_list.append(vnf) - - return reference_vnf_list - - @staticmethod - def get_vnf_info(vnf_info_list, vnf_name): - for vnf in vnf_info_list: - if vnf["vnf_name"] == vnf_name: - return vnf - - return None - - @staticmethod - def convert_functional_test_result(result_data_list): - result = {} - for result_data in result_data_list: - test_kind = result_data["test_kind"] - protocol = result_data["protocol"] - test_result_data = result_data["result"] - - if test_kind not in result: - result[test_kind] = [] - - result[test_kind].append({protocol: test_result_data}) - - return {"Functional_test": result} - - def write_result_data(self, result_data): - test_result = [] - if not os.path.isfile(self.test_result_json_file): - file_fd = open(self.test_result_json_file, "w") - file_fd.close() - else: - file_fd = open(self.test_result_json_file, "r") - test_result = json.load(file_fd) - file_fd.close() - - test_result.append(result_data) - - file_fd = open(self.test_result_json_file, "w") - json.dump(test_result, file_fd) - file_fd.close() - - def output_test_result_json(self): - if os.path.isfile(self.test_result_json_file): - file_fd = open(self.test_result_json_file, "r") - test_result = json.load(file_fd) - file_fd.close() - output_json_data = json.dumps(test_result, - sort_keys=True, - indent=4) - self.logger.debug("test_result %s", output_json_data) - else: - self.logger.debug("Not found %s", self.test_result_json_file) - - @staticmethod - def get_test_scenario(file_path): - test_scenario_file = open(file_path, - 'r') - test_scenario_yaml = yaml.safe_load(test_scenario_file) - test_scenario_file.close() - return test_scenario_yaml["test_scenario_list"] diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/__init__.py b/functest/opnfv_tests/vnf/router/vnf_controller/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/checker.py b/functest/opnfv_tests/vnf/router/vnf_controller/checker.py deleted file mode 100644 index a7a70f6d..00000000 --- a/functest/opnfv_tests/vnf/router/vnf_controller/checker.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Okinawa Open Laboratory and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -# pylint: disable=missing-docstring - -"""vrouter test result check module""" - -import json -import logging -import re - -from jinja2 import Environment, FileSystemLoader - - -class Checker(object): - """vrouter test result check class""" - - logger = logging.getLogger(__name__) - - def __init__(self): - self.logger.debug("init checker") - - @staticmethod - def load_check_rule(rule_file_dir, rule_file_name, parameter): - loader = FileSystemLoader(rule_file_dir, - encoding='utf8') - env = Environment(loader=loader) - check_rule_template = env.get_template(rule_file_name) - check_rule = check_rule_template.render(parameter) - check_rule_data = json.loads(check_rule) - return check_rule_data - - @staticmethod - def regexp_information(response, rules): - status = False - result_data = {} - - for rule in rules["rules"]: - result_data = { - "test_name": rule["description"], - "result": "NG" - } - - match = re.search(rule["regexp"], - response) - rule["response"] = response - if match is None: - status = False - break - - if not match.group(1) == rule["result"]: - status = False - else: - result_data["result"] = "OK" - status = True - - return status, result_data diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/command_generator.py b/functest/opnfv_tests/vnf/router/vnf_controller/command_generator.py deleted file mode 100644 index 7d9116bc..00000000 --- a/functest/opnfv_tests/vnf/router/vnf_controller/command_generator.py +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Okinawa Open Laboratory and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -# pylint: disable=missing-docstring - -"""command generator module for vrouter testing""" - -import logging -from jinja2 import Environment, FileSystemLoader - - -class CommandGenerator(object): - """command generator class for vrouter testing""" - - logger = logging.getLogger(__name__) - - def __init__(self): - self.logger.debug("init command generator") - - @staticmethod - def load_template(template_dir, template): - # pylint disable=missing-docstring - loader = FileSystemLoader(template_dir, - encoding='utf8') - env = Environment(loader=loader) - return env.get_template(template) - - @staticmethod - def command_create(template, parameter): - # pylint disable=missing-docstring - commands = template.render(parameter) - return commands.split('\n') diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/ssh_client.py b/functest/opnfv_tests/vnf/router/vnf_controller/ssh_client.py deleted file mode 100644 index 628afd30..00000000 --- a/functest/opnfv_tests/vnf/router/vnf_controller/ssh_client.py +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Okinawa Open Laboratory and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -"""ssh client module for vrouter testing""" - -import logging -import time -import yaml - -import paramiko - -from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf - -RECEIVE_ROOP_WAIT = 1 - -DEFAULT_CONNECT_TIMEOUT = 10 -DEFAULT_CONNECT_RETRY_COUNT = 10 -DEFAULT_SEND_TIMEOUT = 10 - - -class SshClient(object): # pylint: disable=too-many-instance-attributes - """ssh client class for vrouter testing""" - - logger = logging.getLogger(__name__) - - def __init__(self, ip_address, user, password=None, key_filename=None): - self.ip_address = ip_address - self.user = user - self.password = password - self.key_filename = key_filename - self.connected = False - self.shell = None - - self.logger.setLevel(logging.INFO) - - self.ssh = paramiko.SSHClient() - self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - - self.util = Utilvnf() - with open(self.util.test_env_config_yaml) as file_fd: - test_env_config_yaml = yaml.safe_load(file_fd) - file_fd.close() - - self.ssh_revieve_buff = test_env_config_yaml.get("general").get( - "ssh_receive_buffer") - - def connect(self, time_out=DEFAULT_CONNECT_TIMEOUT, - retrycount=DEFAULT_CONNECT_RETRY_COUNT): - # pylint: disable=missing-docstring - while retrycount > 0: - try: - self.logger.info("SSH connect to %s.", self.ip_address) - self.ssh.connect(self.ip_address, - username=self.user, - password=self.password, - key_filename=self.key_filename, - timeout=time_out, - look_for_keys=False, - allow_agent=False) - - self.logger.info("SSH connection established to %s.", - self.ip_address) - - self.shell = self.ssh.invoke_shell() - - while not self.shell.recv_ready(): - time.sleep(RECEIVE_ROOP_WAIT) - - self.shell.recv(self.ssh_revieve_buff) - break - except Exception: # pylint: disable=broad-except - self.logger.info("SSH timeout for %s...", self.ip_address) - time.sleep(time_out) - retrycount -= 1 - - if retrycount == 0: - self.logger.error("Cannot establish connection to IP '%s'. " + - "Aborting", - self.ip_address) - self.connected = False - return self.connected - - self.connected = True - return self.connected - - def send(self, cmd, prompt, timeout=DEFAULT_SEND_TIMEOUT): - # pylint: disable=missing-docstring - if self.connected is True: - self.shell.settimeout(timeout) - self.logger.debug("Commandset : '%s'", cmd) - - try: - self.shell.send(cmd + '\n') - except Exception: # pylint: disable=broad-except - self.logger.error("ssh send timeout : Command : '%s'", cmd) - return None - - res_buff = '' - while not res_buff.endswith(prompt): - time.sleep(RECEIVE_ROOP_WAIT) - try: - res = self.shell.recv(self.ssh_revieve_buff) - except Exception: # pylint: disable=broad-except - self.logger.error("ssh receive timeout : Command : '%s'", - cmd) - break - - res_buff += res - - self.logger.debug("Response : '%s'", res_buff) - return res_buff - self.logger.error("Cannot connected to IP '%s'.", self.ip_address) - return None - - def close(self): - # pylint: disable=missing-docstring - if self.connected is True: - self.ssh.close() - - @staticmethod - def error_check(response, err_strs=None): - # pylint: disable=missing-docstring - if err_strs is None: - err_strs = ["error", "warn", "unknown command", "already exist"] - for err in err_strs: - if err in response: - return False - - return True diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/vm_controller.py b/functest/opnfv_tests/vnf/router/vnf_controller/vm_controller.py deleted file mode 100644 index 10e48645..00000000 --- a/functest/opnfv_tests/vnf/router/vnf_controller/vm_controller.py +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Okinawa Open Laboratory and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -# pylint: disable=missing-docstring - -"""vm controll module""" - -import logging -import os -import time -import yaml - -from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf -from functest.opnfv_tests.vnf.router.vnf_controller.command_generator import ( - CommandGenerator) -from functest.opnfv_tests.vnf.router.vnf_controller.ssh_client import ( - SshClient) - - -class VmController(object): - """vm controll class""" - - logger = logging.getLogger(__name__) - - def __init__(self, util_info): - self.logger.debug("initialize vm controller") - self.command_gen = CommandGenerator() - credentials = util_info["credentials"] - - self.util = Utilvnf() - self.util.set_credentials(credentials["snaps_creds"]) - - with open(self.util.test_env_config_yaml) as file_fd: - test_env_config_yaml = yaml.safe_load(file_fd) - file_fd.close() - - self.reboot_wait = test_env_config_yaml.get("general").get( - "reboot_wait") - self.command_wait = test_env_config_yaml.get("general").get( - "command_wait") - self.ssh_connect_timeout = test_env_config_yaml.get("general").get( - "ssh_connect_timeout") - self.ssh_connect_retry_count = test_env_config_yaml.get("general").get( - "ssh_connect_retry_count") - - def command_gen_from_template(self, command_file_path, cmd_input_param): - (command_file_dir, command_file_name) = os.path.split( - command_file_path) - template = self.command_gen.load_template(command_file_dir, - command_file_name) - return self.command_gen.command_create(template, - cmd_input_param) - - def config_vm(self, vm_info, test_cmd_file_path, - cmd_input_param, prompt_file_path): - ssh = self.connect_ssh_and_config_vm(vm_info, - test_cmd_file_path, - cmd_input_param, - prompt_file_path) - if ssh is None: - return False - - ssh.close() - - return True - - def connect_ssh_and_config_vm(self, vm_info, test_cmd_file_path, - cmd_input_param, prompt_file_path): - - key_filename = None - if "key_path" in vm_info: - key_filename = vm_info["key_path"] - - ssh = SshClient(ip_address=vm_info["floating_ip"], - user=vm_info["user"], - password=vm_info["pass"], - key_filename=key_filename) - - result = ssh.connect(self.ssh_connect_timeout, - self.ssh_connect_retry_count) - if not result: - self.logger.debug("try to vm reboot.") - self.util.reboot_vm(vm_info["vnf_name"]) - time.sleep(self.reboot_wait) - result = ssh.connect(self.ssh_connect_timeout, - self.ssh_connect_retry_count) - if not result: - return None - - (result, _) = self.command_create_and_execute( - ssh, - test_cmd_file_path, - cmd_input_param, - prompt_file_path) - if not result: - ssh.close() - return None - - return ssh - - def command_create_and_execute(self, ssh, test_cmd_file_path, - cmd_input_param, prompt_file_path): - prompt_file = open(prompt_file_path, - 'r') - prompt = yaml.safe_load(prompt_file) - prompt_file.close() - config_mode_prompt = prompt["config_mode"] - - commands = self.command_gen_from_template(test_cmd_file_path, - cmd_input_param) - return self.command_list_execute(ssh, - commands, - config_mode_prompt) - - def command_list_execute(self, ssh, command_list, prompt): - res_data_list = [] - for command in command_list: - self.logger.debug("Command : " + command) - (res, res_data) = self.command_execute(ssh, - command, - prompt) - self.logger.debug("Response : " + res_data) - res_data_list.append(res_data) - if not res: - return res, res_data_list - - time.sleep(self.command_wait) - - return True, res_data_list - - def command_execute(self, ssh, command, prompt): - res_data = ssh.send(command, prompt) - if res_data is None: - self.logger.info("retry send command : " + command) - res_data = ssh.send(command, - prompt) - if not ssh.error_check(res_data): - return False, res_data - - return True, res_data diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/vnf_controller.py b/functest/opnfv_tests/vnf/router/vnf_controller/vnf_controller.py deleted file mode 100644 index a5b1ad85..00000000 --- a/functest/opnfv_tests/vnf/router/vnf_controller/vnf_controller.py +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Okinawa Open Laboratory and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -# pylint: disable=missing-docstring - -"""vrouter controll module""" - -import logging -import os -import time -import yaml - -import prettytable - -from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf -from functest.opnfv_tests.vnf.router.vnf_controller.checker import Checker -from functest.opnfv_tests.vnf.router.vnf_controller.ssh_client import ( - SshClient) -from functest.opnfv_tests.vnf.router.vnf_controller.vm_controller import ( - VmController) - - -class VnfController(object): - """vrouter controll class""" - - logger = logging.getLogger(__name__) - - def __init__(self, util_info): - self.logger.debug("init vnf controller") - self.util = Utilvnf() - self.vm_controller = VmController(util_info) - - with open(self.util.test_env_config_yaml) as file_fd: - test_env_config_yaml = yaml.safe_load(file_fd) - file_fd.close() - - self.cmd_wait = test_env_config_yaml.get("general").get("command_wait") - self.ssh_connect_timeout = test_env_config_yaml.get("general").get( - "ssh_connect_timeout") - self.ssh_connect_retry_count = test_env_config_yaml.get("general").get( - "ssh_connect_retry_count") - - def config_vnf(self, source_vnf, destination_vnf, test_cmd_file_path, - parameter_file_path, prompt_file_path): - # pylint: disable=too-many-arguments - parameter_file = open(parameter_file_path, - 'r') - cmd_input_param = yaml.safe_load(parameter_file) - parameter_file.close() - - cmd_input_param["macaddress"] = source_vnf["data_plane_network_mac"] - cmd_input_param["source_ip"] = source_vnf["data_plane_network_ip"] - cmd_input_param["destination_ip"] = destination_vnf[ - "data_plane_network_ip"] - - return self.vm_controller.config_vm(source_vnf, - test_cmd_file_path, - cmd_input_param, - prompt_file_path) - - def result_check(self, target_vnf, reference_vnf, - check_rule_file_path_list, parameter_file_path, - prompt_file_path): - # pylint: disable=too-many-arguments,too-many-locals - - res_dict_data_list = [] - - parameter_file = open(parameter_file_path, - 'r') - cmd_input_param = yaml.safe_load(parameter_file) - parameter_file.close() - - cmd_input_param["source_ip"] = target_vnf["data_plane_network_ip"] - cmd_input_param["destination_ip"] = reference_vnf[ - "data_plane_network_ip"] - - prompt_file = open(prompt_file_path, - 'r') - prompt = yaml.safe_load(prompt_file) - prompt_file.close() - terminal_mode_prompt = prompt["terminal_mode"] - - ssh = SshClient(target_vnf["floating_ip"], - target_vnf["user"], - target_vnf["pass"]) - - result = ssh.connect(self.ssh_connect_timeout, - self.ssh_connect_retry_count) - if not result: - return False, res_dict_data_list - - checker = Checker() - - res_table = prettytable.PrettyTable( - header_style='upper', padding_width=5, - field_names=['test item', 'result']) - - status = True - res_data_list = [] - for check_rule_file_path in check_rule_file_path_list: - (check_rule_dir, check_rule_file) = os.path.split( - check_rule_file_path) - check_rules = checker.load_check_rule(check_rule_dir, - check_rule_file, - cmd_input_param) - (res, res_data) = self.vm_controller.command_execute( - ssh, - check_rules["command"], - terminal_mode_prompt) - res_data_list.append(res_data) - if not res: - status = False - break - - (res, res_dict_data) = checker.regexp_information(res_data, - check_rules) - res_dict_data_list.append(res_dict_data) - res_table.add_row([res_dict_data["test_name"], - res_dict_data["result"]]) - if not res: - status = False - - time.sleep(self.cmd_wait) - - ssh.close() - - self.logger.info("Test result:\n\n%s\n", res_table.get_string()) - - self.output_check_result_detail_data(res_data_list) - - return status, res_dict_data_list - - def output_check_result_detail_data(self, res_data_list): - for res_data in res_data_list: - self.logger.debug(res_data) diff --git a/functest/opnfv_tests/vnf/router/vrouter_base.py b/functest/opnfv_tests/vnf/router/vrouter_base.py deleted file mode 100644 index 8818032d..00000000 --- a/functest/opnfv_tests/vnf/router/vrouter_base.py +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2017 Okinawa Open Laboratory and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -# pylint: disable=missing-docstring - -"""vrouter testing base class module""" - -import datetime -import json -import logging -import os -import time - -import pkg_resources - -import functest.core.vnf as vnf -from functest.utils import config -from functest.opnfv_tests.vnf.router.test_controller import function_test_exec -from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf - -__author__ = "Shuya Nakama " - -REBOOT_WAIT = 30 - - -class VrouterOnBoardingBase(vnf.VnfOnBoarding): - """vrouter testing base class""" - - def __init__(self, **kwargs): - self.logger = logging.getLogger(__name__) - super(VrouterOnBoardingBase, self).__init__(**kwargs) - self.case_dir = pkg_resources.resource_filename( - 'functest', 'opnfv_tests/vnf/router') - self.data_dir = getattr(config.CONF, 'dir_router_data') - self.result_dir = os.path.join(getattr(config.CONF, 'dir_results'), - self.case_name) - self.util = Utilvnf() - self.util_info = {} - - self.vnf_list = [] - - if not os.path.exists(self.data_dir): - os.makedirs(self.data_dir) - if not os.path.exists(self.result_dir): - os.makedirs(self.result_dir) - - def test_vnf(self): - """vrouter test execution""" - result = False - test_result_data_list = [] - test_scenario_file_path = os.path.join(self.case_dir, - self.util.test_scenario_yaml) - test_scenario_list = self.util.get_test_scenario( - test_scenario_file_path) - for test_scenario in test_scenario_list: - if test_scenario["test_type"] == "function_test": - function_test_list = test_scenario["function_test_list"] - for function_test in function_test_list: - test_list = function_test["test_list"] - target_vnf_name = function_test["target_vnf_name"] - for test_info in test_list: - self.logger.info(test_info["protocol"] + " " + - test_info["test_kind"] + - " test.") - (result, result_data) = self.function_test_vrouter( - target_vnf_name, test_info) - test_result_data_list.append(result_data) - if not result: - break - - self.util.request_vm_delete(self.vnf_list) - - test_result_data = json.dumps(test_result_data_list, indent=4) - - return result, test_result_data - - def function_test_vrouter(self, target_vnf_name, test_info): - """function test execution""" - - test_protocol = test_info["protocol"] - test_list = test_info[test_protocol] - - vnf_info_list = self.get_vnf_info_list(target_vnf_name) - self.vnf_list = vnf_info_list - - self.logger.debug("request vnf's reboot.") - self.util.request_vnf_reboot(vnf_info_list) - time.sleep(REBOOT_WAIT) - - target_vnf = self.util.get_target_vnf(vnf_info_list) - - reference_vnf_list = self.util.get_reference_vnf_list(vnf_info_list) - - test_exec = function_test_exec.FunctionTestExec(self.util_info) - - # start test - start_time_ts = time.time() - self.logger.info("vRouter test Start Time:'%s'", ( - datetime.datetime.fromtimestamp(start_time_ts).strftime( - '%Y-%m-%d %H:%M:%S'))) - - (result, test_result_data) = test_exec.run(target_vnf, - reference_vnf_list, - test_info, - test_list) - - end_time_ts = time.time() - duration = round(end_time_ts - start_time_ts, 1) - self.logger.info("vRouter test duration :'%s'", duration) - - return result, test_result_data - - def get_vnf_info_list(self, target_vnf_name): - # pylint: disable=unused-argument,no-self-use - vnf_info_list = [] - return vnf_info_list -- cgit 1.2.3-korg